免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件的缺陷分析一、缺陷分析的作用软件缺陷不只是通常所说程序中存在的错误或疏忽,即俗称的Bug。其范围更大,除程序外还包括其相关产品:项目计划、需求规格说明、设计文档、测试用例、用户手册等等中存在的错误和问题。需要强调,在软件工程整个生命周期中任何背离需求、无法正确完成用户所要求的功能的问题,包括存在于组件、设备或系统软件中因异常条件不支持而导致系统的失败等都属于缺陷的范畴。软件测试的任务就是发现软件系统的缺陷,保证软件的优良品质。但在软件中是不可能没有缺陷的。即便软件开发人员,包括测试人员尽了努力,也是无法完全发现和消除缺陷。如何做到最大限度地发现软件系统的缺陷,人们首先想到提高开发人员的素质和责任心,科学地应用测试方法和制定优秀的测试方案。但这是不够的,我们还需要实施缺陷分析。缺陷分析是将软件开发、运行过程中产生的缺陷进行必要的收集,对缺陷的信息进行分类和汇总统计,计算分析指标,编写分析报告的活动。通过缺陷分析,发现各种类型缺陷发生的概率,掌握缺陷集中的区域、明晰缺陷发展趋势、了解缺陷产生主要原因。以便有针对性地提出遏制缺陷发生的措施、降低缺陷数量。对于改进软件开发,提高软件质量有着十分重要的作用。缺陷分析报告中的统计数据及分析指标既是对软件质量的权威评估,也是判定软件是否能发布或交付使用的重要依据。二、管理软件的缺陷分析不同于系统、工具、工控、游戏等软件,管理软件在实际运行时面临情况要复杂得多。首先是用户的需求更加不统一,而且随时间的推移需求发生变化快、变化大;其次运行环境更复杂,除受操作系统、数据库等影响外,用户在网络、甚至同一计算机安装运行不同性质和背景的应用软件,其影响很难预测;再者客户的操作习性不同,等等。因此管理软件的种种缺陷,不是在开发时通过测试都能预计的。预测并控制缺陷有效手段之一是缺陷分析。在高级别的CMM中就包含了缺陷分析活动。缺陷分析更是一种以发展方式进行软件过程改进的机制。三、缺陷的信息收集软件工程通常要求为开发项目建立缺陷管理库,也有人称为变更控制库。从发现缺陷开始创建变更,直到缺陷解决、经验证、关闭变更止。在缺陷管理的整个生命周期记录了大量相关资料,它们是缺陷分析所需要的宝贵信息。由于变更库并不专为缺陷分析而设计,缺陷分析主要关心以下信息项:变更编号、变更主题、变更提交的日期、变更状态、变更性质、变更解决的日期、变更产生的根本原因、解决变更的工作量、验证变更的工作量、变更的严重性等级、变更所属软件产品及子系统、变更修改的模块、变更产生的阶段、变更来源、变更测试情况等。缺陷信息部分是在创建变更时输入的,部分是在变更解决中或解决后输入的。为了实施统计,有些缺陷信息必需事先设定关键字。变更控制库中有一信息项变更原因,由修改缺陷程序的程序员详细记录缺陷产生的具体原因。这项信息显然无法直接用于分类和汇总。变更产生的根本原因信息项,则是基于变更原因的关键字字段,是专为处理缺陷分析中缺陷原因而设计的信息项。软件发布前缺陷分析所用缺陷根本原因的关键字,可以有下几种实例:*编程:原始编程出错,没有客观原因。*修改:由于修改缺陷而引发的新变更,并且引发的变更与原变更的错误是相关的。*培训:项目组新成员培训不充分,或使用新工具不熟练引起的变更。*需求文档:需求分析文档不明确、不详尽等原因所引起的变更。*信息交流:信息交流不畅,开发成员间沟通不及时引起的变更。*外部问题:所涉及软件模块外部问题引起的变更。*其他:指以上各种原因之外所产生的变更。软件发布后缺陷分析所用缺陷根本原因的的关键字,可以有下几种实例:*需求分析:需求分析不足等原因所引起的变更。*系统设计:软件系统设计种种原因所引起的变更。*程序编码:软件开发阶段中编程错误所引起的变更。*维护:软件发布后程序维护时引起的变更。*实施:实施人员做软件初始化设置或系统参数设置不当等,实施时所引发的变更。*用户:泛指用户不了解业务和软件、不熟悉操作等原因产生的异常问题。*数据异常:运行中不明原因引起的用户数据混乱和异常。*升级:软件版本升级过程发生的问题,包括用户在升级时未按规程操作产生的问题。*外部问题:所涉及软件外部问题引起的变更,包括属操作系统、数据库软件、第三方软件所引起的问题。*错误变更:错误地提交的变更。包括无法重现出错、所列现象不是错误的变更。*其他:指以上各种原因之外的变更,包括变更原因不明。测试情况信息项是应用于分析缺陷是如何通过测试关的。可以有以下几种实例:*漏测试:软件发布前测试时没有被发现的缺陷,也没有对应测试用例。*条件冷僻:缺陷形成条件很冷僻,设计测试用例时很难考虑到。*回归测试:专指那些原先测试时是通过的、不存在错误,后来由于修改其他程序时产生的缺陷。关键是软件版本或补丁发布前未进行回归测试,因而被漏过。*判断标准:测试时已发现该现象但当时不认为是问题,没提交变更。*已测试:测试时已发现缺陷并提交变更,但缺陷没解决。有些计算分析指标用到的信息在变更库中是没有的,可通过其他渠道获取。例如:软件规模(软件源代码的行数,单位是千行)、开发人员的平均人力成本(单位是元/人天)、软件持续运行时间(在开发阶段以软件测试的工作量来替代)、项目总工作量等。记录缺陷信息的关键是注意信息正确性。不能有人为因素失真,尤其像变更产生根本原因、变更测试情况。只有正确的信息,才能保障正确的分析结果。四、缺陷的分析1、分析指标缺陷分析时需计算一些分析指标,使分析结果得到度量,以便直观比对。分析指标有以下几项:*反映产品质量的指标:缺陷密度=缺陷数量/软件规模潜在缺陷概数=(100%-发布前缺陷去处率)*缺陷密度*反映产品可靠性的指标:平均失效时间=软件持续运行时间/缺陷数量*反映缺陷发现及修复的效率的指标:缺陷检出率=某阶段当时发现的缺陷/属该阶段的全部缺陷*100%发布前缺陷去处率=发布前发现的缺陷/(发布前发现的缺陷+软件运行的前3个月发现的缺陷)*100%缺陷修正率=修复过程中未引发其他问题的缺陷数/被修复缺陷的总数*100%*反映缺陷修复成本的指标:平均修复时间=缺陷修复时间/缺陷数量平均修复成本=开发人员的平均人力成本*平均修复时间相对返工成本=返工的工作量/项目总工作量*100%2、汇总统计在缺陷分析中可以使用统计方法对收集的变更进行分类、汇总。*缺陷发生日期统计:是按变更提交的年月统计。分析反映缺陷发生的动态趋势。*缺陷性质统计:变更性质属性一般分为:缺陷变更和需求变更两种。*缺陷状态分布:变更状态属性分类很多,但在缺陷分析中没必要分那么细,故按3种统计:关闭、挂起和处理中。分析主要反映缺陷修改完成情况。*缺陷按产品分类统计:该分析能显示各软件子系统的缺陷分布情况。*缺陷按原因分类统计:是按变更的根本原因属性进行分类统计,统计不包括需求变更。该分析能揭示缺陷原因的分布。*缺陷测试情况统计:统计仅涉及变更的根本原因是系统设计、程序编码、维护和外部问题等缺陷变更。该分析能暴露软件测试本身存在的问题。*缺陷来源统计:该分析主要反映用户或软件代理的地区分布,发现一些客户分布规律。分析统计表、图可按单一属性,也可按多个属性进行汇总统计。请看以下几个实例。附表一、缺陷变更原因统计表2004/102004/112004/12小计变更的原因数量%数量%数量%数量%程序编码问题7295205201723系统设计问题281434维护286244161216外部问题0141423需求分析1428416710实施312416710升级问题281434数据异常2841628811用户142834错误变更1414728912其它31234变更总数24252574附表二:程序缺陷变更测试情况统计表测试情况缺陷变更原因变更数漏测试条件冷僻回归测试判断标准已测试程序编码问题207544系统设计问题312维护问题1212外部问题11合计36851643附图:缺陷按产品分布图3、定性分析在分析指标、统计数据的基础上,还需要对软件的缺陷状况进行定性的分析,得出结论意见。必要时可召开相关人员的分析会进行分析和讨论。例如,根据上述附表二程序缺陷变更测试情况统计表,可以得到以下几点看法:在缺陷中高达92%的变更与测试把关不严有关。其中22%的变更属于明显漏测试。其中44%的变更属于在回归测试环节出问题。在维护阶段修改缺陷程序后只对变更本身进行验证,而没有进行回归测试,引发了新的缺陷。其中8%的缺陷在软件发布前已测试发现,但没有给予解决。根据上述分析,可采取针对性措施:增加测试的强度。将缺陷所发现的问题,增补到测试用例中。软件维护阶段的软件补丁必需通过回归测试,才能发布。软件发布时对未关闭的变更需严加把关。五、软件发布前和发布后的缺陷分析缺陷分析有两种:软件发布前和软件发布后的缺陷分析。两者的区别是:分析的变更不同前者分析的对象是软件开发阶段发生的缺陷,居多是软件程序代码的缺陷。软件发布后的缺陷分析,分析的对象是软件运行阶段发生的缺陷。现在更多是:软件实施、维护、用户操作所发生的异常问题,不明原因引发的数据混乱,软件版本升级或各种运行环境引起的系统错误,还有用户提出的新的需求变更。分析的目的也不同软件发布前的缺陷分析主要是通过计算缺陷指标,评估开发阶段软件的质量,预测软件上市后的运行情况,判定软件产品是否能够发布。软件发布后的缺陷分析是通过定期分析掌握缺陷的分布和发展趋势,以便控制缺陷的发生,降低维护成本。分析的内容不同大部分的计算指标是适用于发布前缺陷分析,象发布前缺陷去处率是专为其设计的。但分类统计只有状态分布和按原因分类统计比较适用。对发布后缺陷分析而言,大部分计算指标不适用。仅平均修复时间指标比较重要,它反映了维护阶段处理缺陷的效率。各分类统计基本都适用于发布后缺陷分析,象缺陷测试情况统计、缺陷来源统计等是专为发布后分析设计的。缺陷分析除了应用在软件开发阶段。在软件发布后或交付使用后,同样应重视缺陷分析的作用。当软件产品推向市场后,将真正面临考验,涌现大量缺陷也会时有发生。若处理延误或不当,就会遭到用户的抱怨和投诉。不能简单地靠增加维护人员来应对,这会造成维护成本的提高。必需靠科学的手段来揭示软件缺陷偏多的内在规律和症结所在,有效地遏制缺陷的发生,给用户一个满意的交代。六、结束语我们知道了缺陷分析的作用,但在实际中往往还是没有对缺陷分析给予足够的重视。主要由于借助于变更管理、CMM的有关活动,完全可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 关于购买木头合同范本
- 农村山林卖买合同范本
- 加盟合同如何终止协议
- 共享设备投放点协议书
- 养殖用水供水合同范本
- 合租合同人身安全协议
- 2026年投资项目管理师之宏观经济政策考试题库300道含答案【夺分金卷】
- 公司融资合作合同范本
- 初创公司用车合同范本
- 合成挖机租赁合同范本
- 图解自然资源部《自然资源领域数据安全管理办法》
- 股东之间股权转让合同协议书(2篇)
- PLC入门课程课件
- 港口液体危化品装卸管理人员理论考试题库(浓缩500题)
- 2024年深圳市龙华建设发展集团有限公司招聘笔试冲刺题(带答案解析)
- 药师竞聘正高述职报告
- 昇兴(安徽)包装有限公司年产 18 亿只铝制两片罐项目环境影响评价报告书
- 企业电气安全事故案例分析
- 2023学年完整公开课版液压方枕器
- 固定式人字抱杆整立施工作业指导书
- 犬胃切开术的课件资料
评论
0/150
提交评论