软件缺陷管理方案分析
2014-03-13史海峰
史海峰
(南京信息职业技术学院,江苏 南京 210046)
软件缺陷管理方案分析
史海峰
(南京信息职业技术学院,江苏 南京 210046)
基于作者软件开发和软件测试的工作经历,给出了一套软件缺陷管理方案,该方案对软件缺陷的管理内容和生命周期进行重点分析,定义了软件缺陷在其生命周期中的各个状态,以及状态之间的转换过程,然后在软件缺陷权利管理中给出了权限和角色分配方法,最后对方案提出了一些不足和改进。
软件缺陷管理;测试用例;测试结果;生命周期;权限管理
1.引言
软件缺陷是计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。软件缺陷管理是在软件生命周期中获取、管理、沟通任何变更请求的过程,可以确保问题或缺陷被跟踪管理而不丢失。目前缺陷管理类的软件工具比较多,主要功能比较一致,但在一些细节,如缺陷管理的流程,与其它软件工程管理软件的集成,甚至涉及到软件测试流程和软件质量管理的理念上,都存在差异[1]。本文结合作者的软件开发和测试工作经历,给出一套软件缺陷管理方案。
2.软件缺陷的产生
软件测试从需求分析阶段就与软件开发同步进行,软件缺陷在软件测试的各个阶段都会产生。图1是软件缺陷的产生示意图。
图1 软件缺陷产生示意图
测试人员和开发人员首先根据测试需求创建各个测试用例,测试需求与测试用例是一对多的关系;各个测试用例在运行后会产生相应的测试结果,在一次测试过程中,一个测试用例只会有一个测试结果,但从整个软件测试流程中,一个测试用例会产生多个测试结果,比如在针对不同版本进行的回归测试,从测试用例到测试结果一般测试人员和开发人员都会参与;最后,如果测试结果完全满足对应的测试需求的要求,即测试成功,可以认为该测试用例测试通过,若不满足,即测试失败,根据测试结果创建相应的缺陷,测试结果与软件缺陷是一对多的关系[2]。
3.软件缺陷管理方案
3.1 管理内容
从管理功能的角度,软件缺陷管理会记录缺陷时间、严重度、异常的程序表现以及如何重现软件缺陷的细节;另外还有报告程序缺陷的人员身份和可能修正此缺陷的程序员信息。为了追踪与软件缺陷相关的测试用例和测试结果,应该对测试用例和测试结果进行分类管理,同时关联好测试用例、测试结果和软件缺陷三者的关系[3,4]。
从管理权限的角度,软件缺陷管理过程中,除了需要分配相关的人员对测试用例、测试结果和软件缺陷进行维护外,还需要不断跟踪软件缺陷及与之相关的测试用例、测试结果在其生命周期中被分配的状态指数。在跟踪过程中应当允许管理员设定基于状态的权限,可以结合软件缺陷的管理流程,通过权限管理来维护在测试用例、测试结果和软件缺陷生命周期中的状态,包括缺陷的确认、缺陷任务的分配等等。同时对各类状态进行定义和维护[3,4]。
下面首先分析软件缺陷的具体内容及生命周期中的状态关系,然后定义相关的权限和角色,并赋予角色对应的权限。
3.2 软件缺陷管理
一条测试用例的多次执行会产生多个测试结果,当测试结果与预期结果不一致时,可以通过该测试结果产生一个或多个软件缺陷,当发现软件缺陷后,需要设法找到引起这个缺陷的原因,对软件缺陷进行分类,分析对产品质量的影响,然后确定软件缺陷的严重性和处理这个缺陷的优先级。一个完整的软件缺陷包括如下表所示的字段信息:
表1 软件缺陷字段说明
软件缺陷标题表示软件缺陷当前所处状态与测试结果一致该软件缺陷造成的严重性修复软件缺陷的紧急程度(微小、一般、严重和致命)标题状态保存路径严重程度缺陷级别其他字段:分类、创建者、修复者、抄送人员、测试步骤、错误描述、建议等
软件缺陷在其生命周期中的状态关系图如图2所示:
图2 软件缺陷生命周期状态图
如图所示,软件缺陷共有四个状态,缺陷创建时为Active状态,表明该缺陷激活,需经过管理员的确认,管理员确认通过后,此时将该缺陷设置为Reviewed状态,表明缺陷得到确认,再将该缺陷分配给软件修复者(通常为开发人员)进行处理;软件修复者得到任务后对缺陷进行修复,修复完成后,将该缺陷设置为Resolved,表明该缺陷已得到解决;当修复者处理好缺陷后,创建者需要判断该缺陷是否得到了处理,如果并未得到处理,则将缺陷重新设置为Active状态,表明该缺陷没有能正常解决,然后交给管理员再进行确认;若创建者判断修复者已经完成了对缺陷的处理,则由管理员进行确认,确认通过后缺陷状态仍然为Resolved;当管理员认为该缺陷已经解决,同时在后续开发过程中也无须跟踪该缺陷,则可以将缺陷状态设置为Closed,表明该缺陷为关闭状态,后续测试和开发无须考虑该缺陷;对新创建和重新激活的缺陷,管理员在进行确认过程中,如果认为创建的缺陷无须修复,直接可以设置为关闭状态,或者对于创建者重新激活的缺陷,管理员若认定该缺陷已经解决,管理员可以将缺陷再次设置为Resolved状态;同样对于已经为Closed状态的缺陷,在后续测试过程中重现,可以重新激活,设置为Active状态[3,5]。
设置为Resolved状态的软件缺陷,并不表明该软件缺陷得到了修复,仅仅表示该软件缺陷得到了处理,有的情况下有些软件缺陷是不需要修复的,比如无法复现的问题,或者暂时不能解决的软件缺陷,也有的情况下软件缺陷发现得比较晚,当前的处理结果是在下一个版本进行修复;这里将Resolved状态的缺陷分为两大类:无效缺陷和有效缺陷,该两大类将已解决的缺陷再分成如下的解决分类[5],如表2所示:
表2 Resolved状态下的缺陷解决分类
3.3 软件缺陷权限管理
由前面分析可以看到,在软件缺陷管理过程中,所涉及到的角色较多,因此必须要设置相应的角色和对应的权限。首先将权限分为软件产品管理、用户管理、测试用例管理、测试结果管理和软件缺陷管理五个方面,将角色分为系统管理员、项目管理员、测试管理员、测试审核员、测试人员和开发人员六个方面,各角色的具体权限分配如表3和表4所示:
表3 缺陷管理权限分配表一
表4 缺陷管理权限分配表二
4.结语
本文给出了一套软件缺陷管理方案,该方案从生命周期和管理内容两个方面详细分析了软件缺陷的管理方法,并给出了软件缺陷权利管理中权限和角色分配方法。该方案更多的是结合本人在软件开发和测试工作中的经验总结而成,在软件缺陷的状态关系中,强调了审核和确认的机制,管理方案略显繁琐,在软件开发和测试的实际运行中比该方案相对简单;另外方案在团队工作和项目管理方面,尤其是质量控制和质量保证方面,考虑得不够全面,在今后的工作过程应重点融入这部分内容。
[1]百度百科.缺陷跟踪管理系统[EB/OL].http://baike.baidu.com/view/107502.htm,2013.
[2]张创基.软件缺陷管理系统的分析与设计[J].教育教学论坛,2012.8.
[3]林璐.对软件测试中的缺陷管理的研究和实践[D].上海:复旦大学,2011.
[4]闫振兴,郑骏.软件缺陷度量与软件过程管理方法研究[J].计算机与数字工程,2010.8.
[5]王昕.基于工作流的软件缺陷管理系统的设计与实现[D].上海:上海交通大学,2011.
Analysis on the Software Defect Management Scheme
Shi Haifeng
(Nanjing College of Information Technology,Nanjing 210046,Jiangsu)
Base on author's working experience of software development and testing,this paper gives a software defect management scheme.It focuses on the analysis of the management content and the life cycle of software defect,and defines each state in the life cycle of software defect and the transition process of the states;then gives the authority and role assignment method in the software defect authority management,and finally presents the deficiency and improvement.
software defect management;test case;test result;life cycle;authority management
史海峰,男,江苏海安县人,硕士研究生,讲师,研究方向:信息安全、软件测试技术、多媒体技术。