Ch03-软件测试方法-软件测试方法和技术-朱少民

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 形式化方法
方法论和具体方法

从方法论看,更多体现了一种哲学的思想,例如辩证统一
相关文档
最新文档