5.1软件缺陷及其管理的基本概念
5.1.1软件缺陷的基本概念
软件错误或软件缺陷是软件产品的固有成分,是软件“生来具有”的特征。
一般符合下列5个规则之一,就是软件缺陷:
1. 软件未实现产品说明书要求的功能;
2. 软件出现了产品说明书指明不应该出现的错误;
3. 软件实现了产品说明书未提到的功能;
4. 软件未实现产品说明书虽未明确提及但应该实现的目标;
5. 软件难以理解、不易使用、运行缓慢或者——从测试员的角度看——最终用户会认为不好
5.1.2 软件缺陷基本属性
① 缺陷标识(Identifier):缺陷标识是标记某个缺陷的一组符号。每个缺陷必须有一个唯一的标识
② 缺陷类型 (Type):缺陷类型是根据缺陷的自然属性划分的缺陷种类。
③ 缺陷严重程(Severity):缺陷严重程度是指因缺陷引起的失效对软件产品的影响程度。
④ 缺陷优先级(Priority):缺陷的优先级指缺陷必须被修复的紧急程度。
⑤ 缺陷状态(Status):缺陷状态指缺陷通过一个跟踪修复过程的进展情况。
⑥ 缺陷起源(Origin):缺陷起源指缺陷引起的失效或事件第一次被检测到的阶段。
⑦ 缺陷来源(Source):缺陷来源指引起缺陷的起因。
⑧ 缺陷根源(Root Cause):缺陷根源指发生错误的根本因素。
5.1.3缺陷管理流程
5.1.4软件缺陷产生的主要原因
大多数软件缺陷并不是由于编码造成的,导致大多数软件缺陷产生的最大的原因是需求分析阶段,其次是在软件设计阶段。
5.1.5 影响代价
5.2软件缺陷报告的撰写
5.2.1 缺陷报告的主要内容:
5.2.2报告缺陷的基本原则:
① 尽快报告缺陷;
② 有效描述缺陷;
③ 报告缺陷时不做任何评价;
④ 确保缺陷可以重现;
5.2.3 “5C”准则:
① Correct(准确):每个组成部分的描述准确,不会引起误解;
② Concise(简洁):只包含必不可少的信息,不包括任何多余的内容;
③ Clear(清晰):每个组成部分的描述清晰,易于理解;
④ Complete(完整):包含复现该缺陷的完整步骤和其他本质信息;
⑤ Consistent(一致):按照一致的格式书写全部缺陷报告;
5.2.4 衡量优秀的bug report的质量指标应该包括如下:
① 对管理层来说,是清晰明了的,特别是在概要这一级;
② 对于开发部门是有用的,主要是给出能够让开发人员高效地调试问题的相关信息;
③ 可以很快的将bug从“Opened”状态转变成“Closed”状态,减少为得到更多的信息从开发人员打回的差的bug report并导致测试人员返工的时间;
5.3软件缺陷度量、数据分析与统计
缺陷度量是对项目过程中产生的缺陷数据进行采集和量化,将分散的缺陷数据统一管理,使其有序而清晰。
软件数据分析是将软件开发各个阶段产生的缺陷信息进行分类和汇总统计,计算分析指标,编写分析报告的活动。
软件缺陷统计是软件分析报告中的重要内容之一
从统计的角度出发,可以对软件过程的缺陷进行度量:软件功能模块缺陷分布、缺陷严重程度分布、缺陷类型分布、缺陷率分布、缺陷密度分析、缺陷趋势分布、缺陷注入率/消除率等
统计的方式:表格、散点图、趋势图、因果图、直方图、条形图、排列图等。
第六章
6.1软件测试过程管理
6.1.1 软件流程管理
6.2软件测试过程中的各阶段内容、职责、交付物
① 测试项目启动
首先要确定项目组长,只要把项目组长确定下来,就可以组建整个测试小组,并可以和开发等部门开展工作。接着参加有关项目计划、分析和设计的会议,获得必要的需求分析、系统设计文档,以及相关产品/技术知识的培训和转移。
② 测试需求分析
测试需求通常以软件开发需求为基础进行分析,通过对开发需求的细化和分解,形成可测试内容。因此,测试需求的分析包括五个部分:明确需求的范围;明确每个功能的业务处理过程;不同的功能点与业务的组合;挖掘显示需求背后的隐士需求;测试需求应全部覆盖已定义的业务流程,以及功能和非功能方面的需求。
③ 制定测试计划
确定测试范围、测试策略和方法,以及对风险、日程表、资源等进行分析和评估。
④ 测试设计和测试开发
制定测试的技术方案、设计测试用例、选择测试工具、写测试脚本等。测试用例设计要事先做好各项准备,才开始进行,最后还要让其他部门审查测试用例。
⑤ 测试实施和执行
建立或设置相关的测试环境,准备测试数据,执行测试用例,对发现的软件缺陷进行报告、分析、跟踪等,测试执行没有很高的技术性,却是测试的基础,直接关系到测试的可靠性、客观性和准确性。
⑥ 测试结果的审查和分析
当测试执行结果后,对测试结果要进行整体得或综合分析,以确定软件产品质量的当前状态,为产品的改进或发布提供数据和依据。从管理角度看,要做好测试结果的审查并召开分析会议,以及做好测试报告或质量报告写作、审查。
根据测试需求、测试计划,对测试过程中每个状态进行记录、跟踪和管理,并提供相关的分析和统计功能,生成和打印各种分析统计报表。通过对详细记录的分析,形成较完整的软件测试管理文档,避免同样的错误在软件开发过程中再次发生,从而提高软件开发质量。
6.3 软件测试过程结束的准则