第六章软件测试方法PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
除此之外还有一个问题是:如果程序中包含了由于程序员对问题叙述 或说明的误解而产生的错误,当程序员测试自己程序时,往往还会带 着同样的误解而使问题难以发现。
但是这些并不意味着程序员不可能测试自己的程序。他们在测试自己 程序方面也能够并且也已经取得了一些成绩。不过相比之下如果有另 外一个人来进行程序测试将会更有效、更成功。
7
(二)根据软件开发的不同阶段
可以将软件测试划分为单元测试、集成测试、系统测试、验
收测试、回归测试、验证测试、确认测试、测试、测试和
测试等。
(三)根据被测试软件的开发方法和应用环境的不同
可以分为面向对象软件测试、面向方面软件测试、面向服务 软件测试、构件软件测试、嵌入式软件测试、Web应用软件测 试等,以后还要出现普适计算环境下的软件测试、云计算环 境下的软件测试等。
14
(3)程序设计机构不应测试自己的程序
这一条原则与前面的原则类似。 一项工程或一个程序设计机构是个有生命的有机体,它同样有着心理
集成 测试
针对软件不同开发阶段的软件测试方法
系统 验收 回归 验证 确认 Alpha 测试 测试 测试 测试 测试 测试
Beta 测试
Gamma 测试
方测
法
试白 盒 语句 判定 测 覆盖 覆盖 试
语句 路径 覆盖 覆盖
条件 组合 覆盖
组合 测试
蜕变 测试
变异 测试
不同特殊的软件测试方法
演化 测试
FUZZ 测试
8
(四)根据软件不同特性
可以分为负载测试、压力测试、性能测试、安全性测试、 安装测试、可用性测试、稳定性测试、授权测试、用户接 受性测试、一致性测试、配置测试、文档测试、兼容性测 试和Playtest等。
(五)根据不同特殊的测试技术
可以分为组合测试、蜕变测试、变异测试、演化测试、 FUZZ测试、基于性质的测试、基于故障的测试、基于模型 的测试、基于操作剖面的测试、基于用例和/或用户陈述 开发测试用例、基于规格说明的测试、统计测试、逻辑测 试、随机测试、自适应随机测试、GUI测试、冒烟测试和 探索测试等。
态 面 代码 代码 右下方三行属于动
测 代 审查 走查 软 试码 件
态测试
负载 测试
压力 测试
性能 测试
安全 性 测试
安装 测试
可用 性 测试
稳定 性 测试
配置 测试
文档 兼容 测试 性测试
测 试 的 基 本
动
黑 盒 测 试
等价 类划 分
边际 值分 析
态
因果 图分 析
错误 猜测
状态 转行 测试
单元 测试
样,编写测试数据 – 检查程序是否做了要做的事仅是成功的一半,另一半是看程序是
否做了不要它做的事 – 一定不要扔掉测试数据 – 在进行测试设计时不要设想程序中不会查出错误
12
1)确定预期输出(或结果)是测试数据准备必不可少的一部分
这条原则是以心理学为基础的,如果事先无法肯定预期的测试结果, 由于受“眼睛会看见它想看见的东西”现象的影响,往往会把看起来 似是而非的东西当成是正确的结果。换句话说,尽管对测试建立了恰 当的破坏性定义,人们仍然会下意识地盼望看到正确的结果。
(一)依据是否运行程序
依据是否运行程序可以分为静态测试和动态测试。 ➢ 静态测试包括桌面检查、代码审查和代码走查等方法。 ➢ 动态测试根据测试用例设计是否依据内部结构可以分为黑
盒测试和白盒测试,白盒测试包括语句覆盖、判定覆盖、 条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖、 线性代码序列及跳转测试等;黑盒测试包括等价类划分、 边界值分析、因果图分析、错误猜测、状态转换测试等。
提倡用事先就精确写出程序预期的输出结果来详细检查所有的输出, 找出程序中的错误。因此一个测试数据必须由两部分组成:对程序输 入数据的描述和由这些输入数据应产生的程序正确结果的精确描述。
13
(2)程序员应避免测试自己的程序
当一个程序员完成了他的程序设计、编程调试工作之后,设法让他对 这个程序持完全否定的态度是非常困难的。从心理上讲,如果让一个 人否定自己所做的工作将是一件非常沮丧的事情,所以大部分程序员 都由于不能使自己抱着揭露程序中的错误的态度而进入必要的精神状 态而不能有效地测试自己的程序。
9
软件测试的方法体系
针对不同开发方式和应用场景的软件测试方法
面向 对象 软件 测试
面向 Fra Baidu bibliotek向 软件 测试
面向 服务 软件 测试
基于 构件 软件 测试
嵌入 式 软件 测试
普适 环境 软件 测试
云计 算 软件 测试
Web 应用 网构软 软件测 件测试 试
其他新 型软件 测试
静桌
针对软件不同特性和方面的软件测试方法
3
为什么要进行测试
测试是证明程序中不存在错误的过程? 程序测试的目的是要证明程序正确地 执行了预期的功能? 程序测试的过程是使人们确信程序可 完成预期要完成的工作过程?
4
软件测试是为了发现错误而执行程序的过程。并不是为了表明程序是 正确的,同时 “成功的测试是没有发现程序中的错误”的想法也是 不正确的。
基于性 基于故 基于模 质的测 障的测 型的测
试试试
统计 测试
逻辑 测试
10
6.2 常用的测试方法
11
2、测试的基本原则
系统测试阶段,任务的完成同样也需要一整套的原则
测试的基本原则
– 确定预期输出(或结果)是测试数据准备必不可少的一部分 – 程序员应避免测试自己的程序 – 程序设计机构不应测试自己的程序 – 彻底检查每个测试结果 – 对非法的和非预期的输入情况,也要像对合法的、预期的输入一
系统和程序测试(Testing),尤其是自行开发的系统和程序,是系统 开发过程中耗费时间最多的步骤,为的是尽可能发现程序和系统中可 能存在的错误并及时予以纠正。
系统的测试是从总体出发,测试系统软件的总体效益、系统各个组成 部分的功能完成情况、运行效率及系统的可靠性等。
5
6.1 软件测试的分类
6
第六章 软件测试方法
1
第一部分
整体概述
THE FIRST PART OF THE OVERALL OVERVIEW, PLEASE SUMMARIZE THE CONTENT
2
本章内容 6.1 软件测试的分类 6.2 常用的测试方法 6.3 常用的测试工具 6.4 软件测试的心理依据 6.5 软件测试的误区 6.6 软件测试的发展前景
但是这些并不意味着程序员不可能测试自己的程序。他们在测试自己 程序方面也能够并且也已经取得了一些成绩。不过相比之下如果有另 外一个人来进行程序测试将会更有效、更成功。
7
(二)根据软件开发的不同阶段
可以将软件测试划分为单元测试、集成测试、系统测试、验
收测试、回归测试、验证测试、确认测试、测试、测试和
测试等。
(三)根据被测试软件的开发方法和应用环境的不同
可以分为面向对象软件测试、面向方面软件测试、面向服务 软件测试、构件软件测试、嵌入式软件测试、Web应用软件测 试等,以后还要出现普适计算环境下的软件测试、云计算环 境下的软件测试等。
14
(3)程序设计机构不应测试自己的程序
这一条原则与前面的原则类似。 一项工程或一个程序设计机构是个有生命的有机体,它同样有着心理
集成 测试
针对软件不同开发阶段的软件测试方法
系统 验收 回归 验证 确认 Alpha 测试 测试 测试 测试 测试 测试
Beta 测试
Gamma 测试
方测
法
试白 盒 语句 判定 测 覆盖 覆盖 试
语句 路径 覆盖 覆盖
条件 组合 覆盖
组合 测试
蜕变 测试
变异 测试
不同特殊的软件测试方法
演化 测试
FUZZ 测试
8
(四)根据软件不同特性
可以分为负载测试、压力测试、性能测试、安全性测试、 安装测试、可用性测试、稳定性测试、授权测试、用户接 受性测试、一致性测试、配置测试、文档测试、兼容性测 试和Playtest等。
(五)根据不同特殊的测试技术
可以分为组合测试、蜕变测试、变异测试、演化测试、 FUZZ测试、基于性质的测试、基于故障的测试、基于模型 的测试、基于操作剖面的测试、基于用例和/或用户陈述 开发测试用例、基于规格说明的测试、统计测试、逻辑测 试、随机测试、自适应随机测试、GUI测试、冒烟测试和 探索测试等。
态 面 代码 代码 右下方三行属于动
测 代 审查 走查 软 试码 件
态测试
负载 测试
压力 测试
性能 测试
安全 性 测试
安装 测试
可用 性 测试
稳定 性 测试
配置 测试
文档 兼容 测试 性测试
测 试 的 基 本
动
黑 盒 测 试
等价 类划 分
边际 值分 析
态
因果 图分 析
错误 猜测
状态 转行 测试
单元 测试
样,编写测试数据 – 检查程序是否做了要做的事仅是成功的一半,另一半是看程序是
否做了不要它做的事 – 一定不要扔掉测试数据 – 在进行测试设计时不要设想程序中不会查出错误
12
1)确定预期输出(或结果)是测试数据准备必不可少的一部分
这条原则是以心理学为基础的,如果事先无法肯定预期的测试结果, 由于受“眼睛会看见它想看见的东西”现象的影响,往往会把看起来 似是而非的东西当成是正确的结果。换句话说,尽管对测试建立了恰 当的破坏性定义,人们仍然会下意识地盼望看到正确的结果。
(一)依据是否运行程序
依据是否运行程序可以分为静态测试和动态测试。 ➢ 静态测试包括桌面检查、代码审查和代码走查等方法。 ➢ 动态测试根据测试用例设计是否依据内部结构可以分为黑
盒测试和白盒测试,白盒测试包括语句覆盖、判定覆盖、 条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖、 线性代码序列及跳转测试等;黑盒测试包括等价类划分、 边界值分析、因果图分析、错误猜测、状态转换测试等。
提倡用事先就精确写出程序预期的输出结果来详细检查所有的输出, 找出程序中的错误。因此一个测试数据必须由两部分组成:对程序输 入数据的描述和由这些输入数据应产生的程序正确结果的精确描述。
13
(2)程序员应避免测试自己的程序
当一个程序员完成了他的程序设计、编程调试工作之后,设法让他对 这个程序持完全否定的态度是非常困难的。从心理上讲,如果让一个 人否定自己所做的工作将是一件非常沮丧的事情,所以大部分程序员 都由于不能使自己抱着揭露程序中的错误的态度而进入必要的精神状 态而不能有效地测试自己的程序。
9
软件测试的方法体系
针对不同开发方式和应用场景的软件测试方法
面向 对象 软件 测试
面向 Fra Baidu bibliotek向 软件 测试
面向 服务 软件 测试
基于 构件 软件 测试
嵌入 式 软件 测试
普适 环境 软件 测试
云计 算 软件 测试
Web 应用 网构软 软件测 件测试 试
其他新 型软件 测试
静桌
针对软件不同特性和方面的软件测试方法
3
为什么要进行测试
测试是证明程序中不存在错误的过程? 程序测试的目的是要证明程序正确地 执行了预期的功能? 程序测试的过程是使人们确信程序可 完成预期要完成的工作过程?
4
软件测试是为了发现错误而执行程序的过程。并不是为了表明程序是 正确的,同时 “成功的测试是没有发现程序中的错误”的想法也是 不正确的。
基于性 基于故 基于模 质的测 障的测 型的测
试试试
统计 测试
逻辑 测试
10
6.2 常用的测试方法
11
2、测试的基本原则
系统测试阶段,任务的完成同样也需要一整套的原则
测试的基本原则
– 确定预期输出(或结果)是测试数据准备必不可少的一部分 – 程序员应避免测试自己的程序 – 程序设计机构不应测试自己的程序 – 彻底检查每个测试结果 – 对非法的和非预期的输入情况,也要像对合法的、预期的输入一
系统和程序测试(Testing),尤其是自行开发的系统和程序,是系统 开发过程中耗费时间最多的步骤,为的是尽可能发现程序和系统中可 能存在的错误并及时予以纠正。
系统的测试是从总体出发,测试系统软件的总体效益、系统各个组成 部分的功能完成情况、运行效率及系统的可靠性等。
5
6.1 软件测试的分类
6
第六章 软件测试方法
1
第一部分
整体概述
THE FIRST PART OF THE OVERALL OVERVIEW, PLEASE SUMMARIZE THE CONTENT
2
本章内容 6.1 软件测试的分类 6.2 常用的测试方法 6.3 常用的测试工具 6.4 软件测试的心理依据 6.5 软件测试的误区 6.6 软件测试的发展前景