基于ODC的软件缺陷分析统计系统的设计与实现
2018-03-04梁德军杨成武
梁德军 杨成武
摘要:软件产品发布后,使用过程中不可避免地仍会发现各种缺陷,对这些缺陷进行记录、统计和分析具有重要意义。该文结合软件用户使用实际,设计并实现了基于ODC的软件缺陷分析统计系统。该系统能够根据实际需要对软件缺陷进行各种统计和分析,并将结果生成分析统计报告。
关键词:软件产品;缺陷分析;缺陷统计;ODC
中图分类号TP311 文献标识码:A 文章编号:1009-3044(2018)36-0068-04
Abstract: After software product is released which becomes fixed and unchangeable, during the software use, the software defects cant be avoided. It has a very important significance to record, statistics, analyze these defects. Combined with the actual use of user, the paper mainly designs and realizes the architecture of software defect analysis and statics system Based on ODC. The system can carry out a variety of software defect analysis and statistics according to the actual needs of the system, and the results can be generated to the statistics analysis report.
Key words: software product; defect analysis; defect statistic; ODC
1 背景
隨着软件在系统中所占比重越来越大,软件发生故障的概率也随之增大。而对于一些关键软件或者系统软件中的一些关键模块,使用过程中一旦发生故障,造成的后果将不可估量。软件测试是系统软件生产中必不可少的质量保障手段。软件产品在发布前必须进行严格的软件测试,尽可能地消除软件中存在的缺陷。通过软件测试可以发现系统软件存在的问题,但是无法完全发现和消除系统软件中的缺陷。当系统软件经过测试发布后,在用户使用过程中仍会发现一些遗留的软件缺陷。“如何对用户使用过程中发现的错误和缺陷进行跟踪和管理?如何利用用户使用过程中记录的错误和缺陷信息来提高软件质量及可靠性,为今后其他系统软件的确认测试提供参考?”就成为系统软件确认测试迫切关心的话题。
为了能够解决上述问题,软件测评中心必须加强与软件用户的交流,针对用户使用过程中发现的软件缺陷数据进行深入分析统计,通过分析统计的结果一方面找到这类软件缺陷的本质,研究分析确认测试时未能发现这类问题的原因,并找到解决办法,进一步有针对性的提高测试能力;另一方面可以对多个软件产品缺陷数据产生趋势中寻找规律,有针对性地采取有效措施对测试过程进行修正、加强相关环节,为今后的软件确认测试提供参考,防止类似缺陷再次发生。因此,为了适应这一现实需求,亟需研发一套软件缺陷分析统计系统。
2 系统功能需求
在软件产品发布并交付用户使用后,将面临严峻的考验,在各种复杂情况下涌现大量缺陷也会时有发生。若处理延误或不当,会造成十分严重的后果。因此,必须重视缺陷分析的作用,靠科学的手段来揭示软件缺陷偏多的内在规律和症结所在,有效地遏制缺陷的发生。为了使用户使用过程中发现的缺陷数据得到充分利用,必须引入度量的机制,对缺陷的信息进行统计和分析。缺陷分析是将软件使用过程中产生的缺陷进行必要的收集,对缺陷的信息进行分类和汇总统计,计算分析指标,编写分析统计报告的活动。因此,软件缺陷分析统计系统应具备的主要功能包括:
2.1 缺陷管理功能
主要完成对软件缺陷数据的录入、修改、删除、查询等操作。对于软件缺陷生命周期中所有不同处理状态都要进行记录,并且能通过缺陷或者各种缺陷属性分类,方便查询系统中存在的缺陷记录信息。软件缺陷数据管理是软件缺陷分析统计的基础。
2.2 缺陷分析统计功能
构建各种统计分析模型,能够根据用户需要灵活选取统计分析方法对软件缺陷进行各种统计分析,并对分析统计结果提供直观的图形显示。缺陷分析统计是整个软件缺陷分析统计系统的核心,是整个过程中最关键、最核心的部分,缺陷数据分析统计方法的选取是软件缺陷分析统计的关键[1]。
2.3 报表输出功能
给用户提供软件缺陷分析统计报告,描述软件使用过程中所发现的缺陷信息以及缺陷目标、缺陷影响等缺陷分析统计结果。
2.4 用户权限管理功能
支持用户通过账号访问该系统,系统中的用户需要拥有不同权限。对于不同角色的用户,只允许执行在其权限范围内的各种操作。
3 软件缺陷分析统计模型
目前,软件缺陷分析统计方法主要包括:柏拉图分析法、根本原因分析法、正交缺陷分类法(Orthogonal Defect Classification,简称ODC)等。其中,利用缺陷正交分类法既可以对缺陷本质特性进行分析,同时又对缺陷类型做了深层次划分,使得该方法既适用于分类缺陷,又能够用来对缺陷进行统计和分析,是目前应用较为广泛的缺陷分析方法[2]。
4 ODC分析统计模型
正交缺陷分类是从大量缺陷中抽象、归纳、总结出缺陷的本质,利用正交的八个属性[3]表示一个缺陷,使得缺陷被准确地定位和表达。根据发现缺陷的过程,ODC方法在使用中分为两个阶段:开放阶段和关闭阶段。在软件产品使用过程中,操作人员发现缺陷后,建立缺陷记录,此时缺陷进入开放阶段,操作人员填写缺陷的基本信息以及如下ODC信息:发现缺陷的活动、缺陷的触发因素和缺陷的影响,然后将缺陷提交给开发人员,开发人员对提交的缺陷进行分析、修改,然后填写此缺陷的其余五个属性,分别是缺陷目标、缺陷阶段、缺陷来源、缺陷类型和缺陷限定,进入缺陷的关闭阶段。软件产品发布后,利用ODC对发现的软件缺陷进行分析统计,其八个属性定义如下:
4.1 发现缺陷的活动
发现缺陷的活动是指在进行什么活动时发现了缺陷。该文主要研究软件产品发布后的缺陷分析,因此,这里发现缺陷活动的取值为系统维护阶段,代表的含义为在用户实际使用过程中,检验软件在复杂环境下运行是否稳定可靠,功能是否满足需求。
4.2 触发因素
缺陷的触发因素指使得潜在缺陷显露出来成为一个可见故障所需要的环境和操作。即通过这个条件和操作,可以重现这个缺陷。触发因素属性与软件的生命周期相联系,在不同的阶段有不同的方法用于发现缺陷,与之相应就有不同的触发因素。在系统维护阶段的触发因素如表1所示。
4.3 缺陷影响
缺陷的影响指如果缺陷未被发现并修正,而是投入运行,将会产生什么样的影响或系统将产生什么类型的错误,缺陷影响属性描述了这些影响的性质。缺陷的影响包括:可达性、性能、可靠性、安全性、易用性、可维护性、可安装性等。
4.4 缺陷目标
缺陷目标描述了修改此缺陷要改动的目标。主要包括:设计、编码、文档等。
4.5 缺陷类型
缺陷类型是指修改缺陷所采取的修改操作的类型,取值如表2所示。
4.6 缺陷限定
缺陷限定这个属性是针对缺陷类型的进一步限定,它指出缺陷类型是缺失、不正确还是多余。即修改要做哪些工作,是增加缺少的功能代码、修改不正确部分还是删除多余的代码。
4.7 缺陷来源
缺陷来源是指缺陷是通过什么途径引入的。比如:开发人员自己引入,重用库中的错误,第三方软件问题或移植的其他代码。
4.8 缺陷阶段
缺陷阶段指明缺陷是在哪个阶段引入的。指明是原来版本存在的或者新发现的,是重写函数时引入的还是修复之前缺陷时引入的。
5 软件缺陷统计内容
在缺陷分析中可以使用统计方法对收集的缺陷进行分类、汇总。基于不同的缺陷属性,根据需要统计缺陷分布情况,利用统计结果分析缺陷产生的根本原因,将其成为改进软件测评过程的依据。缺陷统计内容包括:
1) 缺陷时间统计:是按软件缺陷发生的年月统计。该统计分析反映缺陷发生的动态趋势。
2) 缺陷来源统计:是按系统软件使用时机进行统计,该统计分析主要反映软件缺陷的来源分布,发现一些分布规律,进一步挖掘软件测试深层次的问题。
3) 缺陷按软件子系统分类统计:该统计能显示各软件子系统的缺陷分布情况。
4) 缺陷严重性等级统计:主要反映软件缺陷的严重性程度和对作战使用的影响程度。
5) 缺陷种类统计:软件缺陷类型统计一般分为功能、性能、接口、人機交互界面、安装性、文档等。
6) 缺陷状态分布:主要反映缺陷修改完成情况,软件缺陷状态属性包括:关闭、挂起和处理中。
6 软件缺陷分析指标
缺陷分析时需要计算一些分析指标,使分析结果得到定量描述,以便进行直观地对比。度量分析指标能够为定量分析缺陷提供基础。对软件产品发布后缺陷分析而言,分析指标主要包括:
6.1 反映产品质量的指标[4]
缺陷密度=缺陷数量/软件规模
6.2 反映产品可靠性的指标
平均失效时间=软件持续运行时间/缺陷数量
6.3 反映缺陷修复成本的指标
平均修复时间=缺陷修复时间/缺陷数量
对定型后缺陷分析而言,平均修复时间指标比较重要,它反映了维护阶段处理缺陷的效率。
7 系统体系结构设计
通过对软件缺陷分析统计系统的需求进行分析,系统的架构设计共分为三层(如图1所示),分别是数据层、模型层和应用层。数据层主要提供各种数据支撑,包括缺陷数据、用户数据和其他数据等;模型层主要集成了各种缺陷分析统计模型,包括缺陷统计模型、缺陷分析模型以及ODC模型等,为系统软件的核心部分;应用层面向软件使用管理人员,提供各种界面和操作完成软件缺陷的录入、统计、分析以及用户的权限管理,包括缺陷管理、缺陷分析、缺陷统计和报表输出、用户管理等。各层间采用相对独立的设计,模块与模块间具有独立性强、耦合松散的特点,便于软件的重组和扩展。
8 系统实现与应用
当新研软件产品发布后,在使用过程中不可避免的仍会发现一系列软件缺陷。利用该系统对这些缺陷进行收集记录,同时根据实际需要对这些缺陷进行各种统计分析,并将结果生成分析统计报告。系统运行主界面如图2所示。
首先将新发现的软件缺陷录入到系统中,然后利用该系统对软件缺陷进行统计分析,一方面可以利用建立的缺陷统计模型和缺陷分析模型对软件缺陷进行分析统计,如软件问题按严重性等级统计等。同时,也可以利用基于ODC的分析统计模型对软件缺陷进行分析统计,如软件问题按缺陷目标统计、按缺陷影响统计等。
软件问题按严重性等级统计结果如表3、图3所示。
根据不同的统计分析结果能够得到不同的分析结论,这对于改进软件测评过程、提高软件测评技术能力具有非常重要的意义。
9 结束语
该文主要对软件缺陷分析系统的设计与实现进行了研究,使用该系统可以对发现的软件缺陷进行跟踪、管理以及分析统计,并将分析统计结果生成分析统计报告输出。结果表明该系统的实现可以为用户的软件使用管理提供工具支撑,而对用户使用过程中的软件缺陷数据进行分析,可以为今后其他相同或相似软件研发和软件确认测试提供参考及借鉴。
参考文献:
[1] 连进,朱晓燕.基于Trackrecord的软件缺陷分析统计系统的设计[J].武汉科技学院学报,2005,18(1):59-62.
[2] Ram Chillarege,et al.Orthogonal Defect Classification-A Concept for In-process Measurements[J].IEEE Transaction on SoftwareEngineering, 1992, 18(11):943-956.
[3] 王贺. 基于ODC的软件缺陷管理方法的研究与应用[D]. 北京:北京邮电大学,2009.
[4] 刘莉. 基于统计过程控制的软件缺陷管理研究[D].大连:大连海事大学,2007.
[通联编辑:谢媛媛]