病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程第五章 软件缺陷管理病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程5.1 软件缺陷病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程5.1.1 软件缺陷的定义软件错误或软件缺陷是软件产品的固有成分,是软件“生来具有”的特征软件缺陷包括检测缺陷和残留缺陷错误错误软件失效软件失效软件错误软件错误软件故障软件故障病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程Add Your Text in hereAdd Your Text in here一般符合下列5个规则之一,就是软件缺陷 软件未实现产品说明书要求的功能 软件出现了产品说明书指明不应该出现的错误 软件实现了产品说明书未提到的功能 软件未实现产品说明书虽未明确提及但应该实现的目标 软件难以理解、不易使用、运行缓慢或者从测试员的角度看最终用户会认为不好5.1.1 软件缺陷的定义病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程软件缺陷带来的风险5.1.1 软件缺陷的定义 代码错误 数据未被验证 操作流程不符合预期 安全性无法保证 使用过程复杂 系统无法正常启停 系统文件被破坏 系统性能下降 系统不可恢复 系统无法稳定运行 系统维护复杂病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程需求的不完善定义客户开发者通信失败对软件需求的故意偏离逻辑设计错误编码错误不符合文档编制与编码规定测试过程不足规程错误文档编制错误 导致软件产生缺陷的九类原因5.1.1 软件缺陷的定义病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程软件缺陷产生的原因调查研究表明:大多数软件缺陷并不是由于编码造成的,导致大多数软件缺陷产生的最大的原因是需求分析阶段,其次是在软件设计阶段。
5.1.1 软件缺陷的定义病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程需求分析是造成软件缺陷出现的最大来源 软件需求规格说明书描述了系统应该具有的功能和性能它是开发流程与测试流程的输入 在软件开发之初,由于客户开发者之间的沟通问题,造成需求规格说明的不完善或者是对软件需求的偏离 在开发过程中因需求规格说明的不全面或经常变更,再加上整个开发小组不能很好的沟通造成设计和编码与需求规格说明之间的不一致等等5.1.1 软件缺陷的定义病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程 设计是缺陷产生的一个主要来源设计是软件开发人员规划软件的过程,在这个过程中可能会存在一些逻辑错误设计的变化、修改,加上整个开发小组沟通问题,这些就造成了软件缺陷的产生 软件缺陷在编码阶段出现是另一个主要来源通常是因代码错误而造成,由于软件复杂、文档不足、进度压力、普通的 低级错误或者是因程序员的思维定势而引起5.1.1 软件缺陷的定义病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程很难找出缺陷的原因软件错误/缺陷很难看到软件错误/缺陷看到了但很难抓到软件错误/缺陷抓到了但无法修改或很难修改人们无时无刻都可能犯错误,使得软件中存在错误/缺陷5.1.1 软件缺陷的定义病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程典型的缺陷类型 需求解释有错误、用户定义错了需求、需求记录错误;设计说明有误;编码说明有误、程序代码有误、数据输入有误;测试错误、问题修改不正确;正确的结果是由于其它的缺陷产生的。
5.1.1 软件缺陷的定义病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程1)可追踪信息缺陷ID(唯一的缺陷ID,可以根据该ID追踪缺陷)2)缺陷基本信息编号编号1缺陷标题8缺陷的类型2标识9严重性3报告人10优先级4报告日期11关键词5程序的名称12缺陷描述6版本号13重现步骤7配置14结果对比5.1.2 软件缺陷描述病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程3)缺陷的详细描述描述应尽可能详细4)测试环境说明对测试环境的描述5)必要的附件对于某些文字很难表达清楚的缺陷,使用图片等附件是必要的6)从统计的角度出发还可以添加上“缺陷引入阶段”、“缺陷修正工作量”等项目5.1.2 软件缺陷描述病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程缺陷的属性5.1.3 软件缺陷分类缺陷标识(Identifier)缺陷标识是标记某个缺陷的一组符号每个缺陷必须有一个唯一的标识缺陷类型(Type)缺陷类型是根据缺陷的自然属性划分的缺陷种类。
缺陷严重程(Severity)缺陷严重程度是指因缺陷引起的失效对软件产品的影响程度缺陷优先级(Priority)缺陷的优先级指缺陷必须被修复的紧急程度缺陷状态(Status)缺陷状态指缺陷通过一个跟踪修复过程的进展情况缺陷起源(Origin)缺陷起源指缺陷引起的失效或事件第一次被检测到的阶段缺陷来源(Source)缺陷来源指引起缺陷的起因缺陷根源(Root Cause)缺陷根源指发生错误的根本因素病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程1)软件缺陷的分类-缺陷的类型 10 F-Function(功能)20 A-Assignment(赋值)30 I-Interface and Timing/Serialization(接口/时序)40 C-Checking(检查)50 B-Build/package/merge(联编打包)60 D-Documentation(文档)70 G-Algorithm(语法)80 U-User Interface(用户接口)90 P-Performance(性能)10 100N-Norms(标准)5.1.3 软件缺陷分类病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程2)缺陷的分类-严重程度 软件测试错误的严重程度5.1.3 软件缺陷分类UrgentVery HighHighMediumLow病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程3)缺陷的分类解决优先级5.1.3 软件缺陷分类HighMiddleLow确定缺陷解决或修复的优先顺序病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程4)缺陷来源5.1.3 软件缺陷分类病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程5.1.3 软件缺陷分类 5)缺陷的分类-缺陷根源 测试策略 过程、工具和方法 团队/人 缺乏组织和通信 硬件、软件、工作环境等病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程 6)缺陷的分类-生命周期5.1.3 软件缺陷分类初始化New待修正Open修正Fixed关闭Closed测试人员开发人员再修正Reopen拒绝Reject项目经理评审委员会待修正Open待修正Open关闭Closed病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程缺陷分类适用范围5.1.3 软件缺陷分类病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程缺陷跟踪管理是测试工作的一个重要部分 测试的目的是为了尽早发现软件系统中的缺陷 对缺陷进行跟踪管理,确保每个被发现的缺陷都能够及时得到处理是测试工作的一项重要内容缺陷跟踪管理的目标 确保每个被发现的缺陷都能够被解决 收集缺陷数据并根据缺陷趋势曲线识别测试过程的阶段 收集缺陷数据并进行数据分析,作为组织的过程财富5.1.4 软件缺陷管理病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程收集缺陷必须首先收集缺陷数据,然后才能了解这些缺陷,并且找出如何预防它们,同时也能领会到如何更好地发现,修复甚至预防仍在引入的缺陷可以按照以下步骤收集关于缺陷的数据 为测试和同行评审中发现的每一个缺陷做一个记录 对每个缺陷要记录足够详细的信息,以便以后能更好地了解这个缺陷 分析这些数据以找出哪些缺陷类型引起大部分的问题 设计出发现和修复这些缺陷的方法(缺陷排除)5.1.4 软件缺陷管理病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程缺陷管理基本流程:5.1.3 软件缺陷分类初始化测试人员提交New项目经理分配Open开发人员修正Fixed测试人员验证Closed病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程缺陷管理基本流程:5.1.3 软件缺陷分类初始化测试人员提交New项目经理分配Open开发人员修正Reject评审委员会评审通过Closed病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程缺陷管理基本流程:5.1.3 软件缺陷分类NewOpenFixedClosed测试人员开发人员确认缺陷已经修复确认修复发现错误,提交错误记录确认错误信息确认缺陷,修改缺陷状态修复缺陷,提交修复记录确认修复信息,确认修复结果缺陷已经修复,关闭缺陷流程病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程缺陷管理流程中的各种角色角色描述测试人员进行测试的人员,缺陷的发现者项目经理对整个项目负责,对产品质量负责的人员开发人员执行开发任务的人员,完成 实际的设计和编码工作评审委员会对缺陷进行最终确认,在项目成员对缺陷达不成一致意见时,行使仲裁权力5.1.4 软件缺陷管理角色测试人员项目经理开发人员评审委员会病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程缺陷所处的状态5.1.4 软件缺陷管理状态初始化待分配待修正待验证待评审关闭病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程缺陷管理的一般流程:5.1.4 软件缺陷管理病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程软件缺陷流程管理的要点 为了保证错误的正确性,需要:有丰富测试经验的测试人员验证和确认发现的错误是否是真正的错误 测试步骤是否准确、简洁、可以重复 软件错误的确认并不总是轻而易举的事情 由于对软件设计具体要求的不了解,对测试报告的个别软件错误,可能无法确认是否属于真正的软件错误,本地化服务商需要与软件供应商交流并确认 每次对错误的处理都要保留处理信息 包括处理者姓名,时间,处理方法,处理步骤,错误状态,处理注释等5.1.4 软件缺陷管理病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程 对错误的拒绝不能由程序员单方面决定 应该由项目经理,测试经理和设计经理共同决定 对错误延期处理不能由本地户服务商决定 应该由软件供应商决定 错误修复后必须由报告错误的测试人员验证后,确认已修复,才能关闭5.1.4 软件缺陷管理病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程5.2 软件缺陷度量、分析与统计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程软件缺陷度量 缺陷度量是对项目过程中产生的缺陷数据进行采集和量化,将分散的缺陷数据统一管理,使其有序而清晰 缺陷度量是软件质量度量的重要组成部分,它和软件测试密切相关 软件缺陷度量方法较多,从简单的缺陷计数到严格的统计建模5.2.1 软件缺陷度量病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程5.2.1 软件缺陷度量软件缺陷度量的主要方法有:缺陷密度(缺陷在规模上的分布)缺陷密度=已知缺陷的数量/产品规模 缺陷率(缺陷在时间上的分布)缺陷率=一定时间范围内的缺陷数/错误几率 缺陷清除率整体缺陷清除率=开发过程中发现的所有缺陷数/发现的总缺陷数阶段性缺陷清除率=开发阶段清除的缺陷数/产品潜伏的缺陷总数病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程软件缺陷分析 将软件开发各个阶段产生的缺陷信息进行分类和汇总统计,计算分析指标,编写分析报告的活动 用来评估当前软件的可靠性,并且预测软件产品可靠性变化,缺陷分析在软件可靠性评估中占有相当大的作用5.2.2 软件缺陷分析病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程5.2.2 软件缺陷分析 缺陷分析步骤记录缺陷缺陷分类缺陷预防分析编写缺陷分析报告病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程软件缺陷统计是软件分析报告中的重要内容之一 从统计的角度出发,可以对软件过程的缺陷进行度量软件功能模块缺陷分布、缺陷严重程度分布、缺陷类型分布、缺陷率分布、缺陷密度分析、缺陷趋势分布、缺陷注入率/消除率等 统计的方式表格、散点图、趋势图、因果图、直方图、条形图、排列图等5.2.3 软件缺陷统计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程软件功能模块的缺陷统计 5.2.3 软件缺陷统计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程缺陷严重程度统计 5.2.3 软件缺陷统计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程缺陷类型统计 缺陷类型分布图5.2.3 软件缺陷统计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程软件系统测试缺陷类型分布图 5.2.3 软件缺陷统计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程缺陷趋势图-缺陷率趋势图 5.2.3 软件缺陷统计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程缺陷趋势图-缺陷发现、修复、收敛趋势图 5.2.3 软件缺陷统计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程基于版本的缺陷率趋势图 5.2.3 软件缺陷统计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程1.软件缺陷定义2.软件缺陷描述3.软件缺陷分类4.软件缺陷管理5.软件缺陷度量6.软件缺陷分析7.软件缺陷统计小结病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程1.什么是软件缺陷?我们一般是如何描述和分类软件缺陷的?2.简述缺陷来源与影响,分析缺陷都是软件开发生命周期哪个阶段产生的?3.简述软件缺陷描述中的缺陷基本信息和软件缺陷分类中的缺陷属性4.什么是软件缺陷管理,缺陷管理报告单包括哪些内容?具有什么特点?5.根据自己理解,画出软件缺陷管理流程图,并解释软件缺陷管理流程图的关键要素。
6.我们如何度量软件缺陷?如何分析软件缺陷?如何对软件缺陷进行统计?作业。