卢莉娜 胡隽 曾垂振
【摘要】软件缺陷跟踪管理是测试工作的一项重要内容,其目的是提高软件产品质量。本文分析了软件缺陷跟踪管理的必要性和目标,描述了软件缺陷和管理流程,初步探析了在软件缺陷跟踪管理中所需作的工作。
【关键词】软件缺陷 跟踪管理 管理流程 缺陷分析 CMM
【中图分类号】TP311 【文献标识码】A 【文章编号】2095-3089(2015)10-0249-02
缺陷跟踪管理是测试工作的一个重要部分,测试的目的是为了尽早发现软件系统中的缺陷,因此,对缺陷进行跟踪管理,确保每个被发现的缺陷都能够及时得到处理是测试工作的一项重要内容。
一、跟踪管理软件缺陷的原因
考察一个典型的软件开发流程:需求分析——概要设汁——详细设计——程序编码——系统集成——交付与维护。你会发现,此流程中各阶段之间的依赖与继承关系是相当密切的。前一阶段形成的方案或产品中正确的部分固然会被后一阶段继承和细化,然而,如果前一阶段方案中出现错误,却没有及时进行此阶段质量控制,该错误就会被后一阶段继承和放大,并顺序传递下去。如果等到交付与维护阶段错误才被发现,那么相关纠错工作就将成为一件成本高昂而又收效甚微的事情。在某些情况下,甚至会导致整个开发工作的失败。这并不是故意危言耸听据美国国家标准技术研究院一份报告显示,占据世界软件销售额85%的大型专用软件,其开發失败率高达70%。
为了规避通过开发过程把错误继承和放大的情况,必须引入软件缺陷跟踪管理机制,其作用为:第一,软件开发出现的问题进行有效跟踪管理;第二,协调开发人员、测试人员和需求三方关系,规范软件研发流程;第三,通过对问题的有效跟踪管理,可以持续的改进产品质量;第四,记录对问题的处理过程,可作为知识积累。引入缺陷跟踪管理机制,一方面划清了各个角色的职责,避免r不必要的争执,另一方面也有助于项目管理部门及时跟踪了解软件产品在开发过程中质量状况,从而更好地控制产品质量。
二、缺陷跟踪管理的目标
缺陷能够引起软件运行时产生不希望或不可接受的结果。软件测试过程简单地说就是围绕缺陷进行的,对缺陷的跟踪管理一般需要达到以下目标:
(一)确保每个被发现的缺陷都能够被解决。这里解决的意思不一定是被修正,也可能是其他处理方式(例如,在下一个版本中修正或是不修正)。总之,对每个被发现的问题的处理方式必须能够在开发组织中达到一致。
(二)收集缺陷数据,并根据缺陷趋势曲线识别侧试过程的阶段。决定测试过程是否结束有很多种方式,通过缺陷趋势曲线来确定测试过程是否结束是常用并且较为有效的一种方式。
(三)收集缺陷数据并在其上进行数据分析,作为组织的过程财富。
在一个运行良好的组织中,缺陷数据收集和分析是很重要的,从缺陷数据中可以得到很多与软件质量相关的数据。
三、软件缺陷的描述
软件缺陷不只是通常所说程序中所存在的数据错误、逻辑错误、内容遗漏以及内容不一致性等错误或疏忽,即俗称的Bug。其范围更大,除程序外还包括其相关产品:如项目计划、需求规格说明、设计文档、测试用例、用户手册等等中存在的错误和问题。需要强调的是,在软件工程整个生命周期中,任何背离需求、无法正确完成用户所要求的功能的问题,包括存在于组件、设备或系统软件中因异常条件不支持而导致系统失败的行为都属于缺陷范畴。如给每个缺陷分配一个缺陷号,每个编号必须是唯一的。可以根据该编号搜索、根据、查看该缺陷的处理情况。
通常缺陷的基木信息包括缺陷状态、缺陷标题、缺陷严重程度、缺陷紧急程度、缺陷提交人、缺陷提交日期、缺陷所属、缺陷解决人、缺陷解决时、缺陷解决结果、缺陷处理人、缺陷处理最终时、缺陷处理结果、缺陷确认人、缺陷确认时间、缺陷确认结果等等信息。
四、缺陷管理的一般流程
为保证缺陷的正确性、需要有丰富测试经验的测试人员来验证发现的缺陷是否是真正的缺陷,书写的测试步骤是否准确,可否重复。每次对缺陷的处理都要保留处理信息,包括处理姓名、时间、处理方法、处理意见、缺陷状态拒绝或延期缺陷不能山程序员单方面决定,应由项目负责人、测试负责人和开发负责人共同决定,缺陷修复后必须经报告缺陷的测试人员验证后,确认已经修复,才能关闭缺陷。加强测试人员与程序员交流,对于某些不能重现的缺陷,可以请测试人员补充详细测试步骤和方法,以及必要的测试用例。
五、缺陷分析
软件测试任务就是发现软件系统缺陷,保证软件优良品质。在软件中是不可能没有缺陷的,即便软件开发人员,包括测试人员尽了努力,也是无法完全发现和消除缺陷。如何做到最大限度发现软件系统缺陷,人们首先想到的是,提高开发人员素质和责任心,科学地应用测试方法和制定优秀测试方案但这还是不够的,我们还需要实施缺陷分析。缺陷分析是将软件开发、运行过程中产生的缺陷进行必要的收集,对缺陷信息进行分类和汇总统计,计算分析指标,编写分析报告的活动。通过缺陷分析,发现各种类型缺陷发生概率,掌握缺陷集中的区域、明晰缺陷发展趋势、了解缺陷产生上要原因。以便有针对性地提出遏制缺陷发生的措施、降低缺陷数量。对于改进软件开发,提高软件质量有着十分重要的作用。缺陷分析报告中的统计数据及分析指标既是对软件质量的权威评估,也是判定软件是否能发布或交付使用的重要依据。高级别CMM中包含有缺陷分析活动。缺陷分析更是一种以发展方式进行软件过程改进机制。
每一个软件组织都知道,必须妥善处理软件中的缺陷。这是关系到软件组织生存、发展的质量根本遗憾的是,并非所有软件组织都知道该如何有效地管理自己软件中的缺陷。从无到有,建立缺陷跟踪系统,规范项目中开发、测试、缺陷处理流程;明确问题责任人,告诉每个人应该做什么,什么是最重要和最紧迫的;通过对缺陷历史纪录分析,找到不足和需改进的关键点;这样才能更好地提高软件质量,使软件水平更上一层楼。