曹晋的空间

我们一直在努力....

什么是软件缺陷

标签: 软件 缺陷

一、软件缺陷的定义及主要类型
  所谓"软件缺陷(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类软件缺陷,然后是其它的,还有一些不紧急不重要的软件缺陷根本没有必要去做。
  (3)四象限原则,把软件缺陷进行分类
  在处理测试软件缺陷中,常会遇到千头万绪、问题繁多的情况,有些测试人员会被测试出来众多的软件缺陷所压垮,有些人则是悠然自得、高效完成。到底是什么原因造成这种区别呢?原因在于对软件缺陷分类是否合理。
  那么,我们该如何对软件缺陷进行合理的分类呢?其实很简单,在一张坐标纸上,先划分好四个象限,然后只需记住四个字就行,那就是"轻重缓急"。"轻",指的是相对重要但不紧急的软件缺陷;"重",是指最重要也是最紧急的软件缺陷;"缓",指的是不重要也不紧急的软件缺陷;"急",则是指不是最重要但却最为紧急的软件缺陷。理清这种关系之后,就算同时测试许多不同类型的软件缺陷,也会很快清楚哪些软件缺陷是必须马上完成,哪些缺陷是可以暂时缓一缓,这样也就不会被堆积如山的软件缺陷所压垮,测试效率自然也会得到很大的提高。
  软件缺陷的三种基本状态:
  (1)激活状态(Active或Open)。
  (2)已修正状态(Fixed或Resolved)。
  (3)关闭或非激活状态(Close或Inactive)。
三、软件缺陷产生原因及分类
  软件缺陷产生原因主要有三方面:技术问题,团队合作,软件本身。
  从测试观点我们将软件缺陷分为五类,分别为:功能缺陷,系统缺陷,加工缺陷,数据缺陷,代码缺陷。
四、软件测试心理学问题
  (1)程序测试的过程具有破坏性。
  (2)程序员应避免测试自己的程序。
  (3)程序设计组织不应测试自己的程序。

以上是我对软件缺陷的观点如有不同意见,欢迎讨论


    分享: 收藏到CSDN 收藏到javaeye 收藏到博客园 收藏&分享
  • 浏览 (285)
  • 评论 (0)
  • 发表于 2009-07-08 12:49
    评分: 请先登录再投票,同一篇博客一月只能投票一次!
    无人投票

相关博客:


评论


发表评论

最近访客
关注此文的人们还关注