③共京宽大学 BEDING UNIVERSITY OF POSTS AND TELECOMMUNICATIONS 软件工程模型与方法 TSMdels methods of Software Telecommunications Software Engineering Group ngineering 第十二章软件测试 修佳鹏xiujiapeng(@bupt.cn 通软件中心 ⊙2008 BUPTTSEG
© 2008 BUPT TSEG 软件工程模型与方法 Models & Methods of Software Engineering 第十二章 软件测试 修佳鹏 xiujiapeng@bupt.cn
共京部電大学 本章内容 ◆12.1软件测试基础 ◆122软件测试方法与技术 ◆12.3软件测试过程 ◆124面向对象的测试方法 12.5程序的静态分析方法 12.6软件调试方法 27软件测试工具 ◆12.8软件的可靠性 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 2 本章内容 ◆ 12.1 软件测试基础 ◆ 12.2 软件测试方法与技术 ◆ 12.3 软件测试过程 ◆ 12.4 面向对象的测试方法 ◆ 12.5 程序的静态分析方法 ◆ 12.6 软件调试方法 ◆ 12.7 软件测试工具 ◆ 12.8 软件的可靠性
共京部電大学 121软件测试基础 ◆本节内容 ◆12.1.1软件测试概述 ◆12.1.2软件的可测试性 ◆12.13软件测试的对象 ◆12.14软件测试信息流 ◆12.1.5软件测试步骤 ◆12.1.6软件测试流程 12.1.7软件测试与软件开发各阶段的关系 ◆12.1.8程序错误的分类 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 3 12.1 软件测试基础 ◆ 本节内容 ◆ 12.1.1 软件测试概述 ◆ 12.1.2 软件的可测试性 ◆ 12.1.3 软件测试的对象 ◆ 12.1.4 软件测试信息流 ◆ 12.1.5 软件测试步骤 ◆ 12.1.6 软件测试流程 ◆ 12.1.7 软件测试与软件开发各阶段的关系 ◆ 12.1.8 程序错误的分类
共京部電大学 121.1软件测试概述 ◆软件测试是为了发现错误而执行程序的过程。 软件测试在软件生存期中横跨两个阶段 单元测试 综合测试 软件测试的目的 测试是程序的执行过程,目的在于发现错误,而不是 证明软件的正确 一个好的测试用例在于能发现至今未发现的错误 一个成功的测试是发现了至今未发现的错误的测试。 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 4 12.1.1 软件测试概述 ◆ 软件测试是为了发现错误而执行程序的过程 。 ◆ 软件测试在软件生存期中横跨两个阶段: ➢ 单元测试 ➢ 综合测试 ◆ 软件测试的目的: ➢ 测试是程序的执行过程,目的在于发现错误,而不是 证明软件的正确 ➢ 一个好的测试用例在于能发现至今未发现的错误 ➢ 一个成功的测试是发现了至今未发现的错误的测试
共京部電大学 121.1软件测试概述 ◆软件测试的原则 应当尽早地和不断地进行软件测试 测试用例应由测试输入数据和与之对应的预期输出结 果这两部分组成 程序员应避免测试自己的程序 在设计测试用例时,应当包括合理的输入条件和不合 理的输入条件 充分注意测试中的群集现象 严格执行测试计划,排除测试的随意性 应当对每一个测试结果做全面检查 妥善保存测试计划,测试用例,出错统计和最终分析 报告,为维护提供方便 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心 5
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 5 12.1.1 软件测试概述 ◆ 软件测试的原则: ➢ 应当尽早地和不断地进行软件测试 ➢ 测试用例应由测试输入数据和与之对应的预期输出结 果这两部分组成 ➢ 程序员应避免测试自己的程序 ➢ 在设计测试用例时,应当包括合理的输入条件和不合 理的输入条件 ➢ 充分注意测试中的群集现象 ➢ 严格执行测试计划,排除测试的随意性 ➢ 应当对每一个测试结果做全面检查 ➢ 妥善保存测试计划,测试用例,出错统计和最终分析 报告,为维护提供方便
共京部電大学 121.2软件的可测试性 影响软件可测试性的因素 可操作性:运行的越好,被测试的效率越高 可观察性:所看见的就是所测试的 可控制性:对软件的控制越好,测试越能被自动执行 与优化 可分解性:通过控制测试范围,能够更快地分解问题 ,执行更灵巧的再测试 简单性:需要测试的内容越少,测试的速度越快 稳定性:改变越小,对测试的破坏越小 易理解性:得到的信息越多,进行的测试越灵巧 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 6 12.1.2 软件的可测试性 ◆ 影响软件可测试性的因素 : ➢ 可操作性 :运行的越好,被测试的效率越高 ➢ 可观察性 :所看见的就是所测试的 ➢ 可控制性 :对软件的控制越好,测试越能被自动执行 与优化 ➢ 可分解性 :通过控制测试范围,能够更快地分解问题 ,执行更灵巧的再测试 ➢ 简单性 :需要测试的内容越少,测试的速度越快 ➢ 稳定性 :改变越小,对测试的破坏越小 ➢ 易理解性 :得到的信息越多,进行的测试越灵巧
共京部電大学 1213软件测试的对象 软件测试并不等于程序测试,应该贯穿于软件开发的整 个期间。 需求分析、概要设计、详细设计以及程序编码等各个阶 段所得到的文档,都应该成为测试的对象。 为了把握各个环节的正确性,人们需要进行各种确认和 验证工作: ◆确认( Validation):是一系列的活动和过程,其目的是 证实在一个给定的外部环境中软件的逻辑正确性。 需求规格说明的确认 程序的确认 ◆验证( Verification):试图证明在软件生存期各个阶段 ,以及阶段间的逻辑协调性、完备性和正确性。 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 7 12.1.3 软件测试的对象 ◆ 软件测试并不等于程序测试,应该贯穿于软件开发的整 个期间。 ◆ 需求分析、概要设计、详细设计以及程序编码等各个阶 段所得到的文档,都应该成为测试的对象。 ◆ 为了把握各个环节的正确性,人们需要进行各种确认和 验证工作: ◆ 确认(Validation):是一系列的活动和过程,其目的是 证实在一个给定的外部环境中软件的逻辑正确性。 ➢ 需求规格说明的确认 ➢ 程序的确认 ◆ 验证(Verification):试图证明在软件生存期各个阶段 ,以及阶段间的逻辑协调性、完备性和正确性
共京部電大学 1213软件测试的对象 用卢要求 运行结果 相符吗? 让算机 我要什么? 勤的窠得 理解正确 表达正确 推准/a 运行正确性 输入正确性 需求说明书 源程序 分析员 我可以提 猥序员 供什么? 我要 机 法算 理解正确 设计说明书 正确 表达正确 设计员 编码正确 要让软件 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 8 12.1.3 软件测试的对象 用户要求 用户: 我要什么? 运行结果 计算机: 程序运行得 到的结果 源程序 程序员: 我要让计算 机什么做? 设计说明书 设计员: 我要让软件 做什么? 需求说明书 分析员: 我可以提 供什么? 1 2 3 4 5 理解正确性 表达正确性 理解正确性 设计正确性 表达正确性 理解正确性 编码正确性 运行正确性 输入正确性 相符吗?
共京部電大学 1214软件测试信息流 错误 邀填梦 果结果 排错 分析 改正的软件 出 测试 软件配置 据 测试配置 可靠性 分析 测试工具 预测的可靠性 ◆软件配置:包括软件需求规格说明、软件设计规格 明、源代码等 ◆测试配置:包括测试计划、测试用例、测试驱动程 序等 ◆测试工具:测试工具为测试的实施提供某种服务。 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心 9
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 9 12.1.4 软件测试信息流 ◆ 软件配置:包括软件需求规格说明、软件设计规格 说明、源代码等 ◆ 测试配置:包括测试计划、测试用例、测试驱动程 序等 ◆ 测试工具:测试工具为测试的实施提供某种服务
共京部電大学 121.5软件测试步骤 被测模块/单元 测试人 槍息 欢需 系 统 其元 它素 被测模块。/单元 测试 集成 确认 系统 测试 已集成 测试/已确认测可交付 已经过 的软件 的软件 的软件 测试的 被测模块,/单元)模块 测试 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心 10
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 10 12.1.5 软件测试步骤