Ch03-软件测试方法-软件测试方法和技术-朱少民
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件测试方法和技术
第3章 软件测试的方法
朱少民
Kerryzhu@ /kerryzhu
第2章 回顾
软件缺陷是软件质量的对立面 软件缺陷(Bug)是什么 验证和确认 软件测试的分类 静态测试与动态测试 主动测试与被动测试 黑盒测试与白盒测试 测试级别:单元、集成、系统和验收 软件测试计划与用例 专业测试人员的责任和要求
测试方法 @SWEBOK 3.0
IDBT
CBT FBT UBT MBT TBNA
6
具体方法或技术
IDBT 等价类、边界值、两两组合 (pairwise)、随机测试 CBT 基于控制流的标准、基于数据流的 标准、CBT参考模型 FBT 故障模型、错误猜测法、变异测试
UBT 操作配置(operational
察启发 profile)、用户观
黑盒测试
白盒测试
黑盒测试
MBT 决策表、有限状态机、形式化验证、 TTCN3、工作流模型 TBNA OOS、web、real-time、SOA、 应用领域 embedded、safe-critical
7
过去常提“黑盒和白盒”方法
白盒 方法
语句覆盖 判定覆盖 条件覆盖 判定条件覆盖 条件组合覆盖 基本路径覆盖
Logic
FSMs
Input Space
Syntax
Source Specs
DNF
Source Design
Specs Use cases
Source Integration
Models Input
DNF: Disjunctive Normal Form(析取范式)
FSM: Finite Status Machine
3.2.2 边界值分析方法
很多错误发生在输入或输出范围的边界上,因此针对各种 边界情况设置测试用例,可以更有效地发现缺陷。
输入条件 … 有效等价类 … 无效等价类 …
…
…
…
b) 为每个等价类规定一个唯一的编号; c) 设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类 d) 重复c),最后使得所有有效等价类均被测试用例所覆盖; e) 设计一个新的测试用例,使其只覆盖一个无效等价类。
f) 重复e)使所有无效等价类均被覆盖。
3.2 基于输入域的测试方法
3.2.1 等价类划分法
3.2.2 边界值分析法
3.2.1 等价类划分方法
等价类是某个输入域的子集,在该子集中每个输入数据的作
用是等效的.将输入数据分成若干个子集,从每个子集选取
一个代表性的数据作为测试用例
分为有效等价类和无效等价类。 在分析需求规格说明的基础上划分等价类,列出等价类表
3.1.1 Ad-hoc测试方法和ALAC测试 3.1.2 错误推测法
3.1.1 ALAC测试和随机测试
ALAC,是Act-like-a-customer(象客户那样做)的简写, ALAC测试方法是一种基于客户使用产品的知识开发出 来的测试方法,它的出发点是著名的Pareto 80/20规律
3.1.2 错误猜测法
有效等价类(符合规则)和若干个无效等价类(从不同角度违
反规则)。
有什么具体案例?
等价类测试用例-Example
等价类1: Integer
等价类2: Decimal fraction
等价类3: Negative 等价类4: Invalid input
根据等价类创建测试用例的步骤
a) 建立等价类表,列出所有划分出的等价类:
i1
设计测试用例时,要同时考虑这两
种等价类。因为软件不仅要能接收
合理的数据,也要能经受异常数据 的考验。经过正反的测试才能确保
all inputs
i2
i4 i
3
软件具有更高的可靠性。
确定等价类的方法
在输入条件规定了取值范围或值的个数的情况下,则可以 确立一个有效等价类和两个无效等价类
less than range
在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等 价类
Non-Boolean Boolean
确定等价类的方式 (3)
在规定了输入数据的一组值(假定n个),并且程序要对每一
个输入值分别处理的情况下,可确立n个有效等价类和一个
无效等价类。
在规定了输入数据必须遵守的规则的情况下,可确立一个
等价类划分法 边界值分析法 判定表方法 因果图法 正交试验法 功能图法 错误推测法
黑盒 方法
8
其它方法 @world
上下文驱动方法 基于需求验证的方法
基于场景的测试方法
快速测试方法 基于经验的方法
9
3.1 基于直觉和经验的方法
基于经验和直觉推测程序中所有可能存在的各种错误,
从而有针对性地设计测试用例。
in range
greater than range
less than value
value
greater than value
确定等价类的方法(2)
在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下, 可以确立一个有效等价类和一个无效等价类。
not member of set
member of set
错误推测法是测试者根据经验、知识和直觉来发 现软件错误,来推测程序中可能存在的各种错误, 从而有针对性的进行测试。
发现程序经常出现的错误的方法:
单元测试中发现的模块错误; 产品的以前版本曾经发现的错误; 输入数据为0或字符为空; 当软件要求输入时(比如在文本框中),不是没有输入正确的信 息,而是根本没有输入任何内容,单单按了Enter键; … …
的方法,在测试中有许多对立统一体,如静态测试和动态测试、白 盒测试和黑盒测试、自动化测试和手工测试等。
软件测试的方法论来源于软件工程的方法论,例如有面 向对象的开发方法,就有面向对象的测试方法;有敏捷 方法,就有和敏捷方法对应的敏捷测试。
测试领域
Domains under Test
GUI
ied to
第3章 软件测试的方法
3.1 基于直觉和经验的方法 3.2 基于输入域的方法 3.3 基于组合及其优化的技术 3.4 基于逻辑覆盖的方法 3.5 基于故障模式的测试方法 3.6 基于模型的测试方法 3.7 形式化方法
方法论和具体方法
从方法论看,更多体现了一种哲学的思想,例如辩证统一
第3章 软件测试的方法
朱少民
Kerryzhu@ /kerryzhu
第2章 回顾
软件缺陷是软件质量的对立面 软件缺陷(Bug)是什么 验证和确认 软件测试的分类 静态测试与动态测试 主动测试与被动测试 黑盒测试与白盒测试 测试级别:单元、集成、系统和验收 软件测试计划与用例 专业测试人员的责任和要求
测试方法 @SWEBOK 3.0
IDBT
CBT FBT UBT MBT TBNA
6
具体方法或技术
IDBT 等价类、边界值、两两组合 (pairwise)、随机测试 CBT 基于控制流的标准、基于数据流的 标准、CBT参考模型 FBT 故障模型、错误猜测法、变异测试
UBT 操作配置(operational
察启发 profile)、用户观
黑盒测试
白盒测试
黑盒测试
MBT 决策表、有限状态机、形式化验证、 TTCN3、工作流模型 TBNA OOS、web、real-time、SOA、 应用领域 embedded、safe-critical
7
过去常提“黑盒和白盒”方法
白盒 方法
语句覆盖 判定覆盖 条件覆盖 判定条件覆盖 条件组合覆盖 基本路径覆盖
Logic
FSMs
Input Space
Syntax
Source Specs
DNF
Source Design
Specs Use cases
Source Integration
Models Input
DNF: Disjunctive Normal Form(析取范式)
FSM: Finite Status Machine
3.2.2 边界值分析方法
很多错误发生在输入或输出范围的边界上,因此针对各种 边界情况设置测试用例,可以更有效地发现缺陷。
输入条件 … 有效等价类 … 无效等价类 …
…
…
…
b) 为每个等价类规定一个唯一的编号; c) 设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类 d) 重复c),最后使得所有有效等价类均被测试用例所覆盖; e) 设计一个新的测试用例,使其只覆盖一个无效等价类。
f) 重复e)使所有无效等价类均被覆盖。
3.2 基于输入域的测试方法
3.2.1 等价类划分法
3.2.2 边界值分析法
3.2.1 等价类划分方法
等价类是某个输入域的子集,在该子集中每个输入数据的作
用是等效的.将输入数据分成若干个子集,从每个子集选取
一个代表性的数据作为测试用例
分为有效等价类和无效等价类。 在分析需求规格说明的基础上划分等价类,列出等价类表
3.1.1 Ad-hoc测试方法和ALAC测试 3.1.2 错误推测法
3.1.1 ALAC测试和随机测试
ALAC,是Act-like-a-customer(象客户那样做)的简写, ALAC测试方法是一种基于客户使用产品的知识开发出 来的测试方法,它的出发点是著名的Pareto 80/20规律
3.1.2 错误猜测法
有效等价类(符合规则)和若干个无效等价类(从不同角度违
反规则)。
有什么具体案例?
等价类测试用例-Example
等价类1: Integer
等价类2: Decimal fraction
等价类3: Negative 等价类4: Invalid input
根据等价类创建测试用例的步骤
a) 建立等价类表,列出所有划分出的等价类:
i1
设计测试用例时,要同时考虑这两
种等价类。因为软件不仅要能接收
合理的数据,也要能经受异常数据 的考验。经过正反的测试才能确保
all inputs
i2
i4 i
3
软件具有更高的可靠性。
确定等价类的方法
在输入条件规定了取值范围或值的个数的情况下,则可以 确立一个有效等价类和两个无效等价类
less than range
在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等 价类
Non-Boolean Boolean
确定等价类的方式 (3)
在规定了输入数据的一组值(假定n个),并且程序要对每一
个输入值分别处理的情况下,可确立n个有效等价类和一个
无效等价类。
在规定了输入数据必须遵守的规则的情况下,可确立一个
等价类划分法 边界值分析法 判定表方法 因果图法 正交试验法 功能图法 错误推测法
黑盒 方法
8
其它方法 @world
上下文驱动方法 基于需求验证的方法
基于场景的测试方法
快速测试方法 基于经验的方法
9
3.1 基于直觉和经验的方法
基于经验和直觉推测程序中所有可能存在的各种错误,
从而有针对性地设计测试用例。
in range
greater than range
less than value
value
greater than value
确定等价类的方法(2)
在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下, 可以确立一个有效等价类和一个无效等价类。
not member of set
member of set
错误推测法是测试者根据经验、知识和直觉来发 现软件错误,来推测程序中可能存在的各种错误, 从而有针对性的进行测试。
发现程序经常出现的错误的方法:
单元测试中发现的模块错误; 产品的以前版本曾经发现的错误; 输入数据为0或字符为空; 当软件要求输入时(比如在文本框中),不是没有输入正确的信 息,而是根本没有输入任何内容,单单按了Enter键; … …
的方法,在测试中有许多对立统一体,如静态测试和动态测试、白 盒测试和黑盒测试、自动化测试和手工测试等。
软件测试的方法论来源于软件工程的方法论,例如有面 向对象的开发方法,就有面向对象的测试方法;有敏捷 方法,就有和敏捷方法对应的敏捷测试。
测试领域
Domains under Test
GUI
ied to
第3章 软件测试的方法
3.1 基于直觉和经验的方法 3.2 基于输入域的方法 3.3 基于组合及其优化的技术 3.4 基于逻辑覆盖的方法 3.5 基于故障模式的测试方法 3.6 基于模型的测试方法 3.7 形式化方法
方法论和具体方法
从方法论看,更多体现了一种哲学的思想,例如辩证统一