270 likes | 392 Views
度量测试结果与缺陷管理. 第 五 章. 回顾. 良好的测试设计由若干个防范组成。 在单元测试中,测试应设计为检验各个单元是否实现了该单元的设计说明书中的所有设计 判定 。 单元测试说明书由一系列单元测试用例组成。 测试用例设计技术可以大体分成黑盒和白盒两个主要类别。 缺陷猜测主要凭借测试设计者的经验。. 本章目标 . 对测试本身信任程度的量度 明白何时进行测试和使用覆盖率 进行缺陷管理. 简介. 测试全貌:测试计划、实际测试和写测试报告 度量是软件工程过程的一个关键要素。 度量标准用于理解所创建的模型的属性。. 监视测试覆盖率.
E N D
度量测试结果与缺陷管理 第 五 章
回顾 • 良好的测试设计由若干个防范组成。 • 在单元测试中,测试应设计为检验各个单元是否实现了该单元的设计说明书中的所有设计判定 。 • 单元测试说明书由一系列单元测试用例组成。 • 测试用例设计技术可以大体分成黑盒和白盒两个主要类别。 • 缺陷猜测主要凭借测试设计者的经验。
本章目标 • 对测试本身信任程度的量度 • 明白何时进行测试和使用覆盖率 • 进行缺陷管理
简介 • 测试全貌:测试计划、实际测试和写测试报告 • 度量是软件工程过程的一个关键要素。 • 度量标准用于理解所创建的模型的属性。
监视测试覆盖率 • 对于测试结果的评价,需要监视测试覆盖率。 • 要减少要测试的条件的数量,可以将系统分成多个独立的部分。 • 这样可以为代码测试的各个部分分别生成不同的条件组合。
逻辑覆盖测试方法 4-1 • 语句覆盖 • 选择足够的测试用例,使得程序中每一条可执行语句至少被执行一次。 • 判定覆盖 • 选择足够的测试用例,使得程序中每一个分支判断的每一种可能结果(主要指switch-case情况)都至少被执行一次。判定覆盖也叫分支覆盖。 • 条件覆盖 • 选择足够的测试用例,使得程序中每一个分支判断中的每一个条件的可能结果都至少被执行一次。
逻辑覆盖测试方法 4-2 • 判定/条件覆盖 • 选择足够的测试用例,使得同时满足判定覆盖和条件覆盖。 • 条件组合覆盖 • 选择足够的测试用例,使得程序中每一个分支判断中的每一个条件的每一种可能组合结果都至少被执行一次。 • 路径覆盖 • 选择足够的测试用例,使得程序中所有的可能路径都至少被执行一次。
路径覆盖 条件组合覆盖 判定/条件覆盖 判定覆盖 条件覆盖 语句覆盖 逻辑覆盖测试方法 4-3
测试覆盖率涉及的测试 • 需要完成的各种测试包括: • 单元测试 • 集成测试 • 系统测试 • 验收测试 • 回归测试 • 在验收和回归测试后,对于覆盖率测试达到一定标准后,我们即发布软件。
什么是缺陷? • 缺陷可以定义成: • 没有实现预定的使用需求或合理期望 • 与规格说明书或标准存在偏差 • 在与标准的一致性方面导致客户不满的任何问题
为什么需要缺陷管理? • 客户期望以较少的时间/成本获得较高的质量。 • 规格说明书在项目开发生命周期的后期往往会被修改。 • 测试所发现的缺陷常常会招致大量的软件开发成本。 • 新的开发方法、工具不断地实现。 • 软件管理不能让测试成为瓶颈并减慢开发速度。 • 测试需要快速、灵活和可靠。 • 我们需要有关测试充分性的证据。
缺陷管理——Defect级别 • 致命性缺陷(Critical) 数据丢失,数据计算缺陷、系统崩溃和非常死机 • 严重功能性缺陷(Serious) 规定的功能没有实现或不完整、设计不合理造成性能低下,影响系统的运营 • 警告性缺陷(Moderate) 不影响业务运营的功能问题 • 建议性缺陷(Suggestion,Cosmetic) 软件设计和功能实现等不甚合理之处提出建议
缺陷管理——修改的优先级 • 高优先级 • 中优先级 • 低优先级
缺陷管理——缺陷分发对象 • 项目管理者 • 测试管理者 • 被分配修改缺陷的人 • 组件代码的编写人 • 测试小组中的其他成员
缺陷管理的实现阶段 2-1 • 这些阶段如下所示: • 缺陷标识、记录和报告 • 缺陷的消除和跟踪 • 缺陷测量和根由分析 • 缺陷预防/过程改进 • 软件开发生命周期所有阶段的测试 • 安装测试工具
缺陷管理的实现阶段 2-2 • 缺陷管理问题包括: 缺陷遗漏 同类缺陷重复 精力分散 • 效率低 • 数据库更新不完全 • 分类不严谨 - 每个缺陷都被划分为缺陷的类型 • 用来攻击项目分类的缺陷数据 • 很多不负责任的缺陷 • 重置是一个瓶颈 • 相同的缺陷卷土重来
缺陷状态信息 • 缺陷状态信息应该包含下列信息: • 缺陷的当前状态和状态历史记录描述 • 状态历史记录,包括描述日期、操作、执行者、实际工作量、结果状态和指定的下一个步骤的行。 • 下一个步骤估计需要付出的努力 • 完成的期望日期 • 缺陷分析和度量 • 缺陷生命周期分布有助于深入了解缺陷结束所花天数、修复缺陷所需付出的努力和进度分析 • 对预计付出的努力相对于实际付出的努力的分析
缺陷报告 3-1 • 进行缺陷报告前执行的过程: • 获取空白的缺陷表格 • 指定可用的信息 • 信息可用时不断更新 • 对缺陷信息进行分类,包括 一般信息 缺陷检测信息 缺陷消除信息 状态信息 • 估计要投入的努力、预计日期、实际日期以及缺陷在其整个生命周期中的变化。
缺陷报告 3-2 • 所需的缺陷信息有: • 有关缺陷性质、它的修复优先级等的基本信息; • 描述 - 简要的文字 • 优先级(紧急、普通、不急)[您的优先级,客户的优先级] • 严重程度(主要、次要、不严重)[您的优先级,客户的优先级] • 原因关键字(用于进一步分析) • 症状(数据库损坏、可视数据缺陷、界面缺陷、等等)
缺陷报告 3-3 • 起源的阶段 • 找到的阶段 • 报告的数据 • 期望和实际的结束日期 • 描述 • 版本、日志、周期、过程、用例 - 发现缺陷的地方 • 报告者:(姓名、公司) • 硬件操作系统 - 发现缺陷的平台 • 测试位置 • 附件/附加信息
总结 2-1 • 度量是软件工程过程的一个关键要素。 • 可以在源代码中插入语句以收集程序数据,例如计算每个分支的每一侧被遍历了几次,或者每一段代码是否都被执行过,执行了几次。 • 测试覆盖率是对最后的测试结果提供度量的信任标准。 • 理解缺陷的定义和测试过程中对缺陷管理的必要性
总结 2-2 • 软件缺陷的生命周期:打开、解决和关闭。 • 缺陷管理报告中应该包含对于整个缺陷涉及到的各种因素进行管理。