关闭

透视:如何开展软件的缺陷分析

发表于:2007-9-28 13:45

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:网络转载

一、缺陷分析的作用
        软件缺陷不只是通常所说程序中存在的错误或疏忽,即俗称的Bug。其范围更大,除程序外还包括其相关产品:项目计划、需求规格说明、设计文档、测试用例、用户手册等等中存在的错误和问题。需要强调,在软件工程整个生命周期中任何背离需求、无法正确完成用户所要求的功能的问题,包括存在于组件、设备或系统软件中因异常条件不支持而导致系统的失败等都属于缺陷的范畴。

        软件测试的任务就是发现软件系统的缺陷,保证软件的优良品质。但在软件中是不可能没有缺陷的。即便软件开发人员,包括测试人员尽了努力,也是无法完全发现和消除缺陷。

        如何做到最大限度地发现软件系统的缺陷,人们首先想到提高开发人员的素质和责任心,科学地应用测试方法和制定优秀的测试方案。但这是不够的,我们还需要实施缺陷分析。缺陷分析是将软件开发、运行过程中产生的缺陷进行必要的收集,对缺陷的信息进行分类和汇总统计,计算分析指标,编写分析报告的活动。

        通过缺陷分析,发现各种类型缺陷发生的概率,掌握缺陷集中的区域、明晰缺陷发展趋势、了解缺陷产生主要原因。以便有针对性地提出遏制缺陷发生的措施、降低缺陷数量。对于改进软件开发,提高软件质量有着十分重要的作用。

        缺陷分析报告中的统计数据及分析指标既是对软件质量的权威评估,也是判定软件是否能发布或交付使用的重要依据。

二、管理软件的缺陷分析

        不同于系统、工具、工控、游戏等软件,管理软件在实际运行时面临情况要复杂得多。首先是用户的需求更加不统一,而且随时间的推移需求发生变化快、变化大;其次运行环境更复杂,除受操作系统数据库等影响外,用户在网络、甚至同一计算机安装运行不同性质和背景的应用软件,其影响很难预测;再者客户的操作习性不同,等等。因此管理软件的种种缺陷,不是在开发时通过测试都能预计的。预测并控制缺陷有效手段之一是缺陷分析。

        在高级别的CMM 中就包含了缺陷分析活动。缺陷分析更是一种以发展方式进行软件过程改进的机制。

三、缺陷的信息收集

        软件工程通常要求为开发项目建立缺陷管理库,也有人称为变更控制库。从发现缺陷开始创建变更,直到缺陷解决、经验证、关闭变更止。在缺陷管理的整个生命周期记录了大量相关资料,它们是缺陷分析所需要的宝贵信息。

        由于变更库并不专为缺陷分析而设计,缺陷分析主要关心以下信息项:变更编号、变更主题、变更提交的日期、变更状态、变更性质、变更解决的日期、变更产生的根本原因、解决变更的工作量、验证变更的工作量、变更的严重性等级、变更所属软件产品及子系统、变更修改的模块、变更产生的阶段、变更来源、变更测试情况等。

        缺陷信息部分是在创建变更时输入的,部分是在变更解决中或解决后输入的。

        为了实施统计,有些缺陷信息必需事先设定关键字。

        变更控制库中有一信息项——变更原因,由修改缺陷程序的程序员详细记录缺陷产生的具体原因。这项信息显然无法直接用于分类和汇总。变更产生的根本原因信息项,则是基于变更原因的关键字字段,是专为处理缺陷分析中缺陷原因而设计的信息项。

        软件发布前缺陷分析所用缺陷根本原因的关键字,可以有下几种实例:

        * 编程:原始编程出错,没有客观原因。

        * 修改:由于修改缺陷而引发的新变更,并且引发的变更与原变更的错误是相关的。

        * 培训:项目组新成员培训不充分,或使用新工具不熟练引起的变更。

        * 需求文档:需求分析文档不明确、不详尽等原因所引起的变更。

        * 信息交流:信息交流不畅,开发成员间沟通不及时引起的变更。

        * 外部问题:所涉及软件模块外部问题引起的变更。

        * 其他:指以上各种原因之外所产生的变更。

        软件发布后缺陷分析所用缺陷根本原因的的关键字,可以有下几种实例:

        * 需求分析:需求分析不足等原因所引起的变更。

        * 系统设计:软件系统设计种种原因所引起的变更。

        * 程序编码:软件开发阶段中编程错误所引起的变更。

        * 维护:软件发布后程序维护时引起的变更。

        * 实施:实施人员做软件初始化设置或系统参数设置不当等,实施时所引发的变更。

        * 用户:泛指用户不了解业务和软件、不熟悉操作等原因产生的异常问题。

        * 数据异常:运行中不明原因引起的用户数据混乱和异常。

        * 升级:软件版本升级过程发生的问题,包括用户在升级时未按规程操作产生的问题。

        * 外部问题:所涉及软件外部问题引起的变更,包括属操作系统、数据库软件、第三方软件所引起的问题。

        * 错误变更:错误地提交的变更。包括无法重现出错、所列现象不是错误的变更。

        * 其他:指以上各种原因之外的变更,包括变更原因不明。

31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号