一、软件缺陷的定义及主要类型
我们对软件缺陷分析一下,所谓"软件缺陷(bug)",即为计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。一般来说,软件缺陷的属性包括缺陷标识、缺陷类型、缺陷严重程度、缺陷优先级、缺陷来源、缺陷原因等。
进行软件缺陷分析后,软件缺陷的主要可以分为以下几种类型:
(1)设计不合理;
2)功能、特性没有实现或部分实现;
3)运行出错,包括运行中断、系统崩溃、界面混乱等;
4)与需求不一致,在执行TestCase时则为实际结果和预期结果不一致;
(5)用户不能接受的其他问题,如存取时间过长、界面不美观;
(6)软件实现了需求未提到的功能。
二、软件缺陷的级别、优先级及状态
软件缺陷有四种级别,分别为:致命的(Fatal),严重的(Critical),一般的(Major),微小的(Minor)。
A类—致命的软件缺陷(Fatal): 造成系统或应用程序崩溃、死机、系统挂起,或造成数据丢失,主要功能完全丧失,导致本模块以及相关模块异常等问题。如代码错误,死循环,数据库发生死锁、与数据库连接错误或数据通讯错误,未考虑异常操作,功能错误等
B类—严重错误的软件缺陷(critical):系统的主要功能部分丧失、数据不能保存,系统的次要功能完全丧失。问题局限在本模块,导致模块功能失效或异常退出。如致命的错误声明,程序接口错误,数据库的表、业务规则、缺省值未加完整性等约束条件
C类—一般错误的软件缺陷(major):次要功能没有完全实现但不影响使用。如提示信息不太准确,或用户界面差,操作时间长,模块功能部分失效等,打印内容、格式错误,删除操作未给出提示,数据库表中有过多的空字段等
D类—较小错误的软件缺陷(Minor),使操作者不方便或遇到麻烦,但它不影响功能过的操作和执行,如错别字、界面不规范(字体大小不统一,文字排列不整齐,可输入区域和只读区域没有明显的区分标志),辅助说明描述不清楚
E类- 建议问题的软件缺陷(Enhancemental):由问题提出人对测试对象的改进意见或测试人员提出的建议、质疑。
常用的软件缺陷的优先级表示方法可分为:立即解决P1、高优先级P2、正常排队P3、低优先级 P4。立即解决是指缺陷导致系统几乎不能使用或者测试不能继续,需立即修复;高优先级是指缺陷严重影响测试,需要优先考虑;正常排队是指缺陷需要正常排队等待修复;而低优先级是指缺陷可以在开发人员有时间的时候再被纠正。
正确评估和区分软件缺陷的严重性和优先级,是测试人员和开发人员以及全体项目组人员的一件大事。这既是确保测试顺利进行的要求,也是保证软件质量的重要环节,应该要引起足够的重视。这里介绍三种常用的技术工具供大家参考。
(1)20/80原则
管理学大师彼得杜拉克说过:做事情必须分清轻重缓急。最糟糕的是什么事都做,这必将一事无成。而意大利经济学家柏拉图则更明确提出:重要的少数与琐碎的多数或称20/80的定律。就是80%的有效工作往往是在20%的时间内完成的,而20%的工作是在80%的时间内完成的。因此,为了提高测试质量,必须清晰的认识到哪些软件缺陷是最重要的,哪些软件缺陷是最关键的。不要拣了芝麻,却丢了西瓜。所以,只有抓住了重要的关键缺陷,测试效果才能产生最大的效益,这也是第一个原则---分清轻重缓急,把测试活动用在最有生产力的事情上。
(2)ABC法则
古人云:事有先后,用有缓急。测试工作其实也是如此,分清软件缺陷的轻重缓急,不但做处理软件缺陷来井井有条,完成后的效果也是不同凡响。因此,我们在测试工作中要时时记住一点,手边的软件缺陷并不一定就具有第一优先处理的重要性。只有正确的判断,才可将测试活动效率增加数倍。
ABC法则是设定软件缺陷优先顺序重要工具之一。这ABC工具的关键点在于根据软件缺陷的重要程度决定优先顺序,按需求目标进行量化规划。把A类软件缺陷作为测试最重要的最有价值的最关键的缺陷,并保证首先把A类软件缺陷先处理。其次是B类软件缺陷,然后是C类软件缺陷,然后是其它的,还有一些不紧急不重要的软件缺陷根本没有必要去做。
原文转自:http://www.uml.org.cn/Test/201003033.asp