⑤,丽步交通大净现代远程教育課程 软件工程概论 主讲教师:刘海岩副教授 mailhaiyanliuhyl@yahoo.com.cn 2021/2/20
2021/2/20 1
西安交通大学现代远程教育课程 软件工程概论 第5章软件测试 软件测试的概念 软件测试技术 软件测试策略 测试的管理 软件调试 软件的可靠性和可用性 主讲教师:刘海岩副教授
2 第5章 软件测试 • 软件测试的概念 • 软件测试技术 • 软件测试策略 • 测试的管理 • 软件调试 • 软件的可靠性和可用性
西安交通大学现代远程教育课程 软件工程概论 3、系统测试 有如下过程: (1)功能测试: 检查集成的系统在运行时是否满足需求中指定的功 能。单元测试和集成测试的重点是构件及构件间的交互 这里的测试不必知道正在执行哪个构件,但必须知道系统 是作什么的。与功能相关的活动集合称为线程 ( thread),因此这里的功能测试有时称为线程测试。 功能测试采用黑盒技术,测试用例从需求文档中产生。 如,对一个文字处理系统的测试可以检查文档创建、文档 修改、文档删除等功能。有时可分析需求的语义,用输入 与输出之间或输入与转换之间的逻辑关系建立判定表来实 现测试。 主讲教师:刘海岩副教授
3 3、系统测试 有如下过程: (1) 功能测试: 检查集成的系统在运行时是否满足需求中指定的功 能。单元测试和集成测试的重点是构件及构件间的交互。 这里的测试不必知道正在执行哪个构件,但必须知道系统 是作什么的。与功能相关的活动集合称为线程 ( thread),因此这里的功能测试有时称为线程测试。 功能测试采用黑盒技术,测试用例从需求文档中产生。 如,对一个文字处理系统的测试可以检查文档创建、文档 修改、文档删除等功能。有时可分析需求的语义,用输入 与输出之间或输入与转换之间的逻辑关系建立判定表来实 现测试
西安交通大学现代远程教育课程 软件工程概论 (2)性能测试: 针对的是非功能性需求,即测试的类型由非功能性需 求的定义来决定 强度测试( stress test)评价系统在短时间内到达其极 限时的表现。 容量测试( volume test检查系统对大量数据的处理。 恢复测试( environmental test)检查系统的容错(出 镆螫簖处理)能力,能否在指定时间内修正错 安全测试( security test)测试系统的保护措施及数据 与服务的完整性、保密性等 还有许多方面的测试,如对用户的响应时间、执行某 个功能的运行时间的计时测试,系统的可用性测试等。 以上是开发人员以需求规约为依据、采用黑盒技术, 通过对 及其且标的理解而进行 开发人员的理 解需要用户的认可,因此还要进行以下用户确状的测试。 主讲教师:刘海岩副教授
4 (2) 性能测试: 针对的是非功能性需求,即测试的类型由非功能性需 求的定义来决定 。 • 强度测试(stress test)评价系统在短时间内到达其极 限时的表现。 • 容量测试(volume test) 检查系统对大量数据的处理。 • 恢复测试(environmental test) 检查系统的容错(出 错、故障、掉电等处理)能力,能否在指定时间内修正错 误并重新启动系统。 • 安全测试(security test) 测试系统的保护措施及数据 与服务的完整性、保密性等。 还有许多方面的测试,如对用户的响应时间、执行某 个功能的运行时间的计时测试,系统的可用性测试等。 以上是开发人员以需求规约为依据、采用黑盒技术, 通过对系统及其目标的理解而进行的测试。开发人员的理 解需要用户的认可,因此还要进行以下用户确认的测试
西安交通大学现代远程教育课程 软件工程概论 (1)验收测试: 也称确认测试。指验收软件的有效性,使用户确信他 们需要的就是这个系统。有时在实际环境中进行,有时在 开发环境中进行。除了检査系统功能性能外,还要进行软 件配置审査,包括文档的完整性、一致性、准确性的检査, 是否具有维护阶段必需的细节 (2)安装测试:在实际环境中进行的测试。测试系统的完 备性及可能被现场条件影响的那些功能或非功能性特性 还有2种系统测试策略: (1)Apha测试:软件交付用户后,用户在开发环境中由开 发人员“指导”下进行的测试。 (2)Beta测试:用户在目标环境(实际使用环境)下进行 的测试。 如微软的“ Windows XP”Beta2测试版由用户免费试 用,半年后测试版作废。 主讲教师:刘海岩副教授
5 (1)验收测试: 也称确认测试。指验收软件的有效性,使用户确信他 们需要的就是这个系统。有时在实际环境中进行,有时在 开发环境中进行。除了检查系统功能性能外,还要进行软 件配置审查,包括文档的完整性、一致性、准确性的检查, 是否具有维护阶段必需的细节。 (2)安装测试:在实际环境中进行的测试。测试系统的完 备性及可能被现场条件影响的那些功能或非功能性特性。 还有2种系统测试策略: (1)Alpha测试:软件交付用户后,用户在开发环境中由开 发人员“指导”下进行的测试。 (2)Beta测试:用户在目标环境(实际使用环境)下进行 的测试。 如微软的 “Windows XP” Beta 2测试版由用户免费试 用,半年后测试版作废
西安交通大学现代远程教育课程 软件工程概论 4、测试的管理 (1)测试文档 为了控制测试的复杂性并提高测试效率,需建立测试 文档: 测试计划:目标,文档引用,系统输入/出及主要处 理,主要测试,进度,所需材料 测试说明:测试项标识,满足的需求,方法条件,测 试用例,测试步骤等。 ·问题报告和分析报告:记录每一个测试事件,给出测 果的完整信息,分析 实际测试结果和预期结果的差异 响,并确定问题严重等级 见下图: 主讲教师:刘海岩副教授
6 4、测试的管理 (1)测试文档 为了控制测试的复杂性并提高测试效率,需建立测试 文档: • 测试计划 :目标,文档引用,系统输入/出及主要处 理,主要测试,进度,所需材料等。 • 测试说明:测试项标识,满足的需求,方法条件,测 试用例,测试步骤等。 • 问题报告和分析报告:记录每一个测试事件,给出测 试结果的完整信息,分析实际测试结果和预期结果的差异 及影响,并确定问题严重等级。 见下图:
西安交通大学现代远程教育课程 软件工程概论 测试说明 测试说明 测试分析报告 测试1 测试1 测试1 测试的需求 测试数据 执行 结果 测试的功能 测试过程 测试1 方法 条件 测试方案 测试说明 测试说明 测试分析报告 系统功能测试 测试2 测试2 测试2 功能11 测试的需求 测试数据 执行 结果 功能23,4 测试的功能 测试过程 测试2 件 测试说明 测试说明 测试分析报告 测试3 测试3 测试3 测试的需求 测试数据 执行 结果 测试的功能 测试过程 测试3 方法 条件 2 测试中产生的文档 主讲教师:刘海岩副教授
7
西安交通大学现代远程教育课程 软件工程概论 2)职责分配 单元测试可由开发人员自己测试。一个子系统开发 小组同时可以作为其它子系统小组开发的构件的测试小组 体系结构设计人员可以作为集成测试小组,同一个测 试文档可以用于测试小组间的交流。 对于后期的测试(如功能测试和性能测试)或者是质 量需求极高的软件应由另一个独立的控制质量小组负责 设计人员将模型、源代码和测试用例提供给该小组,由他 们进行测试。他们将问题报告和分析报告发送给设计人员, 以便对系统作必要的修改。修改后还应进行回归测试,确 保没有引入新的错误。 8 主讲教师:刘海岩副教授
8 (2)职责分配 单元测试可由开发人员自己测试。一个子系统开发 小组同时可以作为其它子系统小组开发的构件的测试小组。 体系结构设计人员可以作为集成测试小组,同一个测 试文档可以用于测试小组间的交流。 对于后期的测试(如功能测试和性能测试)或者是质 量需求极高的软件应由另一个独立的控制质量小组负责。 设计人员将模型、源代码和测试用例提供给该小组,由他 们进行测试。他们将问题报告和分析报告发送给设计人员, 以便对系统作必要的修改。修改后还应进行回归测试,确 保没有引入新的错误
西安交通大学现代远程教育课程 软件工程概论 (3)何时停止测试 “时间不够、资金不够的时候,就完成了测试。” Musa提出了一个基于统计标准的答复:“在按照概 率的方法定义的环境中,1000个CPU小时内不出错的操 作的概率大于0.995,就有95%的信心说我们已经进行了 足够的测试。” 软件可靠性理论建立了一种基于执行时间的函数的 软件故障(在测试过程中发现的错误)模型: f(t)=(1/p)n(opt+1)(参考教材1p349) 其中f为软件在一定的测试时间t后可能会发生故障 的预期累计数目,为测试开始时的初始故障密度(单位 时间内的故障数),p为错误被发现和修正中的故障密度 的呈递减的指数。 9 主讲教师:刘海岩副教授
9 (3)何时停止测试 “时间不够、资金不够的时候,就完成了测试。” Musa提出了一个基于统计标准的答复:“在按照概 率的方法定义的环境中,1000个CPU小时内不出错的操 作的概率大于0.995,就有95%的信心说我们已经进行了 足够的测试。” 软件可靠性理论建立了一种基于执行时间的函数的 软件故障(在测试过程中发现的错误)模型: f(t)=(1/p)ln(l0pt+1) (参考教材1p349) 其中f(t)为软件在一定的测试时间t后可能会发生故障 的预期累计数目,l0为测试开始时的初始故障密度(单位 时间内的故障数),p为错误被发现和修正中的故障密度 的呈递减的指数
西安交通大学现代远程教育课程 软件工程概论 瞬时的故障密度(t)可以使用f)的导数得出 (t=o/(opt+1) 使用上述公式,可预测测试进程中预期的故障密度,实 际的错误密度可以画在预测曲线上。如图所示: 如果在测试过程中 实际收集的数据与预测 ■测试过程中收集的数据 曲线比较接近的话,就 可估算出为了达到低的小预期的故障密度O 故障密度,整个测试过 程所需要的时间 软件可靠性模型给 出了回答“测试什么时 执行时间t 完成”这种问题的有意 的指导。 错误密度作为执行时间的函数 10 主讲教师:刘海岩副教授
10 瞬时的故障密度l(t)可以使用f(t)的导数得出: l(t)=l0 /(l0pt+1) 使用上述公式,可预测测试进程中预期的故障密度,实 际的错误密度可以画在预测曲线上。如图所示: 如果在测试过程中 实际收集的数据与预测 曲线比较接近的话,就 可估算出为了达到低的 故障密度,整个测试过 程所需要的时间。 软件可靠性模型给 出了回答“测试什么时候 完成”这种问题的有意义 的指导