软件缺陷概念(简略)
软件测试活动发展历史中,缺陷最初称为Bug。
Bug英文原意为臭虫。最初的计算机是由若干庞大复杂的真空管组成,真空管在使用过程中产生了大量的光和热,结果吸引了一只小虫子钻进了计算机的某一支真空管内,导致整个计算机无法正常工作。研究人员经过仔细检查,发现了这只捣蛋的小虫子,并将其从真空管中取出,计算机又恢复正常。为了纪念这一事件,以及方便地表示计算机软硬件系统中隐藏的错误、缺陷、漏洞等问题,Bug沿用下来,发现虫子(Bug)并进行修复的过程称为DeBug(调试)。
测试中有这几个概念:错误、Bug、缺陷、失效等。
-
错误
-
Bug
-
缺陷
错误实现、冗余实现、遗漏实现、不符合用户满意度都属于缺陷。 -
失效
软件缺陷报告
缺陷状态
标识缺陷当前所在状态,以惠普(HP)公司研发的测试管理工具Application Lifecycle Management(简称ALM)为例,一般分为 “New(新建)”、“Open(打开)”、“Fix(修复)”、“Close(关闭)”、“Reopen(重新打开)”、“Reject(拒绝)”这6个状态,不同的管理流程可能会有其他的状态,如 “Postpone(延期)”、“Duplicate(重复)”等。
- New:缺陷未正式进入缺陷管理流程流转时,都可定义为New(新建)状态,一般新发现、新提交的缺陷为New。
- Open:缺陷经过发现人自检确认为缺陷后,即可进入缺陷管理流程流转,此时缺陷需指派给下一个处理人,其状态一般标识为Open。
- Fix:当开发工程师确认缺陷成立并进行成功修复后,需将缺陷状态标识为Fix,表示该缺陷已被成功修复,缺陷校验人员可在后续版本中校验。
- Close:测试工程师对标识为Fix的缺陷开展确认测试活动,当该缺陷经过校验确认被成功修复后,该缺陷状态标识为Close。一般的缺陷跟踪活动至此结束。
- Reopen:在确认测试过程中,当标识为Fix的缺陷仍然存在或未能彻底修复好时,缺陷校验人员需将该缺陷置为Reopen,表明缺陷仍然存在,仍需经过缺陷跟踪流程处理。
- Reject:Reject状态一般由开发工程师使用,当缺陷指派给开发工程师进行确认修复时,开发工程师需确认缺陷,如因需求、设计、功能、业务理解错误而误提缺陷或缺陷无法重现时,开发工程师一般将其置为Reject状态,返回至缺陷发现人进行确认处理。
一般而言,缺陷从New开始,结束于Close状态。
缺陷严重度
缺陷严重度一般分为Low、Medium、High、Very High、Urgent这5个级别。
- Low:缺陷产生的后果不严重,仅仅是导致用户感觉使用不方便,或者系统展示不够人性化等。例如,系统使用4号宋体显示可能更便于信息浏览。易用性方面的缺陷一般可定义为Low级别。当然,设计繁琐、使用困难的缺陷级别可能会比较高。
- Medium:中级的缺陷,一般为错别字、字体错误、显示错误、子功能实现错误、冗余等。例如,需求规格说明定义用户输入错误时,系统提示“您输入的信息有误,请重试”,在实际实现时系统提示“对不起,输入错误”,此种缺陷一般可定义为Medium级别。
- High:当缺陷因遗漏、冗余、错误等原因引起,导致当前功能无法正常使用时,即可定义为High级别,如查询功能未实现,默认降序功能实现成升序功能。
- Very High:当前缺陷引起了子功能无法正常使用,或产生了不可逆转的错误时,即可定义为Very High,如查询功能错误导致编辑功能失效、编辑后信息丢失。
- Urgent:缺陷引发了大面积功能错误、业务中断、流程错误,甚至系统崩溃,产生初始化错误或终止性故障时,即为Urgent级别。产生此种级别的缺陷时,测试活动可根据实际情况暂停,版本退回,需开发部门立即修复,重新发起系统测试申请。
不同公司缺陷严重度的定义不同,但大体相同,现有的若干缺陷管理工具默认提供了类似上述的缺陷严重度定义。
示例
缺陷管理工具
常用的工具有以下几种:
-
开源免费工具
(1)Bugzilla
Bugzilla起源于UNIX,后续版本可安装在Linux、Windows平台,使用便捷,分析功能、流程定制功能一般。
(2)BugFree
BugFree借鉴微软研发流程和Bug管理理念,使用PHP+MySQL独立设计的Bug管理系统,简单实用。
(3)禅道
禅道是国内一款优秀的项目管理工具,提供了完善的测试工作平台,其中包括缺陷管理功能。目前国内众多软件研发公司在用。 -
商业工具
(1)TestTrack
TestTrack是SeaPine公司生产的软件缺陷管理工具,除了常规缺陷管理功能外,流程定制是其一大特色,甚至优于HP的QualityCenter,是目前业内专业的缺陷跟踪工具之一,支持B/S和C/S两种架构。
(2)Application Lifecycle Management(ALM)
HP的Application Lifecycle Management(ALM),前身是Quality Center,采用B/S结构,可在广泛的应用环境下自动执行软件质量测试和管理,是目前应用较为广泛的商用测试管理工具。
常用的缺陷分析模型
目前业内常用的模型有ODC、四象限、Gompertz等
软件测试原则
1.测试证明软件存在缺陷
2.不可能执行穷尽测试
3.测试应尽早启动、尽早介入
4.缺陷存在群集现象
5.杀虫剂悖论
6.不同的测试活动依赖于不同的测试背景
7.不存在缺陷的谬论
- 测试证明软件存在缺陷
-
不可能执行穷尽测试
-
测试应尽早启动、尽早介入
-
缺陷存在群集现象
-
杀虫剂悖论
-
.不同的测试活动依赖于不同的测试背景
-
不存在缺陷的谬论