严重性和优先级是表征软件测试缺陷的两个重要因素,它影响软件缺陷的统计结果和修正缺陷的优先顺序,特别在软件测试的后期,将影响软件是否能够按期发布与否。实际测试工作中不能正确表示缺陷的严重性和优先级,这将影响软件缺陷报告的质量,不利于尽早处理严重的软件缺陷,可能影响软件缺陷的处理时机。 什么是缺陷的严重性和优先级 严重性(Severity)顾名思义就是软件缺陷对软件质量的破坏程度,即此软件缺陷的存在将对软件的功能和性能产生怎样的影响。 在软件测试中,软件缺陷的严重性的判断应该从软件最终用户的观点做出判断,即判断缺陷的严重性要为用户考虑,考虑缺陷对用户使用造成的恶劣后果的严重性。 优先级(Priority)是表示处理和修正软件缺陷的先后顺序的指标,即哪些缺陷需要优先修正,哪些缺陷可以稍后修正。 确定软件缺陷优先级,更多的是站在软件开发工程师的角度考虑问题,因为缺陷的修正顺序是个复杂的过程,有些不是纯粹技术问题,而且开发人员更熟悉软件代码,能够比测试工程师更清楚修正缺陷的难度和风险。 缺陷的严重性和优先级的关系 缺陷的严重性和优先级是含义不同但相互联系密切的两个概念。它们都从不同的侧面描述了软件缺陷对软件质量和最终用户的影响程度和处理方式。 一般地,严重性程度高的软件缺陷具有较高的优先级。严重性高说明缺陷对软件造成的质量危害性大,需要优先处理,而严重性低的缺陷可能只是软件不太尽善尽美,可以稍后处理。 但是,严重性和优先级并不总是一一对应。有时候严重性高的软件缺陷,优先级不一定高,甚至不需要处理,而一些严重性低的缺陷却需要及时处理,具有较高的优先级。 修正软件缺陷不是一件纯技术问题,有时需要综合考虑市场发布和质量风险等问题。例如,如果某个严重的软件缺陷只在非常极端的条件下产生,则没有必要马上解决。另外,如果修正一个软件缺陷,需要重新修改软件的整体架构,可能会产生更多潜在的缺陷,而且软件由于市场的压力必须尽快发布,此时即使缺陷的严重性很高,是否需要修正,需要全盘考虑。 另一方面,如果软件缺陷的严重性很低,例如,界面单词拼写错误,但是如果是软件名称或公司名称的拼写错误,则必须尽快修正,因为这关系到软件和公司的市场形象。这个时候缺陷的优先级就很高。还有法律问题,商标问题,生活习俗问题。 处理缺陷的严重性和优先级的常见错误 正确处理缺陷的严重性和优先级不是件非常容易的事情,对于经验不很丰富的测试和开发人员而言,经常犯的错误有以下集中情形: 第一,将比较轻微的缺陷报告成较高级别的缺陷和高优先级,夸大缺陷的严重程度,经常给人“狼来了”的错觉,将影响软件质量的正确评估,也耗费开发人员辨别和处理缺陷的时间。 第二,将很严重的缺陷报告成轻微缺陷和低优先级,这样可能掩盖了很多严重的缺陷。如果在项目发布前,发现还有很多由于不正确分配优先级造成的严重缺陷,将需要投入很多人力和时间进行修正,影响软件的正常发布。或者这些严重的缺陷成了“漏网之鱼”,随软件一起发布出去,影响软件的质量和用户的使用信心。 因此,正确处理和区分缺陷的严重性和优先级,是软件测试人员和开发人员,以及全体项目组人员的一件大事。处理严重性和优先级,既是一种经验技术,也是保证软件质量的重要环节,应该引起足够的重视。 如何表示缺陷的严重性和优先级 缺陷的严重性和优先级通常按照级别划分,各个公司和不同项目的具体表示方式有所不同。 为了尽量准确的表示缺陷信息,通常将缺陷的严重性和优先级分成4级。如果分级超过4级,则造成分类和判断尺度的复杂程度,而少于4级,精确性有时不能保证。 具体的表示方法可以使用数字表示,也可以使用文字表示,还可以数字和文字综合表示。使用数字表示通常按照从高到底或从低到高的顺序,需要软件测试前达成一致。例如,使用数字1,2,3,4分别表示轻微、一般、较严重和非常严重的严重性。对于优先级而言,1,2,3,4可以分标表示低优先级、一般、较高优先级和最高优先级。 也可以使用S1,S2,S3,S4表示严重性的等级,用P1,P2,P3,P4表示优先级的程度。 如何确定缺陷的严重性和优先级 通常由软件测试人员确定缺陷的严重性,由软件开发人员确定优先级较为适当。但是,实际测试中,通常都是由软件测试人员在缺陷报告中同时确定严重性和优先级。 确定缺陷的严重性和优先级要全面了解和深刻体会缺陷的特征,从用户和开发人员以及市场的因素综合考虑。通常功能性的缺陷较为严重,具有较高的优先级,而软件界面类缺陷的严重性一般较低,优先级也较低。 对于缺陷的严重性,如果分为4级,则可以参考下面的方法确定: 1 – 非常严重的缺陷,例如,软件的意外退出甚至操作系统崩溃,造成数据丢失,重大功能缺失等。 2 – 较严重的缺陷,例如,软件的某个菜单不起作用或者产生错误的结果; 3 - 软件一般缺陷,例如,非主要功能的错误,本地化软件的某些字符没有翻译或者翻译不准确; 4 - 软件界面的细微缺陷,例如,某个控件没有对齐,某个标点符号丢失等; 对于缺陷的优先性,如果分为4级,则可以参考下面的方法确定: 1 –最高优先级,例如,软件的主要功能错误或者造成软件崩溃,数据丢失的缺陷。 2 – 较高优先级,例如,影响软件功能和性能的一般缺陷; 3 -一般优先级,例如,本地化软件的某些字符没有翻译或者翻译不准确的缺陷; 4 – 低优先级,例如,对软件的质量影响非常轻微或出现几率很低的缺陷; 其他注意事项 比较规范的软件测试,使用软件缺陷管理数据库进行缺陷报告和处理,需要在测试项目开始前对全体测试人员和开发人员进行培训,对缺陷严重性和优先级的表示和划分方法统一规定和遵守。 在测试项目进行过程中和项目接收后,充分利用统计功能统计缺陷的严重性,确定软件模块的开发质量,评估软件项目实施进度。统计优先级的分布情况,控制开发进度,使开发按照项目尽快进行,有效处理缺陷,降低风险和成本。 为了保证报告缺陷的严重性和优先级的一致性,质量保证人员需要经常检查测试和开发人员对于这两个指标的分配和处理情况,发现问题,及时反馈给项目负责人,及时解决。 对于测试人员而言,通常经验丰富的人员可以正确的表示缺陷的严重性和优先级,为缺陷的及时处理提供准确的信息。对于开发人员来说,开发经验丰富的人员严重缺陷的错误较少,但是不要将缺陷的严重性作为衡量其开发水平高低的主要判断指标,因为软件的模块的开发难度不同,各个模块的质量要求也有所差异。 巧用评估技术工具,分清轻重缓急 正确评估和区分缺陷的严重性和优先级,是测试人员和开发人员以及全体项目组人员的一件大事。这既是确保测试顺利进行的要求,也是保证软件质量的重要环节,应该要引起足够的重视。这里介绍三种常用的技术工具供大家参考。 (1)20/80原则 管理学大师彼得杜拉克说过:做事情必须分清轻重缓急。最糟糕的是什么事都做,这必将一事无成。而意大利经济学家柏拉图则更明确提出:重要的少数与琐碎的多数或称20/80的定律。就是80%的有效工作往往是在20%的时间内完成的,而20%的工作是在80%的时间内完成的。因此,为了提高测试质量,必须清晰的认识到哪些缺陷是最重要的,哪些缺陷是最关键的。不要拣了芝麻,却丢了西瓜。所以,只有抓住了重要的关键缺陷,测试效果才能产生最大的效益,这也是第一个原则---分清轻重缓急,把测试活动用在最有生产力的事情上。 (2)ABC法则 古人云:事有先后,用有缓急。测试工作其实也是如此,分清缺陷的轻重缓急,不但做处理缺陷来井井有条,完成后的效果也是不同凡响。因此,我们在测试工作中要时时记住一点,手边的缺陷并不一定就具有第一优先处理的重要性。只有正确的判断,才可将测试活动效率增加数倍。 ABC法则是设定缺陷优先顺序重要工具之一。这ABC工具的关键点在于根据缺陷的重要程度决定优先顺序,按需求目标进行量化规划。把A类缺陷作为测试最重要的最有价值的最关键的缺陷,并保证首先把A类缺陷先处理。其次是B类,然后是C类,然后是其它的,还有一些不紧急不重要的缺陷根本没有必要去做。因此,应用ABC方法可更明确地确定各项测试目标,当然也能更明确把要处理的缺陷和它们的优先次序确定。 (3)四象限原则,把缺陷进行分类 在处理测试缺陷中,常会遇到千头万绪、问题繁多的情况,有些测试人员会被测试出来众多的缺陷所压垮,有些人则是悠然自得、高效完成。到底是什么原因造成这种区别呢?原因在于对缺陷分类是否合理。 那么,我们该如何对缺陷进行合理的分类呢?其实很简单,在一张坐标纸上,先划分好四个象限,然后只需记住四个字就行,那就是"轻重缓急"。"轻",指的是相对重要但不紧急的缺陷;"重",是指最重要也是最紧急的缺陷;"缓",指的是不重要也不紧急的缺陷;"急",则是指不是最重要但却最为紧急的缺陷。理清这种关系之后,就算同时测试许多不同类型的缺陷,也会很快清楚哪些缺陷是必须马上完成,哪些缺陷是可以暂时缓一缓,这样也就不会被堆积如山的缺陷所压垮,测试效率自然也会得到很大的提高。
缺陷的处理顺序 1-2-3-4
|