软件缺陷的识别
在软件测试过程中,一旦发现问题,应该知道如何识别是否是缺陷。具体识别方法如下所示:
(1)通过测试用例中的预期结果进行识别。
(2)通过需求规格说明书进行识别。
(3)通过用户手册及其他文档进行识别。
(4)通过同行业相类似成熟的商业软件来识别。
(5)通过和开发人员的沟通进行识别。
(6)通过和有经验的测试人员沟通进行识别。
(7)参照同行业隐式需求进行识别。
软件缺陷的处理
软件缺陷被提交之后,接下来就是对它进行处理和跟踪,其中软件缺陷的处理包括软件缺陷生命周期、软件缺陷处理技巧两个方面。
1.软件缺陷生命周期
生命周期通常描述生物从诞生到消亡所经历的不同生命阶段,软件缺陷生命周期则指的是一个软件缺陷被发现、报告到这个缺陷被修复、验证直至最后关闭的完整过程。在整个软件缺陷生命周期中,通常是以改变软件缺陷的状态来体现不同的生命阶段。因此,软件测试人员需要关注软件缺陷在生命周期中的状态变化,从而跟踪软件质量和项目进度。一个简单的软件缺陷生命周期如图1所示。
图1 简单的软件缺陷生命周期
(1)发现→打开:测试人员找到软件缺陷并将软件缺陷提交给开发人员。
(2)打开→修复:开发人员再现、修复缺陷,然后提交给测试人员去验证。
(3)修复→关闭:测试人员验证修复过的软件,关闭已不存在的缺陷。
在实际工作中,软件缺陷的生命周期不可能如图1中那样简单,还包含其他各种情况。一个复杂的软件缺陷生命周期如图2所示。
图2 复杂的软件缺陷生命周期
综上所述,软件缺陷在生命周期中经历了数次审阅和状态变化,最终测试人员关闭软件缺陷来结束软件缺陷的生命周期。软件缺陷生命周期中的不同阶段是测试人员、开发人员和管理人员一起参与、协同测试的过程。软件缺陷一旦被发现,便进入测试人员、开发人员、管理人员的严密监控之中,直至软件缺陷生命周期终结,这样即可保证在较短的时间内高效率地修复所有的缺陷,加快软件测试的进程,提高软件质量,同时也减少了开发和维护成本。
2.软件缺陷处理技巧
管理人员、测试人员和开发人员需要掌握在软件缺陷生命周期的不同阶段处理软件缺陷的技巧,从而尽快处理软件缺陷,缩短软件缺陷生命周期。以下列出处理软件缺陷的基本技巧。
(1)审阅。测试人员在缺陷管理工具中输入一个新的缺陷后应该提交,以待审阅。这种审阅可以由测试管理员、项目管理员或其他人来进行,主要检查缺陷报告的质量水平。
(2)拒绝。如果审阅者认为需要对一份缺陷报告进行重大修改,例如,添加更多的信息或者改变缺陷的严重等级,审阅者应该和测试人员一起讨论,由测试人员纠正缺陷报告,然后再次提交。
(3)完善。如果测试员已经完整地描述了问题的特征并将其分离,那么审阅者就会肯定这个报告。
(4)分配。当开发组接受完整描述特征并被分离的问题时,测试人员会将它分配给适当的开发人员,如果不知道具体开发人员,应分配给项目开发组长,由开发组长再分配给对应的开发人员。
(5)测试。一旦开发人员修复了一个缺陷,它将进入测试阶段。缺陷的修复需要得到测试人员的验证,同时还要进行回归测试,检查这个缺陷的修复是否引发了新的缺陷。
(6)重新打开。如果这个修复没有通过确认测试,那么测试人员将重新打开这个缺陷报告。重新打开缺陷报告需要加注释说明,否则可能会引起“打开、修复”多次重复,造成测试人员和开发人员不必要的矛盾。
(7)关闭。如果软件缺陷修复后通过了确认测试,那么测试人员将关闭这个缺陷。只有测试人员有关闭缺陷的权限,开发人员没有这个权限。
(8)暂缓。如果每个人都同意将确实存在的缺陷移到以后处理,应该指定下一个版本号或修改的日期。一旦新的版本开始测试,这些暂缓处理的缺陷应该重新被打开。
测试人员、开发人员和管理人员只有紧密地合作,掌握软件缺陷的处理技巧,在项目的不同阶段及时地审查、处理和跟踪每个软件缺陷,加速软件缺陷状态的变换,才能提高软件质量,保证项目的进度。