技术文章

软件测试目的及缺陷定义

5.1软件测试定义

测试,即检测、试验,利用一定的手段,检测被测对象特性表现是否与预期需求一致。

 

对于软件而言,测试是通过人工或者自动的检测方式,检测被测对象是否满足用户要求或弄清楚预期结果与实际结果之间的差异,是为了发现错误而审查软件文档、检查软件数据和执行程序代码的过程。软件测试是质量检测过程,包含了若干测试活动。

 

早些时候,很多人对软件测试的认识仅限于运行软件执行测试,但实际上,软件测试还包括静态测试和验证活动。

 

软件包括实现用户需求的源代码、描述软件功能及性能表现的说明书、支撑软件运行的配置数据,软件测试同样包括了文档及配置数据的测试,而不仅仅是执行软件。

 

5.2软件测试目的

 

实施软件测试的目的通常有以下几个方面:

1. 发现被测对象与用户需求之间的差异,即缺陷。

2. 通过测试活动发现并解决缺陷,增加人们对软件质量的信心。

3. 通过测试活动了解被测对象的质量状况,为决策提供数据依据。

4. 通过测试活动积累经验,预防缺陷出现,降低产品失败风险。

 

不同测试阶段的测试目的有所差别。需求分析阶段,通过测试评审活动,检查需求文档是否与用户期望一致,主要是检查文档错误(表述错误、业务逻辑错误等),属于静态测试。

 

软件设计阶段,主要检查系统设计是否满足用户环境需求、软件组织是否合理有效等。

 

编码开发阶段,通过测试活动,发现软件系统的失效行为,从而修复更多的缺陷。

 

验收阶段,主要期望通过测试活动检验系统是否满足用户需求,达到可交付标准。

 

运营维护阶段执行测试是为了验证软件变更、补丁修复是否成功及是否引入新的缺陷等。

 

无论是哪个阶段何种类型的测试,其目的都是通过测试活动,检验被测对象是否与预期一致。测试工程师希望通过测试活动,证明被测对象存在缺陷,开发人员则希望通过测试证明被测对象无错误。

 

5.3 软件缺陷定义

在软件测试活动中,作为测试工程师,最重要的工作目标是发现被测对象中以任何形式存在的任何缺陷。那么到底什么是缺陷?为什么测试工程师要竭尽全力找到它们呢?

 

软件测试活动发展历史中,缺陷最初称为Bug。Bug英文原意为臭虫。

 

最初的计算机是由若干庞大复杂的真空管组成,真空管在使用过程中产生了大量的光和热,结果吸引了一只小虫子钻进了计算机的某一支真空管内,导致整个计算机无法正常工作。

 

研究人员经过仔细检查,发现了这只捣蛋的小虫子,并将其从真空管中取出,计算机又恢复正常。为了纪念这一事件,以及方便地表示计算机软硬件系统中隐藏的错误、缺陷、漏洞等问题,Bug沿用下来,发现虫子(Bug)并进行修复的过程称为DeBug(调试)。

 

现代软件质量保证活动中,经常会接触这几个概念:错误、Bug、缺陷、失效等。

 

1. 错误

错误指文档中表述或编写过程中产生的错误现象,静态存在于文档中,一般不会被激发。

 

2.  Bug

沿用历史含义,Bug是指存在于程序代码或硬件系统中的错误,通常是由编码或生产活动引入的错误,其既可是静态形式存在,也可在特定诱因下动态存在。

 

3. 缺陷

缺陷综合了错误、Bug等相关术语的含义,一切与用户显性或隐性需求不相符的错误,统称为缺陷。错误实现、冗余实现、遗漏实现、不符合用户满意度都属于缺陷。

 

4. 失效

失效是因缺陷引发的失效现象,动态存在于软硬件运行活动中。

 

现代软件测试活动中,更多的团队将Bug表述改为缺陷。