软件项目过程缺陷管理与过程控制方法的研究
2016-04-14葛艳韩梅
葛艳 韩梅
摘要:为了提高软件项目的质量,该文探讨分析软件项目过程中的缺陷管理和过程控制方法。重点分析了项目过程缺陷管理的步骤和缺陷统计分类方法。通过对缺陷的收集、统计和分析,识别出软件项目过程中存在的问题。经过在实际项目中的实践,能够达到过程改进和项目质量提高的效果。
关键词:软件测试;缺陷管理;过程控制
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)05-0181-03
Abstract: In order to improve the quality of software project, this paper focuses on the defeat management and process control in the process of software project. The process of defeat management and the methods of statistical classification of the software project are discussed in this paper. The problems in the process of software project can be identified by the collection, statistics and analysis of the defects. The effect of process and the project quality in the actual software project can be improved based on the methods in this paper.
Key words: Software test; Defeat management; Process control
1概述
随着各类软件的广泛应用,人们对软件的质量要求也越来越严格[1]。软件开发不再是软件开发人员的个人行为而是团队行为。对软件开发机构来说,如何在有限的投资下按期交付高质量的软件产品是一个巨大的挑战。软件项目管理涉及方方面面的人员,产生大量的中间产品,每个环节都可能存在产品质量问题;而软件项目管理除了涵盖需求、设计、开发、测试等过程管理,还包括进度、风险、资源(人、软/硬件)、成本、沟通等管理,这些都与软件的质量、效率、最终成果息息相关[2]。
本文从软件项目缺陷管理入手,通过收集软件项目过程中缺陷分类,统计分析缺陷产生的原因和变化趋势等,驱动相关软件项目过程的控制和改进,从而达到提高软件项目质量的目的。
2 项目过程缺陷管理
缺陷(Bug)是软件固有属性,不仅是代码级别的错误,还包含设计、编码、测试各阶段收集的缺陷[3]。任何有助于改善产品质量的提议,值得跟踪的潜在问题都应作为一个缺陷来对待。有计划、有目标地收集缺陷,有步骤地修改缺陷,全面地统计缺陷、有针对地分析缺陷、不断归纳缺陷发生和消亡规律的一整套规范性的行为过程,称为缺陷管理[4]。
缺陷管理分为缺陷收集、分析、修改和统计四个步骤,是不断循环和改进的过程。
2.1 缺陷收集
缺陷收集是缺陷管理的前提,是有计划、有目标地去发现,而不是简单的偶然发现。在项目过程中,评审和测试均是缺陷收集的主要表现形式。在缺陷收集之前,必须按质量目标预测收集的数量[5]。
2.1.1 缺陷收集的主要手段
缺陷收集的主要手段如下:
1)评审(适用于设计书等文档类及代码缺陷):对设计代码进行审查写成文件,以评定设计代码是否满足要求,识别其中的问题并提出解决办法。在项目过程中通常进行多次设计代码评审。
2)白盒测试(适用于单元测试):检查每个测试用例的数据处理,覆盖可能处理路径和代码行,存在的方法有[6]:代码行覆盖(覆盖所有程序代码),路径覆盖(覆盖所有可能的逻辑、业务等路径)以及条件覆盖(覆盖所有可能的逻辑条件分支)。
3)黑盒测试(适用于功能测试、系统测试等测试阶段):忽略系统或构件的内部结构,用以评价系统或构件对规定的功能需求的符合性。
2.1.2 缺陷的收集目标
根据项目数据积累,对项目整体摘出缺陷数、各个阶段摘出缺陷数量做出明确的预定收集目标。
2.1.3 缺陷收集偏离率
缺陷收集应注意实际收集到的缺陷量和预定收集量是否有较大的偏离[7]。偏离率计算公式如下:
偏离率=(实际数量-预定数量)/预定数量 (1)
如果偏离率大于20%,说明缺陷收集或软件系统的代码可能出现问题,应立即找出问题所在。
2.2 缺陷的分析
缺陷修改之前需要分析缺陷发生原因,提出修改对策,归纳缺陷类别以及确定修改紧急度等。
2.3 缺陷的修改
通过修改设计书,代码和测试确认消除缺陷。
2.4 缺陷的统计
科学地预测缺陷发生的时机、数量、场所等也是缺陷统计分析的重要成果之一[8-9]。 缺陷统计分类如表1所示。其中序号5-12可作为缺陷属性或特征进行管理。还有几项说明如下:
第4项可以预测出未来来自该客户项目的较精确的设计变更工作量,准确地估计对交付后由于设计变更而引发的工作量,便于安排项目跟踪人员。
第7项统计分类为第本文3节过程控制举例用。在实际项目管理中还可进一步细化分类标注。
第12项中缺陷应摘出阶段是通过分析后认定该缺陷应在哪一阶段被摘出。例如:在功能测试时发现一个功能遗漏缺陷,如果前期工作做得好,该缺陷应在设计评审或编码阶段被发现。
3 过程控制
通过对软件项目过程缺陷的管理和分析,识别存在问题,可以有针对性的进行过程控制和改进。
3.1 软件项目过程中缺陷数据统计分析和过程控制
根据每天对缺陷进行统计和分析,可发现本阶段的项目质量薄弱环节,及时改进,对下阶段进行预防。可从以下几个方面关注统计结果:
1)重点关注每天摘出、修改、关闭的缺陷,本阶段摘出、修改、关闭的总缺陷,把握质量状况。
2)缺陷曲线图如果起伏很大,说明本阶段项目的质量有一定的问题。
3)缺陷误报如果过多,说明测试人员对系统设计的理解不够深刻。
4)设计错误如果过多,说明设计存在较多问题,应尽快修复设计错误,避免后期发生不必要的设计变更,降低项目后期压力。
5)某一类型的缺陷如果过多,说明项目存在共通的问题,在修改时没有很好的进行横向展开。应对此问题进行专项检查,甚至暂停项目,予以处理。
6)如果存在长时间没有关闭的缺陷,说明该缺陷存在设计或技术问题,应谨防延误项目进度。
7)按“重要度”和“摘出难易度”评估项目质量。两者组合关系如表2所示。
按每天的缺陷统计数据评估和预测项目质量可以得到如图1所示的设计阶段缺陷曲线图。如果每天摘出的缺陷数量没有较大波动, 缺陷偏差率不大,则缺陷曲线图比较平滑无较大波动,项目质量风险可控。如果缺陷未修改曲线无较大波动,最终趋于0,则说明缺陷修改进度延迟风险较小。
3.2 里程碑结束时的缺陷数据统计分析与过程控制
在里程碑结束时,如果缺陷偏离率超过基准值阈值范围,应调查原因并提出对策:
1)针对缺陷实际数量小于预定数量的情况,应比较缺陷分类统计发生率是否与历史数据有较大偏差。如果有较大偏差,应抽取样本对该指标进行重点检查。如果发现问题较多,说明该指标质量异常,对该指标应重新进行评审或测试。
2)针对缺陷实际数量大于预定数量的情况:首先从项目规模、时间、类型、难易度、开发人员技能水平、过程控制等方面分析查找超标原因,提出有效措施。其次,分析典型缺陷和特性,判定该类缺陷是否具有普遍意义和后续危害。再次,把超标的缺陷类型做成质量MAP,追加测试,确保该类型缺陷被尽可能地摘出。最后,当不易摘出的缺陷较多时,如果分析原因能证明合理则正常。例如摘出了较多经评估应在下一工程阶段摘出的缺陷。
4 结束语
本文从软件项目缺陷管理的角度,通过对缺陷的收集、统计和分析,尽可能早的发现软件项目过程中的问题,从而实现问题的早发现、早干预、早解决。通过有针对性的对软件项目过程控制和改进,能有效的预估项目中的质量发展趋势,使项目人员有更多的时间和精力为下一步工作做准备。本文系统的介绍了缺陷管理和过程控制,阐明了两者之间的关系和发现、解决问题的思路,在实际项目过程中可以根据情况灵活运用。
参考文献:
[1] 杨翠蓉, 尹平林, 王明哲. ERP 环境下的仓库管理信息系统设计[J]. 计算机与现代化, 2001(5): 95-98.
[2] 张向宏, 张翠然. 基于CMMI4的软件缺陷管理体系研究及应用[J]. 山西财经大学学报, 2011, 33(3): 291-292.
[3] Lewis W E,Dobbs D, Veerapillai G. 软件测试与持续质量改进[M]. 陈绍英, 张河涛, 刘建华,等,译. 3版.北京: 人民邮电出版社, 2011: 39-50.
[4] Hassan A E.Holt R Guest editors'introduction: Spec- ial issue on mining software repositories[J]. IEEE trans on software engineering, 2005, 31(6): 426-428.
[5] 王维, 邹燕飞, 庞金叶. 缺陷管理系统的研究与实现[J]. 电脑编程技巧与维护, 2014(23): 49-50.
[6] 王贺. 基于ODC的软件缺陷管理方法的研究与应用[D]. 北京: 北京邮电大学, 2010.
[7] 黄静旋, 李和平. 缺陷管理与分析系统的研究与开发[J]. 电脑知识与技术, 2013, 9(5): 1052-1068.
[8] 张创基. 软件缺陷管理系统的分析与设计[J]. 教育教学论坛, 2012(8).
[9] 林璐. 对软件测试中的缺陷管理的研究和实践[D]. 上海: 复旦大学, 2011.