首页 > 技术文章 > 【测试基础】为人所知的那些事

CSgarcia 2018-09-17 14:06 原文

什么是软件?

源代码 + 用户手册 + 配置数据

什么是软件测试?

通过人工或自动的手段,对被测对象进行检测的活动,目的在于发现被测对象是否实现用户的需求,或者弄清实际结果与预期结果之间的差异

为什么要进行软件测试?

1、发现被测对象与用户需求之间的差异————找Bug
2、通过测试活动发现并解决缺陷,增加人们对被测对象的质量信息
3、通过测试活动,获取被测对象的质量信息,为决策提供数据依据
4、通过测试活动,预防缺陷,从而降低项目产品的风险

进行软件测试的原则有哪些

1、测试证明软件存在缺陷
2、不可能执行穷尽测试
3、测试应尽早启动,尽早介入
4、缺陷存在群集现象
5、杀虫剂悖论
6、不同的测试活动依赖不同的测试背景
7、不存在缺陷的谬论

 

入门阶段的测试人员不需要掌握过多的计算机基础知识,只需要像用户一样对系统做各种操作,如果出现不符合预期的结果,则它们被认为是系统存在的bug。这种测试被称为功能测试。

功能测试是通过测试来检测每个功能是否都能正常使用,只关注外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行的测试。(测试实现方法:手工测试,俗称点点点测试)

及早介入测试的重要性

      在软件交付周期的不同阶段,越是到软件交付的后期,修复Bug越困难,成本也越高。所以测试工程师在工作中需要尽早启动测试活动,从需求分析阶段开始进行介入,在理解需求的基础上提取测试需求,为编写测试用例做准备。

开发阶段及成本.png
 

测试活动贯穿整个软件生命周期

      每个阶段,测试人员都需要和需求人员、开发人员、设计人员以及运维人员积极配合,参与需求调研及评审等工作,让测试渗透各方面。

测试活动详解.png
 

      测试项目流程图中包括测试人员需参与的每一个阶段及该阶段中参与的角色、开展会议以及测试文档的输出。

测试项目流程图.png
 

测试相关工作流程

  • 测试执行流程

测试执行流程.png
 
  • Bug管理流程

测试人员会使用一些工具管理Bug,如Bugfree、Mantis、禅道、测试管理工具QC、Jira等。

Bug管理流程.png
 

制定和实施测试策略

1、确定测试由谁执行
2、确定测试什么
3、确定何时进行测试
4、确定怎样进行测试

我们来捉虫

虫虫的分类:

  • 错误:静态存在于文档说明中的表述或编写错误。如用户名或密码
  • Bug:存在于代码或硬件系统中的错误。如int a[5];
  • 缺陷:被测对象实际表现于用户显性需求或隐形需求的差异。分为四种情况:1、功能实现错误;2、功能实现遗漏;3、功能实现多余;4、功能实现不好
  • 失败:因缺陷激发后导致功能的异常,无法使用的现象。

软件缺陷的精确描述

1、软件未达到产品说明书中已标明的功能
2、软件出现了产品说明书中指明不会出现的错误
3、软件未达到产品说明书中虽未指出但应(隐含)达到的目标
4、软件功能超出了产品说明书中指明的范围
5、测试者认为软件难以理解、不易使用,或最终用户认为软件使用效果不良

缺陷产生的原因有哪些?

1、需求表述理解,编写过程中引起的错误
2、系统设计架构引起的错误
3、开发过程缺乏有效沟通及监督
4、程序员编码过程产生的错误
5、软件开发工具本身的错误
6、软件需求、复杂度越来越高
7、与用户需求不符合,即使本身不存在某种意义上的缺陷

推荐阅读