istqb 初级认证files.cnblogs.com/files/ming8006/第4章_测试设计技术.pdf ·...

132
ISTQB初级认证 初级认证 初级认证 初级认证 4章 测试设计技术 测试设计技术 测试设计技术 测试设计技术 作者:郑文强 Email: [email protected] 博客:http://blog.csdn.net/Wenqiang_Zheng

Upload: truongdang

Post on 05-Oct-2018

341 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

ISTQB初级认证初级认证初级认证初级认证第第第第4章章章章测试设计技术测试设计技术测试设计技术测试设计技术

作者:郑文强

Email: [email protected]

博客:http://blog.csdn.net/Wenqiang_Zheng

Page 2: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

2测试设计技术 版权所有©郑文强

声明声明声明声明

�本课件的开发基于本课件的开发基于本课件的开发基于本课件的开发基于ISTQB Foundation Level Syllabus (Version 2007)。。。。

�感谢感谢感谢感谢ISTQB和大纲作者的努力和大纲作者的努力和大纲作者的努力和大纲作者的努力,,,,对应的大纲可以从对应的大纲可以从对应的大纲可以从对应的大纲可以从www.istqb.org下载获得下载获得下载获得下载获得。。。。

�本课件为个人开发本课件为个人开发本课件为个人开发本课件为个人开发,,,,只能用于个人学习目的只能用于个人学习目的只能用于个人学习目的只能用于个人学习目的,,,,不能用于任不能用于任不能用于任不能用于任何商业活动何商业活动何商业活动何商业活动。。。。

�更多更多更多更多ISTQB初级认证资料初级认证资料初级认证资料初级认证资料,,,,参考参考参考参考::::http://blog.csdn.net/Wenqiang_Zheng/archive/2011/04/09/6311523.aspx

Page 3: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

3测试设计技术 版权所有©郑文强

课程内容课程内容课程内容课程内容

1. 测试开发过程测试开发过程测试开发过程测试开发过程

2. 测试设计技术类型测试设计技术类型测试设计技术类型测试设计技术类型

3. 黑盒测试技术黑盒测试技术黑盒测试技术黑盒测试技术

4. 白盒测试技术白盒测试技术白盒测试技术白盒测试技术

5. 基于经验的技术基于经验的技术基于经验的技术基于经验的技术

6. 测试技术的选择测试技术的选择测试技术的选择测试技术的选择

Page 4: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

4测试设计技术 版权所有©郑文强

测试开发过程测试开发过程测试开发过程测试开发过程

ISTQB考试知识点考试知识点考试知识点考试知识点

�区别区别区别区别::::测试设计规格说明测试设计规格说明测试设计规格说明测试设计规格说明、、、、测试用例规格说明和测试用例规格说明和测试用例规格说明和测试用例规格说明和测试规程规格说明测试规程规格说明测试规程规格说明测试规程规格说明((((K2););););

�比较测试术语比较测试术语比较测试术语比较测试术语::::测试条件测试条件测试条件测试条件、、、、测试用例和测试规程测试用例和测试规程测试用例和测试规程测试用例和测试规程的不同含义的不同含义的不同含义的不同含义((((K2););););

�评估测试用例的质量评估测试用例的质量评估测试用例的质量评估测试用例的质量((((K3),),),),它们是否满足它们是否满足它们是否满足它们是否满足::::

�显示明确的与需求的可追溯性显示明确的与需求的可追溯性显示明确的与需求的可追溯性显示明确的与需求的可追溯性;;;;

�包含预期的结果包含预期的结果包含预期的结果包含预期的结果;;;;

�根据测试人员的理解水平根据测试人员的理解水平根据测试人员的理解水平根据测试人员的理解水平,,,,将测试用例转换为结将测试用例转换为结将测试用例转换为结将测试用例转换为结构合理的测试规程规格说明构合理的测试规程规格说明构合理的测试规程规格说明构合理的测试规程规格说明((((K3););););

Page 5: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

5测试设计技术 版权所有©郑文强

测试开发过程测试开发过程测试开发过程测试开发过程

容易混淆的容易混淆的容易混淆的容易混淆的术语术语术语术语

�测试基础测试基础测试基础测试基础(Test Basis)::::能够从中推断出组件能够从中推断出组件能够从中推断出组件能够从中推断出组件/系统需求的所有文档系统需求的所有文档系统需求的所有文档系统需求的所有文档。。。。测试用例是基于这些文档测试用例是基于这些文档测试用例是基于这些文档测试用例是基于这些文档的的的的;;;;

�测试条件测试条件测试条件测试条件(Test Condition)::::组件组件组件组件/系统中能被系统中能被系统中能被系统中能被一个或多个测试用例验证的条目或事件一个或多个测试用例验证的条目或事件一个或多个测试用例验证的条目或事件一个或多个测试用例验证的条目或事件。。。。例如例如例如例如,,,,功能功能功能功能、、、、事务事务事务事务、、、、特性特性特性特性、、、、质量属性或者结构化元素质量属性或者结构化元素质量属性或者结构化元素质量属性或者结构化元素;;;;

�测试用例测试用例测试用例测试用例(Test Case)::::为特定目标或测试条件为特定目标或测试条件为特定目标或测试条件为特定目标或测试条件(例如例如例如例如,,,,执行特定的程序路径执行特定的程序路径执行特定的程序路径执行特定的程序路径,,,,或是验证与特定或是验证与特定或是验证与特定或是验证与特定需求的一致性需求的一致性需求的一致性需求的一致性)而制定的一组输入值而制定的一组输入值而制定的一组输入值而制定的一组输入值、、、、执行入口执行入口执行入口执行入口条件条件条件条件、、、、预期结果和执行出口条件预期结果和执行出口条件预期结果和执行出口条件预期结果和执行出口条件[IEEE 610];;;;

Page 6: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

6测试设计技术 版权所有©郑文强

测试开发过程测试开发过程测试开发过程测试开发过程

容易混淆的容易混淆的容易混淆的容易混淆的术语术语术语术语((((续续续续))))�测试设计规格说明测试设计规格说明测试设计规格说明测试设计规格说明(Test Design Specification)::::为一为一为一为一个测试条目指定测试条件个测试条目指定测试条件个测试条目指定测试条件个测试条目指定测试条件((((覆盖项覆盖项覆盖项覆盖项)、)、)、)、具体测试方法并具体测试方法并具体测试方法并具体测试方法并识别相关高层测试用例的文档识别相关高层测试用例的文档识别相关高层测试用例的文档识别相关高层测试用例的文档;;;;

�测试用例规格说明测试用例规格说明测试用例规格说明测试用例规格说明(Test Case Specification)::::为测试为测试为测试为测试项指定一套测试用例项指定一套测试用例项指定一套测试用例项指定一套测试用例((((目标目标目标目标、、、、输入输入输入输入、、、、测试动作测试动作测试动作测试动作、、、、期望结期望结期望结期望结果果果果、、、、执行预置条件执行预置条件执行预置条件执行预置条件))))的文档的文档的文档的文档[IEEE829];;;;

�测试规程规格说明测试规程规格说明测试规程规格说明测试规程规格说明(Test Procedure Specification)::::规定了执行测试的一系列行为的文档规定了执行测试的一系列行为的文档规定了执行测试的一系列行为的文档规定了执行测试的一系列行为的文档。。。。也称为测试脚本也称为测试脚本也称为测试脚本也称为测试脚本或手工测试脚本或手工测试脚本或手工测试脚本或手工测试脚本[IEEE 829];;;;

Page 7: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

7测试设计技术 版权所有©郑文强

测试开发过程测试开发过程测试开发过程测试开发过程

术语术语术语术语例子例子例子例子

员工圣诞节奖金计算的需求描述员工圣诞节奖金计算的需求描述员工圣诞节奖金计算的需求描述员工圣诞节奖金计算的需求描述::::

�员工在公司的工作时间超过员工在公司的工作时间超过员工在公司的工作时间超过员工在公司的工作时间超过3年年年年,,,,可以得到相当于其月收可以得到相当于其月收可以得到相当于其月收可以得到相当于其月收入的入的入的入的50%%%%的圣诞节奖金的圣诞节奖金的圣诞节奖金的圣诞节奖金;;;;

�在公司的工作时间超过在公司的工作时间超过在公司的工作时间超过在公司的工作时间超过5年年年年,,,,可以得到相当于其月收入的可以得到相当于其月收入的可以得到相当于其月收入的可以得到相当于其月收入的75%%%%的圣诞节奖金的圣诞节奖金的圣诞节奖金的圣诞节奖金;;;;

�工作时间超过工作时间超过工作时间超过工作时间超过8年年年年,,,,可以得到相当于其月收入的可以得到相当于其月收入的可以得到相当于其月收入的可以得到相当于其月收入的100%%%%的的的的圣诞节奖金圣诞节奖金圣诞节奖金圣诞节奖金。。。。

员工圣诞节奖金计算的需求描述员工圣诞节奖金计算的需求描述员工圣诞节奖金计算的需求描述员工圣诞节奖金计算的需求描述::::

�员工在公司的工作时间超过员工在公司的工作时间超过员工在公司的工作时间超过员工在公司的工作时间超过3年年年年,,,,可以得到相当于其月收可以得到相当于其月收可以得到相当于其月收可以得到相当于其月收入的入的入的入的50%%%%的圣诞节奖金的圣诞节奖金的圣诞节奖金的圣诞节奖金;;;;

�在公司的工作时间超过在公司的工作时间超过在公司的工作时间超过在公司的工作时间超过5年年年年,,,,可以得到相当于其月收入的可以得到相当于其月收入的可以得到相当于其月收入的可以得到相当于其月收入的75%%%%的圣诞节奖金的圣诞节奖金的圣诞节奖金的圣诞节奖金;;;;

�工作时间超过工作时间超过工作时间超过工作时间超过8年年年年,,,,可以得到相当于其月收入的可以得到相当于其月收入的可以得到相当于其月收入的可以得到相当于其月收入的100%%%%的的的的圣诞节奖金圣诞节奖金圣诞节奖金圣诞节奖金。。。。

Page 8: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

8测试设计技术 版权所有©郑文强

测试开发过程测试开发过程测试开发过程测试开发过程

测试用例生命周期测试用例生命周期测试用例生命周期测试用例生命周期

测试条件标识测试条件标识测试条件标识测试条件标识测试条件标识测试条件标识测试条件标识测试条件标识

测试用例设计测试用例设计测试用例设计测试用例设计测试用例设计测试用例设计测试用例设计测试用例设计

测试用例实现测试用例实现测试用例实现测试用例实现测试用例实现测试用例实现测试用例实现测试用例实现

测试用例执行测试用例执行测试用例执行测试用例执行测试用例执行测试用例执行测试用例执行测试用例执行

测试用例管理测试用例管理测试用例管理测试用例管理测试用例管理测试用例管理测试用例管理测试用例管理

Page 9: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

9测试设计技术 版权所有©郑文强

测试开发过程测试开发过程测试开发过程测试开发过程

测试用例过程测试用例过程测试用例过程测试用例过程例子例子例子例子

员工圣诞节奖金计算的需求描述员工圣诞节奖金计算的需求描述员工圣诞节奖金计算的需求描述员工圣诞节奖金计算的需求描述::::

�员工在公司的工作时间超过员工在公司的工作时间超过员工在公司的工作时间超过员工在公司的工作时间超过3年年年年,,,,可以得到相当于其月收可以得到相当于其月收可以得到相当于其月收可以得到相当于其月收入的入的入的入的50%%%%的圣诞节奖金的圣诞节奖金的圣诞节奖金的圣诞节奖金;;;;

�在公司的工作时间超过在公司的工作时间超过在公司的工作时间超过在公司的工作时间超过5年年年年,,,,可以得到相当于其月收入的可以得到相当于其月收入的可以得到相当于其月收入的可以得到相当于其月收入的75%%%%的圣诞节奖金的圣诞节奖金的圣诞节奖金的圣诞节奖金;;;;

�工作时间超过工作时间超过工作时间超过工作时间超过8年年年年,,,,可以得到相当于其月收入的可以得到相当于其月收入的可以得到相当于其月收入的可以得到相当于其月收入的100%%%%的的的的圣诞节奖金圣诞节奖金圣诞节奖金圣诞节奖金。。。。

员工圣诞节奖金计算的需求描述员工圣诞节奖金计算的需求描述员工圣诞节奖金计算的需求描述员工圣诞节奖金计算的需求描述::::

�员工在公司的工作时间超过员工在公司的工作时间超过员工在公司的工作时间超过员工在公司的工作时间超过3年年年年,,,,可以得到相当于其月收可以得到相当于其月收可以得到相当于其月收可以得到相当于其月收入的入的入的入的50%%%%的圣诞节奖金的圣诞节奖金的圣诞节奖金的圣诞节奖金;;;;

�在公司的工作时间超过在公司的工作时间超过在公司的工作时间超过在公司的工作时间超过5年年年年,,,,可以得到相当于其月收入的可以得到相当于其月收入的可以得到相当于其月收入的可以得到相当于其月收入的75%%%%的圣诞节奖金的圣诞节奖金的圣诞节奖金的圣诞节奖金;;;;

�工作时间超过工作时间超过工作时间超过工作时间超过8年年年年,,,,可以得到相当于其月收入的可以得到相当于其月收入的可以得到相当于其月收入的可以得到相当于其月收入的100%%%%的的的的圣诞节奖金圣诞节奖金圣诞节奖金圣诞节奖金。。。。

Page 10: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

10测试设计技术 版权所有©郑文强

测试开发过程测试开发过程测试开发过程测试开发过程

步骤步骤步骤步骤1::::测试条件标识测试条件标识测试条件标识测试条件标识

测试条件标识测试条件标识测试条件标识测试条件标识,,,,简单的说简单的说简单的说简单的说,,,,就是确定测试什么就是确定测试什么就是确定测试什么就是确定测试什么????需需需需求文档中的需求条目求文档中的需求条目求文档中的需求条目求文档中的需求条目,,,,我们可以认为是测试条件我们可以认为是测试条件我们可以认为是测试条件我们可以认为是测试条件!!!!

测试条件标识测试条件标识测试条件标识测试条件标识,,,,简单的说简单的说简单的说简单的说,,,,就是确定测试什么就是确定测试什么就是确定测试什么就是确定测试什么????需需需需求文档中的需求条目求文档中的需求条目求文档中的需求条目求文档中的需求条目,,,,我们可以认为是测试条件我们可以认为是测试条件我们可以认为是测试条件我们可以认为是测试条件!!!!

我们测试什么我们测试什么我们测试什么我们测试什么::::圣诞节我的奖金是多少圣诞节我的奖金是多少圣诞节我的奖金是多少圣诞节我的奖金是多少????我们测试什么我们测试什么我们测试什么我们测试什么::::圣诞节我的奖金是多少圣诞节我的奖金是多少圣诞节我的奖金是多少圣诞节我的奖金是多少????

Page 11: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

11测试设计技术 版权所有©郑文强

测试开发过程测试开发过程测试开发过程测试开发过程

步骤步骤步骤步骤2::::测试用例设计测试用例设计测试用例设计测试用例设计

测试用例设计说明如何来识别测试什么测试用例设计说明如何来识别测试什么测试用例设计说明如何来识别测试什么测试用例设计说明如何来识别测试什么????即如何详即如何详即如何详即如何详细识别需求中的测试条件细识别需求中的测试条件细识别需求中的测试条件细识别需求中的测试条件!!!!

测试用例设计说明如何来识别测试什么测试用例设计说明如何来识别测试什么测试用例设计说明如何来识别测试什么测试用例设计说明如何来识别测试什么????即如何详即如何详即如何详即如何详细识别需求中的测试条件细识别需求中的测试条件细识别需求中的测试条件细识别需求中的测试条件!!!!

白盒测试设计技术白盒测试设计技术白盒测试设计技术白盒测试设计技术

�语句覆盖语句覆盖语句覆盖语句覆盖

�分支覆盖分支覆盖分支覆盖分支覆盖

�条件覆盖条件覆盖条件覆盖条件覆盖

�路径覆盖路径覆盖路径覆盖路径覆盖

�……

白盒测试设计技术白盒测试设计技术白盒测试设计技术白盒测试设计技术

�语句覆盖语句覆盖语句覆盖语句覆盖

�分支覆盖分支覆盖分支覆盖分支覆盖

�条件覆盖条件覆盖条件覆盖条件覆盖

�路径覆盖路径覆盖路径覆盖路径覆盖

�……

黑盒测试设计技术黑盒测试设计技术黑盒测试设计技术黑盒测试设计技术

�等价类划分等价类划分等价类划分等价类划分

�边界值技术边界值技术边界值技术边界值技术

�因果图和决策表因果图和决策表因果图和决策表因果图和决策表

�状态转换测试状态转换测试状态转换测试状态转换测试

�……

黑盒测试设计技术黑盒测试设计技术黑盒测试设计技术黑盒测试设计技术

�等价类划分等价类划分等价类划分等价类划分

�边界值技术边界值技术边界值技术边界值技术

�因果图和决策表因果图和决策表因果图和决策表因果图和决策表

�状态转换测试状态转换测试状态转换测试状态转换测试

�……

Page 12: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

12测试设计技术 版权所有©郑文强

测试开发过程测试开发过程测试开发过程测试开发过程

步骤步骤步骤步骤3::::测试用例实现测试用例实现测试用例实现测试用例实现

测试用例实现得到的是详细的测试用例步骤测试用例实现得到的是详细的测试用例步骤测试用例实现得到的是详细的测试用例步骤测试用例实现得到的是详细的测试用例步骤!!!!测试用例实现得到的是详细的测试用例步骤测试用例实现得到的是详细的测试用例步骤测试用例实现得到的是详细的测试用例步骤测试用例实现得到的是详细的测试用例步骤!!!!

测试用例详细步骤包括测试用例详细步骤包括测试用例详细步骤包括测试用例详细步骤包括::::

�测试前置条件测试前置条件测试前置条件测试前置条件

�测试输入测试输入测试输入测试输入

�测试数据测试数据测试数据测试数据

�测试预期结果测试预期结果测试预期结果测试预期结果

�测试后置条件测试后置条件测试后置条件测试后置条件

�……

测试用例详细步骤包括测试用例详细步骤包括测试用例详细步骤包括测试用例详细步骤包括::::

�测试前置条件测试前置条件测试前置条件测试前置条件

�测试输入测试输入测试输入测试输入

�测试数据测试数据测试数据测试数据

�测试预期结果测试预期结果测试预期结果测试预期结果

�测试后置条件测试后置条件测试后置条件测试后置条件

�……

Page 13: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

13测试设计技术 版权所有©郑文强

测试开发过程测试开发过程测试开发过程测试开发过程

步骤步骤步骤步骤4::::测试用例执行测试用例执行测试用例执行测试用例执行

测试用例执行是通过运行测试用例来对系统进行测试用例执行是通过运行测试用例来对系统进行测试用例执行是通过运行测试用例来对系统进行测试用例执行是通过运行测试用例来对系统进行测试测试测试测试!!!!

测试用例执行是通过运行测试用例来对系统进行测试用例执行是通过运行测试用例来对系统进行测试用例执行是通过运行测试用例来对系统进行测试用例执行是通过运行测试用例来对系统进行测试测试测试测试!!!!

自动化测试自动化测试自动化测试自动化测试自动化测试自动化测试自动化测试自动化测试

输输输输入入入入测测测测试试试试数数数数据据据据

输输输输入入入入测测测测试试试试数数数数据据据据

手工测试手工测试手工测试手工测试手工测试手工测试手工测试手工测试

检检检检查查查查测测测测试试试试输输输输出出出出

检检检检查查查查测测测测试试试试输输输输出出出出

比比比比较较较较测测测测试试试试结结结结果果果果

比比比比较较较较测测测测试试试试结结结结果果果果

测测测测试试试试环环环环境境境境搭搭搭搭建建建建

测测测测试试试试环环环环境境境境搭搭搭搭建建建建

提提提提交交交交缺缺缺缺陷陷陷陷报报报报告告告告

提提提提交交交交缺缺缺缺陷陷陷陷报报报报告告告告

Page 14: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

14测试设计技术 版权所有©郑文强

测试开发过程测试开发过程测试开发过程测试开发过程

步骤步骤步骤步骤5::::测试用例管理测试用例管理测试用例管理测试用例管理

测试用例管理是如何来组织测试用例管理是如何来组织测试用例管理是如何来组织测试用例管理是如何来组织、、、、跟踪和维护测试用跟踪和维护测试用跟踪和维护测试用跟踪和维护测试用例过程例过程例过程例过程 !!!!

测试用例管理是如何来组织测试用例管理是如何来组织测试用例管理是如何来组织测试用例管理是如何来组织、、、、跟踪和维护测试用跟踪和维护测试用跟踪和维护测试用跟踪和维护测试用例过程例过程例过程例过程 !!!!

测试用例组织测试用例组织测试用例组织测试用例组织测试用例组织测试用例组织测试用例组织测试用例组织 测试用例跟踪测试用例跟踪测试用例跟踪测试用例跟踪测试用例跟踪测试用例跟踪测试用例跟踪测试用例跟踪 测试用例维护测试用例维护测试用例维护测试用例维护测试用例维护测试用例维护测试用例维护测试用例维护

Page 15: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

15测试设计技术 版权所有©郑文强

测试开发过程测试开发过程测试开发过程测试开发过程

测试用例的测试用例的测试用例的测试用例的质量评估质量评估质量评估质量评估

�测试用例与系统需求测试用例与系统需求测试用例与系统需求测试用例与系统需求((((测试条件测试条件测试条件测试条件))))之间进行关之间进行关之间进行关之间进行关联联联联,,,,保证需求的可追溯性保证需求的可追溯性保证需求的可追溯性保证需求的可追溯性;;;;

�确定测试覆盖率确定测试覆盖率确定测试覆盖率确定测试覆盖率

�需求变更对测试设计和测试执行的影响需求变更对测试设计和测试执行的影响需求变更对测试设计和测试执行的影响需求变更对测试设计和测试执行的影响

�测试用例包含明确的测试输出预期结果测试用例包含明确的测试输出预期结果测试用例包含明确的测试输出预期结果测试用例包含明确的测试输出预期结果;;;;

�测试用例在发现缺陷方面的有效性测试用例在发现缺陷方面的有效性测试用例在发现缺陷方面的有效性测试用例在发现缺陷方面的有效性;;;;

�……

Page 16: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

16测试设计技术 版权所有©郑文强

测试开发过程测试开发过程测试开发过程测试开发过程

测试用例的测试用例的测试用例的测试用例的组织组织组织组织

�按照软件功能模块组织按照软件功能模块组织按照软件功能模块组织按照软件功能模块组织;;;;

�按照测试用例的测试类型组织按照测试用例的测试类型组织按照测试用例的测试类型组织按照测试用例的测试类型组织;;;;

�按照测试用例的优先级组织按照测试用例的优先级组织按照测试用例的优先级组织按照测试用例的优先级组织;;;;

�……

Page 17: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

17测试设计技术 版权所有©郑文强

课程内容课程内容课程内容课程内容

1. 测试开发过程测试开发过程测试开发过程测试开发过程

2. 测试设计技术类型测试设计技术类型测试设计技术类型测试设计技术类型

3. 黑盒测试技术黑盒测试技术黑盒测试技术黑盒测试技术

4. 白盒测试技术白盒测试技术白盒测试技术白盒测试技术

5. 基于经验的技术基于经验的技术基于经验的技术基于经验的技术

6. 测试技术的选择测试技术的选择测试技术的选择测试技术的选择

Page 18: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

18测试设计技术 版权所有©郑文强

测试设计技术类型测试设计技术类型测试设计技术类型测试设计技术类型

ISTQB考试知识点考试知识点考试知识点考试知识点

�复述在测试用例设计中复述在测试用例设计中复述在测试用例设计中复述在测试用例设计中,,,,为什么需要采用基于规为什么需要采用基于规为什么需要采用基于规为什么需要采用基于规格说明的测试格说明的测试格说明的测试格说明的测试((((黒盒测试黒盒测试黒盒测试黒盒测试))))和基和基和基和基 于结构的测试于结构的测试于结构的测试于结构的测试((((白盒测试白盒测试白盒测试白盒测试))))的方法的方法的方法的方法????列举出各自比较常用的技列举出各自比较常用的技列举出各自比较常用的技列举出各自比较常用的技术术术术((((K1););););

�解释基于规格说明的测试解释基于规格说明的测试解释基于规格说明的测试解释基于规格说明的测试、、、、基于结构的测试和基基于结构的测试和基基于结构的测试和基基于结构的测试和基于经验的测试三者的特征和区别于经验的测试三者的特征和区别于经验的测试三者的特征和区别于经验的测试三者的特征和区别 ((((K2););););

Page 19: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

19测试设计技术 版权所有©郑文强

测试设计技术类型测试设计技术类型测试设计技术类型测试设计技术类型

测试设计技术的测试设计技术的测试设计技术的测试设计技术的目的目的目的目的

识别测试条件识别测试条件识别测试条件识别测试条件 !!!!识别测试条件识别测试条件识别测试条件识别测试条件 !!!!

获取测试数据获取测试数据获取测试数据获取测试数据 !!!!获取测试数据获取测试数据获取测试数据获取测试数据 !!!!

设计测试用例设计测试用例设计测试用例设计测试用例 !!!!设计测试用例设计测试用例设计测试用例设计测试用例 !!!!

测试的重要目的是尽早发现尽量多的缺陷测试的重要目的是尽早发现尽量多的缺陷测试的重要目的是尽早发现尽量多的缺陷测试的重要目的是尽早发现尽量多的缺陷,,,,而穷尽而穷尽而穷尽而穷尽测试是不可能的测试是不可能的测试是不可能的测试是不可能的。。。。用尽量少的测试用例用尽量少的测试用例用尽量少的测试用例用尽量少的测试用例,,,,发现尽量发现尽量发现尽量发现尽量

多的缺陷多的缺陷多的缺陷多的缺陷����测试设计的主要目的测试设计的主要目的测试设计的主要目的测试设计的主要目的!!!!

测试的重要目的是尽早发现尽量多的缺陷测试的重要目的是尽早发现尽量多的缺陷测试的重要目的是尽早发现尽量多的缺陷测试的重要目的是尽早发现尽量多的缺陷,,,,而穷尽而穷尽而穷尽而穷尽测试是不可能的测试是不可能的测试是不可能的测试是不可能的。。。。用尽量少的测试用例用尽量少的测试用例用尽量少的测试用例用尽量少的测试用例,,,,发现尽量发现尽量发现尽量发现尽量

多的缺陷多的缺陷多的缺陷多的缺陷����测试设计的主要目的测试设计的主要目的测试设计的主要目的测试设计的主要目的!!!!

Page 20: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

20测试设计技术 版权所有©郑文强

测试设计技术类型测试设计技术类型测试设计技术类型测试设计技术类型

静态测试静态测试静态测试静态测试

动态测试动态测试动态测试动态测试

人工检查人工检查人工检查人工检查

静态分析静态分析静态分析静态分析

黑盒测试黑盒测试黑盒测试黑盒测试

白盒测试白盒测试白盒测试白盒测试

软件测试软件测试软件测试软件测试

Page 21: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

21测试设计技术 版权所有©郑文强

测试设计技术类型测试设计技术类型测试设计技术类型测试设计技术类型

黑盒测试技术的黑盒测试技术的黑盒测试技术的黑盒测试技术的定义定义定义定义

�黑盒测试技术是基于系统功能或非功能规格说明黑盒测试技术是基于系统功能或非功能规格说明黑盒测试技术是基于系统功能或非功能规格说明黑盒测试技术是基于系统功能或非功能规格说明来设计或者选择测试用例的技术来设计或者选择测试用例的技术来设计或者选择测试用例的技术来设计或者选择测试用例的技术,,,,不涉及软件内不涉及软件内不涉及软件内不涉及软件内部结构部结构部结构部结构;;;;

�黑盒测试技术包括基于规格说明的测试技术和基黑盒测试技术包括基于规格说明的测试技术和基黑盒测试技术包括基于规格说明的测试技术和基黑盒测试技术包括基于规格说明的测试技术和基于经验的测试技术于经验的测试技术于经验的测试技术于经验的测试技术;;;;

�有的时候有的时候有的时候有的时候,,,,黑盒测试技术又被称为基于规格说明黑盒测试技术又被称为基于规格说明黑盒测试技术又被称为基于规格说明黑盒测试技术又被称为基于规格说明的测试技术的测试技术的测试技术的测试技术;;;;

Page 22: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

22测试设计技术 版权所有©郑文强

测试设计技术类型测试设计技术类型测试设计技术类型测试设计技术类型

基于规格说明测试技术的基于规格说明测试技术的基于规格说明测试技术的基于规格说明测试技术的特征特征特征特征

�使用正式或非正式的模型来描述需要解决的问题使用正式或非正式的模型来描述需要解决的问题使用正式或非正式的模型来描述需要解决的问题使用正式或非正式的模型来描述需要解决的问题、、、、软件或其组件等软件或其组件等软件或其组件等软件或其组件等;;;;

�根据这些模型根据这些模型根据这些模型根据这些模型,,,,可以系统地导出测试用例可以系统地导出测试用例可以系统地导出测试用例可以系统地导出测试用例;;;;

基于经验的测试技术的基于经验的测试技术的基于经验的测试技术的基于经验的测试技术的特征特征特征特征

�测试用例根据参与人员的经验和知识来编写测试用例根据参与人员的经验和知识来编写测试用例根据参与人员的经验和知识来编写测试用例根据参与人员的经验和知识来编写;;;;

�测试人员测试人员测试人员测试人员、、、、开发人员开发人员开发人员开发人员、、、、用户和其他的利益相关者对软用户和其他的利益相关者对软用户和其他的利益相关者对软用户和其他的利益相关者对软件件件件、、、、软件使用和环境等方面所掌握的知识软件使用和环境等方面所掌握的知识软件使用和环境等方面所掌握的知识软件使用和环境等方面所掌握的知识;;;;

�对可能存在的缺陷及其分布情况的了解对可能存在的缺陷及其分布情况的了解对可能存在的缺陷及其分布情况的了解对可能存在的缺陷及其分布情况的了解;;;;

Page 23: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

23测试设计技术 版权所有©郑文强

测试设计技术类型测试设计技术类型测试设计技术类型测试设计技术类型

黑盒测试技术的黑盒测试技术的黑盒测试技术的黑盒测试技术的分类分类分类分类

�等价类技术等价类技术等价类技术等价类技术

�边界值分析边界值分析边界值分析边界值分析

�决策表测试决策表测试决策表测试决策表测试

�状态转换测试状态转换测试状态转换测试状态转换测试

�基于经验的测试基于经验的测试基于经验的测试基于经验的测试

Page 24: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

24测试设计技术 版权所有©郑文强

测试设计技术类型测试设计技术类型测试设计技术类型测试设计技术类型

白盒测试技术的白盒测试技术的白盒测试技术的白盒测试技术的定义定义定义定义

�白盒测试技术是通过分析组件白盒测试技术是通过分析组件白盒测试技术是通过分析组件白盒测试技术是通过分析组件/系统的内部结构系统的内部结构系统的内部结构系统的内部结构来产生和来产生和来产生和来产生和/或选择测试用例的技术或选择测试用例的技术或选择测试用例的技术或选择测试用例的技术;;;;

�白盒测试技术白盒测试技术白盒测试技术白盒测试技术,,,,有时候又叫做结构化测试技术或有时候又叫做结构化测试技术或有时候又叫做结构化测试技术或有时候又叫做结构化测试技术或者基于结构的测试技术者基于结构的测试技术者基于结构的测试技术者基于结构的测试技术,,,,或者基于代码的测试技或者基于代码的测试技或者基于代码的测试技或者基于代码的测试技术术术术;;;;

�白盒测试技术需要熟悉源代码和详细的设计文白盒测试技术需要熟悉源代码和详细的设计文白盒测试技术需要熟悉源代码和详细的设计文白盒测试技术需要熟悉源代码和详细的设计文档档档档,,,,并且以它们作为测试用例设计的输入并且以它们作为测试用例设计的输入并且以它们作为测试用例设计的输入并且以它们作为测试用例设计的输入;;;;

Page 25: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

25测试设计技术 版权所有©郑文强

测试设计技术类型测试设计技术类型测试设计技术类型测试设计技术类型

白盒测试技术的白盒测试技术的白盒测试技术的白盒测试技术的环境环境环境环境

�桩模块桩模块桩模块桩模块::::一个软件组件框架的实现或特殊目的实一个软件组件框架的实现或特殊目的实一个软件组件框架的实现或特殊目的实一个软件组件框架的实现或特殊目的实现现现现,,,,用于开发和测试另一个调用或依赖于该组件用于开发和测试另一个调用或依赖于该组件用于开发和测试另一个调用或依赖于该组件用于开发和测试另一个调用或依赖于该组件的组件的组件的组件的组件。。。。它代替了被调用的组件它代替了被调用的组件它代替了被调用的组件它代替了被调用的组件[IEEE 610];;;;

�驱动模块驱动模块驱动模块驱动模块::::代替某个软件组件来模拟控制和代替某个软件组件来模拟控制和代替某个软件组件来模拟控制和代替某个软件组件来模拟控制和/或或或或调用其他组件或系统的软件或测试工具调用其他组件或系统的软件或测试工具调用其他组件或系统的软件或测试工具调用其他组件或系统的软件或测试工具;;;;

Page 26: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

26测试设计技术 版权所有©郑文强

测试设计技术类型测试设计技术类型测试设计技术类型测试设计技术类型

白盒测试技术的白盒测试技术的白盒测试技术的白盒测试技术的特征特征特征特征

�根据软件的结构信息设计测试用例根据软件的结构信息设计测试用例根据软件的结构信息设计测试用例根据软件的结构信息设计测试用例,,,,比如软件代比如软件代比如软件代比如软件代码和软件设计码和软件设计码和软件设计码和软件设计;;;;

�可以通过已有的测试用例来测量软件的测试覆盖可以通过已有的测试用例来测量软件的测试覆盖可以通过已有的测试用例来测量软件的测试覆盖可以通过已有的测试用例来测量软件的测试覆盖率率率率,,,,并通过白盒测试技术来系统化的导出设计用并通过白盒测试技术来系统化的导出设计用并通过白盒测试技术来系统化的导出设计用并通过白盒测试技术来系统化的导出设计用例例例例,,,,从而提高覆盖率从而提高覆盖率从而提高覆盖率从而提高覆盖率;;;;

Page 27: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

27测试设计技术 版权所有©郑文强

测试设计技术类型测试设计技术类型测试设计技术类型测试设计技术类型

白盒测试技术的白盒测试技术的白盒测试技术的白盒测试技术的分类分类分类分类

�语句覆盖语句覆盖语句覆盖语句覆盖

�判定覆盖判定覆盖判定覆盖判定覆盖

�条件覆盖条件覆盖条件覆盖条件覆盖

�多重条件覆盖多重条件覆盖多重条件覆盖多重条件覆盖

�路径覆盖路径覆盖路径覆盖路径覆盖

Page 28: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

28测试设计技术 版权所有©郑文强

测试设计技术类型测试设计技术类型测试设计技术类型测试设计技术类型

为什么为什么为什么为什么黑盒测试和白盒测试黑盒测试和白盒测试黑盒测试和白盒测试黑盒测试和白盒测试

� 黑盒测试技术只是观察程序的输入黑盒测试技术只是观察程序的输入黑盒测试技术只是观察程序的输入黑盒测试技术只是观察程序的输入/输出行为输出行为输出行为输出行为。。。。测试对象的功能是我们关注的重点测试对象的功能是我们关注的重点测试对象的功能是我们关注的重点测试对象的功能是我们关注的重点。。。。黑盒测试黑盒测试黑盒测试黑盒测试技术经常应用在级别比较高的测试中技术经常应用在级别比较高的测试中技术经常应用在级别比较高的测试中技术经常应用在级别比较高的测试中,,,,尽管也尽管也尽管也尽管也应用在单元测试中应用在单元测试中应用在单元测试中应用在单元测试中,,,,比如测试优先编程比如测试优先编程比如测试优先编程比如测试优先编程、、、、测试测试测试测试驱动开发等驱动开发等驱动开发等驱动开发等;;;;

� 白盒测试技术考虑了测试对象的内部结构白盒测试技术考虑了测试对象的内部结构白盒测试技术考虑了测试对象的内部结构白盒测试技术考虑了测试对象的内部结构((((单单单单元层次元层次元层次元层次、、、、控制流和数据流等控制流和数据流等控制流和数据流等控制流和数据流等)。)。)。)。白盒测试技术白盒测试技术白盒测试技术白盒测试技术一般应用在低级别的测试一般应用在低级别的测试一般应用在低级别的测试一般应用在低级别的测试,,,,比如单元测试和集比如单元测试和集比如单元测试和集比如单元测试和集成测试成测试成测试成测试;;;;

Page 29: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

29测试设计技术 版权所有©郑文强

课程内容课程内容课程内容课程内容

1. 测试开发过程测试开发过程测试开发过程测试开发过程

2. 测试设计技术类型测试设计技术类型测试设计技术类型测试设计技术类型

3. 黑盒测试技术黑盒测试技术黑盒测试技术黑盒测试技术

4. 白盒测试技术白盒测试技术白盒测试技术白盒测试技术

5. 基于经验的技术基于经验的技术基于经验的技术基于经验的技术

6. 测试技术的选择测试技术的选择测试技术的选择测试技术的选择

Page 30: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

30测试设计技术 版权所有©郑文强

黑盒测试技术黑盒测试技术黑盒测试技术黑盒测试技术

ISTQB考试知识点考试知识点考试知识点考试知识点

�使用下列技术对软件模块编写测试用例使用下列技术对软件模块编写测试用例使用下列技术对软件模块编写测试用例使用下列技术对软件模块编写测试用例((((K3):):):):

� :等价类划分等价类划分等价类划分等价类划分(equivalence partitioning)

� :边界值分析边界值分析边界值分析边界值分析(boundary value analysis)

� :决策表测试决策表测试决策表测试决策表测试(decision table testing)

� :状态转换测试状态转换测试状态转换测试状态转换测试(state transition testing)

�理解这四种测试设计技术各自的主要目的理解这四种测试设计技术各自的主要目的理解这四种测试设计技术各自的主要目的理解这四种测试设计技术各自的主要目的,,,,这些这些这些这些技术可以应用于什么测试级别和技术可以应用于什么测试级别和技术可以应用于什么测试级别和技术可以应用于什么测试级别和 测试类型测试类型测试类型测试类型,,,,以及以及以及以及如何测量测试覆盖如何测量测试覆盖如何测量测试覆盖如何测量测试覆盖(test coverage)((((K2););););

�理解用例测试理解用例测试理解用例测试理解用例测试((((use case testing))))的概念和应的概念和应的概念和应的概念和应用这种技术的优点用这种技术的优点用这种技术的优点用这种技术的优点((((K2););););

Page 31: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

31测试设计技术 版权所有©郑文强

等价类划分等价类划分等价类划分等价类划分

等价类划分技术的等价类划分技术的等价类划分技术的等价类划分技术的定义定义定义定义

等价类划分技术等价类划分技术等价类划分技术等价类划分技术把所有可能的输入数据把所有可能的输入数据把所有可能的输入数据把所有可能的输入数据,,,,即软件或即软件或即软件或即软件或者系统的输入域划分成若干部分者系统的输入域划分成若干部分者系统的输入域划分成若干部分者系统的输入域划分成若干部分,,,,然后从每一部分然后从每一部分然后从每一部分然后从每一部分中选取少数有代表性的数据做为测试用例的输入数中选取少数有代表性的数据做为测试用例的输入数中选取少数有代表性的数据做为测试用例的输入数中选取少数有代表性的数据做为测试用例的输入数据据据据!!!!

等价类划分技术等价类划分技术等价类划分技术等价类划分技术把所有可能的输入数据把所有可能的输入数据把所有可能的输入数据把所有可能的输入数据,,,,即软件或即软件或即软件或即软件或者系统的输入域划分成若干部分者系统的输入域划分成若干部分者系统的输入域划分成若干部分者系统的输入域划分成若干部分,,,,然后从每一部分然后从每一部分然后从每一部分然后从每一部分中选取少数有代表性的数据做为测试用例的输入数中选取少数有代表性的数据做为测试用例的输入数中选取少数有代表性的数据做为测试用例的输入数中选取少数有代表性的数据做为测试用例的输入数据据据据!!!!

等价类划分技术等价类划分技术等价类划分技术等价类划分技术可以应用在所有的测试级别中可以应用在所有的测试级别中可以应用在所有的测试级别中可以应用在所有的测试级别中!!!!等价类划分技术等价类划分技术等价类划分技术等价类划分技术可以应用在所有的测试级别中可以应用在所有的测试级别中可以应用在所有的测试级别中可以应用在所有的测试级别中!!!!

Page 32: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

32测试设计技术 版权所有©郑文强

等价类划分等价类划分等价类划分等价类划分

等价类的等价类的等价类的等价类的含义含义含义含义

等价类等价类等价类等价类是指某个输入域的子集合是指某个输入域的子集合是指某个输入域的子集合是指某个输入域的子集合。。。。在该子集合中在该子集合中在该子集合中在该子集合中,,,,各个输入数据对于揭露程序中的错误都是等效的各个输入数据对于揭露程序中的错误都是等效的各个输入数据对于揭露程序中的错误都是等效的各个输入数据对于揭露程序中的错误都是等效的。。。。测试某等价类的代表值就等价于对这一类其它值的测试某等价类的代表值就等价于对这一类其它值的测试某等价类的代表值就等价于对这一类其它值的测试某等价类的代表值就等价于对这一类其它值的测试测试测试测试!!!!

等价类等价类等价类等价类是指某个输入域的子集合是指某个输入域的子集合是指某个输入域的子集合是指某个输入域的子集合。。。。在该子集合中在该子集合中在该子集合中在该子集合中,,,,各个输入数据对于揭露程序中的错误都是等效的各个输入数据对于揭露程序中的错误都是等效的各个输入数据对于揭露程序中的错误都是等效的各个输入数据对于揭露程序中的错误都是等效的。。。。测试某等价类的代表值就等价于对这一类其它值的测试某等价类的代表值就等价于对这一类其它值的测试某等价类的代表值就等价于对这一类其它值的测试某等价类的代表值就等价于对这一类其它值的测试测试测试测试!!!!

从测试人员的角度从测试人员的角度从测试人员的角度从测试人员的角度,,,,等价类等价类等价类等价类对揭露软件或者系统中对揭露软件或者系统中对揭露软件或者系统中对揭露软件或者系统中的缺陷来说的缺陷来说的缺陷来说的缺陷来说,,,,集合中的每个输入条件是等效的集合中的每个输入条件是等效的集合中的每个输入条件是等效的集合中的每个输入条件是等效的!!!!

从测试人员的角度从测试人员的角度从测试人员的角度从测试人员的角度,,,,等价类等价类等价类等价类对揭露软件或者系统中对揭露软件或者系统中对揭露软件或者系统中对揭露软件或者系统中的缺陷来说的缺陷来说的缺陷来说的缺陷来说,,,,集合中的每个输入条件是等效的集合中的每个输入条件是等效的集合中的每个输入条件是等效的集合中的每个输入条件是等效的!!!!

Page 33: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

33测试设计技术 版权所有©郑文强

等价类划分等价类划分等价类划分等价类划分

等价类的等价类的等价类的等价类的类型类型类型类型

有效等价类有效等价类有效等价类有效等价类

是指对于软件或者系统是指对于软件或者系统是指对于软件或者系统是指对于软件或者系统的规格说明来说的规格说明来说的规格说明来说的规格说明来说,,,,是合是合是合是合理的理的理的理的,,,,有意义的输入数有意义的输入数有意义的输入数有意义的输入数据构成的集合据构成的集合据构成的集合据构成的集合!!!!

有效等价类有效等价类有效等价类有效等价类

是指对于软件或者系统是指对于软件或者系统是指对于软件或者系统是指对于软件或者系统的规格说明来说的规格说明来说的规格说明来说的规格说明来说,,,,是合是合是合是合理的理的理的理的,,,,有意义的输入数有意义的输入数有意义的输入数有意义的输入数据构成的集合据构成的集合据构成的集合据构成的集合!!!!

无效等价类无效等价类无效等价类无效等价类

是指对于软件或者系统是指对于软件或者系统是指对于软件或者系统是指对于软件或者系统的规格说明来说的规格说明来说的规格说明来说的规格说明来说,,,,是不是不是不是不合理的合理的合理的合理的,,,,无意义的输入无意义的输入无意义的输入无意义的输入数据构成的集合数据构成的集合数据构成的集合数据构成的集合!!!!

无效等价类无效等价类无效等价类无效等价类

是指对于软件或者系统是指对于软件或者系统是指对于软件或者系统是指对于软件或者系统的规格说明来说的规格说明来说的规格说明来说的规格说明来说,,,,是不是不是不是不合理的合理的合理的合理的,,,,无意义的输入无意义的输入无意义的输入无意义的输入数据构成的集合数据构成的集合数据构成的集合数据构成的集合!!!!

在设计测试用例时在设计测试用例时在设计测试用例时在设计测试用例时,,,,要同时考虑有效等价类和无效要同时考虑有效等价类和无效要同时考虑有效等价类和无效要同时考虑有效等价类和无效等价类的设计等价类的设计等价类的设计等价类的设计!!!!

在设计测试用例时在设计测试用例时在设计测试用例时在设计测试用例时,,,,要同时考虑有效等价类和无效要同时考虑有效等价类和无效要同时考虑有效等价类和无效要同时考虑有效等价类和无效等价类的设计等价类的设计等价类的设计等价类的设计!!!!

Page 34: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

34测试设计技术 版权所有©郑文强

等价列划分等价列划分等价列划分等价列划分

等价类划分的等价类划分的等价类划分的等价类划分的原则原则原则原则1

如果输入条件规定了连续的取值范围如果输入条件规定了连续的取值范围如果输入条件规定了连续的取值范围如果输入条件规定了连续的取值范围,,,,则可以创建则可以创建则可以创建则可以创建一个有效等价类和两个无效等价类一个有效等价类和两个无效等价类一个有效等价类和两个无效等价类一个有效等价类和两个无效等价类;;;;

等价类划分的等价类划分的等价类划分的等价类划分的原则原则原则原则1

如果输入条件规定了连续的取值范围如果输入条件规定了连续的取值范围如果输入条件规定了连续的取值范围如果输入条件规定了连续的取值范围,,,,则可以创建则可以创建则可以创建则可以创建一个有效等价类和两个无效等价类一个有效等价类和两个无效等价类一个有效等价类和两个无效等价类一个有效等价类和两个无效等价类;;;;

等价类划分的等价类划分的等价类划分的等价类划分的例子例子例子例子

月工资参数月工资参数月工资参数月工资参数x的取值范围是的取值范围是的取值范围是的取值范围是1000到到到到20000;;;;

� 有效等价类有效等价类有效等价类有效等价类::::1000 ≤ x ≤ 20000;;;;

� 无效等价类无效等价类无效等价类无效等价类::::x < 1000或者或者或者或者x > 20000;;;;

等价类划分的等价类划分的等价类划分的等价类划分的例子例子例子例子

月工资参数月工资参数月工资参数月工资参数x的取值范围是的取值范围是的取值范围是的取值范围是1000到到到到20000;;;;

� 有效等价类有效等价类有效等价类有效等价类::::1000 ≤ x ≤ 20000;;;;

� 无效等价类无效等价类无效等价类无效等价类::::x < 1000或者或者或者或者x > 20000;;;;

Page 35: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

35测试设计技术 版权所有©郑文强

等价类划分等价类划分等价类划分等价类划分

等价类划分的等价类划分的等价类划分的等价类划分的原则原则原则原则2

假如描述的是允许数值的范围假如描述的是允许数值的范围假如描述的是允许数值的范围假如描述的是允许数值的范围((((离散的数字离散的数字离散的数字离散的数字),),),),则则则则可以创建一个有效等价类可以创建一个有效等价类可以创建一个有效等价类可以创建一个有效等价类((((所有可能的有效值所有可能的有效值所有可能的有效值所有可能的有效值),),),),和两个无效等价类和两个无效等价类和两个无效等价类和两个无效等价类((((少于和多于有效的个数少于和多于有效的个数少于和多于有效的个数少于和多于有效的个数););););

等价类划分的等价类划分的等价类划分的等价类划分的原则原则原则原则2

假如描述的是允许数值的范围假如描述的是允许数值的范围假如描述的是允许数值的范围假如描述的是允许数值的范围((((离散的数字离散的数字离散的数字离散的数字),),),),则则则则可以创建一个有效等价类可以创建一个有效等价类可以创建一个有效等价类可以创建一个有效等价类((((所有可能的有效值所有可能的有效值所有可能的有效值所有可能的有效值),),),),和两个无效等价类和两个无效等价类和两个无效等价类和两个无效等价类((((少于和多于有效的个数少于和多于有效的个数少于和多于有效的个数少于和多于有效的个数););););

等价类划分的等价类划分的等价类划分的等价类划分的例子例子例子例子

注册的用户名的组成应该是注册的用户名的组成应该是注册的用户名的组成应该是注册的用户名的组成应该是6至至至至12位的字符串位的字符串位的字符串位的字符串::::

� 有效等价类有效等价类有效等价类有效等价类:::: 6 ≤ 用户名长度用户名长度用户名长度用户名长度≤ 12;;;;

� 无效等价类无效等价类无效等价类无效等价类::::用户名长度大于用户名长度大于用户名长度大于用户名长度大于12或者小于或者小于或者小于或者小于6;;;;

等价类划分的等价类划分的等价类划分的等价类划分的例子例子例子例子

注册的用户名的组成应该是注册的用户名的组成应该是注册的用户名的组成应该是注册的用户名的组成应该是6至至至至12位的字符串位的字符串位的字符串位的字符串::::

� 有效等价类有效等价类有效等价类有效等价类:::: 6 ≤ 用户名长度用户名长度用户名长度用户名长度≤ 12;;;;

� 无效等价类无效等价类无效等价类无效等价类::::用户名长度大于用户名长度大于用户名长度大于用户名长度大于12或者小于或者小于或者小于或者小于6;;;;

Page 36: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

36测试设计技术 版权所有©郑文强

等价类划分等价类划分等价类划分等价类划分

等价类划分的等价类划分的等价类划分的等价类划分的原则原则原则原则3

假如输入数据规定的是一组值假如输入数据规定的是一组值假如输入数据规定的是一组值假如输入数据规定的是一组值((((假定假定假定假定n个个个个)))),并且软并且软并且软并且软件对每一个输入值分别处理的情况下件对每一个输入值分别处理的情况下件对每一个输入值分别处理的情况下件对每一个输入值分别处理的情况下,可确立可确立可确立可确立n个有个有个有个有效等价类和一个无效等价类效等价类和一个无效等价类效等价类和一个无效等价类效等价类和一个无效等价类;;;;

等价类划分的等价类划分的等价类划分的等价类划分的原则原则原则原则3

假如输入数据规定的是一组值假如输入数据规定的是一组值假如输入数据规定的是一组值假如输入数据规定的是一组值((((假定假定假定假定n个个个个)))),并且软并且软并且软并且软件对每一个输入值分别处理的情况下件对每一个输入值分别处理的情况下件对每一个输入值分别处理的情况下件对每一个输入值分别处理的情况下,可确立可确立可确立可确立n个有个有个有个有效等价类和一个无效等价类效等价类和一个无效等价类效等价类和一个无效等价类效等价类和一个无效等价类;;;;

等价类划分的等价类划分的等价类划分的等价类划分的例子例子例子例子

根据学历来定岗位工资根据学历来定岗位工资根据学历来定岗位工资根据学历来定岗位工资,,,,学历可为学历可为学历可为学历可为:专科专科专科专科、、、、本科本科本科本科、、、、硕士硕士硕士硕士、、、、博士四种之一博士四种之一博士四种之一博士四种之一。。。。

�有效等价类有效等价类有效等价类有效等价类::::专科专科专科专科、、、、本科本科本科本科、、、、硕士硕士硕士硕士、、、、博士四个等博士四个等博士四个等博士四个等价类价类价类价类;;;;

�无效等价类无效等价类无效等价类无效等价类::::其他的学历其他的学历其他的学历其他的学历;;;;

等价类划分的等价类划分的等价类划分的等价类划分的例子例子例子例子

根据学历来定岗位工资根据学历来定岗位工资根据学历来定岗位工资根据学历来定岗位工资,,,,学历可为学历可为学历可为学历可为:专科专科专科专科、、、、本科本科本科本科、、、、硕士硕士硕士硕士、、、、博士四种之一博士四种之一博士四种之一博士四种之一。。。。

�有效等价类有效等价类有效等价类有效等价类::::专科专科专科专科、、、、本科本科本科本科、、、、硕士硕士硕士硕士、、、、博士四个等博士四个等博士四个等博士四个等价类价类价类价类;;;;

�无效等价类无效等价类无效等价类无效等价类::::其他的学历其他的学历其他的学历其他的学历;;;;

Page 37: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

37测试设计技术 版权所有©郑文强

等价类划分等价类划分等价类划分等价类划分

等价类划分的等价类划分的等价类划分的等价类划分的原则原则原则原则4

假如输入数据规定的是一组值假如输入数据规定的是一组值假如输入数据规定的是一组值假如输入数据规定的是一组值((((假定假定假定假定n个个个个)))),并且软并且软并且软并且软件对每个输入值都一样的处理件对每个输入值都一样的处理件对每个输入值都一样的处理件对每个输入值都一样的处理,可确立一个有效等可确立一个有效等可确立一个有效等可确立一个有效等价类和一个无效等价类价类和一个无效等价类价类和一个无效等价类价类和一个无效等价类;;;;

等价类划分的等价类划分的等价类划分的等价类划分的原则原则原则原则4

假如输入数据规定的是一组值假如输入数据规定的是一组值假如输入数据规定的是一组值假如输入数据规定的是一组值((((假定假定假定假定n个个个个)))),并且软并且软并且软并且软件对每个输入值都一样的处理件对每个输入值都一样的处理件对每个输入值都一样的处理件对每个输入值都一样的处理,可确立一个有效等可确立一个有效等可确立一个有效等可确立一个有效等价类和一个无效等价类价类和一个无效等价类价类和一个无效等价类价类和一个无效等价类;;;;

等价类划分的等价类划分的等价类划分的等价类划分的例子例子例子例子

预订飞机票的人可以是预订飞机票的人可以是预订飞机票的人可以是预订飞机票的人可以是::::小孩小孩小孩小孩、、、、青少年青少年青少年青少年、、、、成人成人成人成人、、、、学学学学生生生生、、、、残疾人或者退休人员残疾人或者退休人员残疾人或者退休人员残疾人或者退休人员,,,,软件处理方式一样软件处理方式一样软件处理方式一样软件处理方式一样;;;;

�有效等价类有效等价类有效等价类有效等价类::::列表中的任何一个列表中的任何一个列表中的任何一个列表中的任何一个;;;;

�无效等价类无效等价类无效等价类无效等价类::::不包含在列表中的其他类型不包含在列表中的其他类型不包含在列表中的其他类型不包含在列表中的其他类型;;;;

等价类划分的等价类划分的等价类划分的等价类划分的例子例子例子例子

预订飞机票的人可以是预订飞机票的人可以是预订飞机票的人可以是预订飞机票的人可以是::::小孩小孩小孩小孩、、、、青少年青少年青少年青少年、、、、成人成人成人成人、、、、学学学学生生生生、、、、残疾人或者退休人员残疾人或者退休人员残疾人或者退休人员残疾人或者退休人员,,,,软件处理方式一样软件处理方式一样软件处理方式一样软件处理方式一样;;;;

�有效等价类有效等价类有效等价类有效等价类::::列表中的任何一个列表中的任何一个列表中的任何一个列表中的任何一个;;;;

�无效等价类无效等价类无效等价类无效等价类::::不包含在列表中的其他类型不包含在列表中的其他类型不包含在列表中的其他类型不包含在列表中的其他类型;;;;

Page 38: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

38测试设计技术 版权所有©郑文强

等价类划分等价类划分等价类划分等价类划分

等价类划分的等价类划分的等价类划分的等价类划分的原则原则原则原则5

在规定了输入数据必须遵守的规则的情况下在规定了输入数据必须遵守的规则的情况下在规定了输入数据必须遵守的规则的情况下在规定了输入数据必须遵守的规则的情况下,可确可确可确可确立一个有效等价类立一个有效等价类立一个有效等价类立一个有效等价类((((符合规则符合规则符合规则符合规则))))和若干个无效等价和若干个无效等价和若干个无效等价和若干个无效等价类类类类((((从不同角度违反规则从不同角度违反规则从不同角度违反规则从不同角度违反规则););););

等价类划分的等价类划分的等价类划分的等价类划分的原则原则原则原则5

在规定了输入数据必须遵守的规则的情况下在规定了输入数据必须遵守的规则的情况下在规定了输入数据必须遵守的规则的情况下在规定了输入数据必须遵守的规则的情况下,可确可确可确可确立一个有效等价类立一个有效等价类立一个有效等价类立一个有效等价类((((符合规则符合规则符合规则符合规则))))和若干个无效等价和若干个无效等价和若干个无效等价和若干个无效等价类类类类((((从不同角度违反规则从不同角度违反规则从不同角度违反规则从不同角度违反规则););););

等价类划分的等价类划分的等价类划分的等价类划分的例子例子例子例子

函数变量名必须以字母开头函数变量名必须以字母开头函数变量名必须以字母开头函数变量名必须以字母开头,,,,并且长度为并且长度为并且长度为并且长度为8;;;;

�有效等价类有效等价类有效等价类有效等价类::::字母开头字母开头字母开头字母开头,,,,长度为长度为长度为长度为8;;;;

�无效等价类无效等价类无效等价类无效等价类::::不是以字母开头不是以字母开头不是以字母开头不是以字母开头,,,,或长度不是或长度不是或长度不是或长度不是8;;;;

等价类划分的等价类划分的等价类划分的等价类划分的例子例子例子例子

函数变量名必须以字母开头函数变量名必须以字母开头函数变量名必须以字母开头函数变量名必须以字母开头,,,,并且长度为并且长度为并且长度为并且长度为8;;;;

�有效等价类有效等价类有效等价类有效等价类::::字母开头字母开头字母开头字母开头,,,,长度为长度为长度为长度为8;;;;

�无效等价类无效等价类无效等价类无效等价类::::不是以字母开头不是以字母开头不是以字母开头不是以字母开头,,,,或长度不是或长度不是或长度不是或长度不是8;;;;

Page 39: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

39测试设计技术 版权所有©郑文强

等价类划分等价类划分等价类划分等价类划分

等价类划分的等价类划分的等价类划分的等价类划分的原则原则原则原则6

在输入条件是一个布尔量的情况下在输入条件是一个布尔量的情况下在输入条件是一个布尔量的情况下在输入条件是一个布尔量的情况下,可确定一个有可确定一个有可确定一个有可确定一个有效等价类和一个无效等价类效等价类和一个无效等价类效等价类和一个无效等价类效等价类和一个无效等价类;;;;

等价类划分的等价类划分的等价类划分的等价类划分的原则原则原则原则6

在输入条件是一个布尔量的情况下在输入条件是一个布尔量的情况下在输入条件是一个布尔量的情况下在输入条件是一个布尔量的情况下,可确定一个有可确定一个有可确定一个有可确定一个有效等价类和一个无效等价类效等价类和一个无效等价类效等价类和一个无效等价类效等价类和一个无效等价类;;;;

等价类划分的等价类划分的等价类划分的等价类划分的例子例子例子例子

在论坛中注册用户的时候在论坛中注册用户的时候在论坛中注册用户的时候在论坛中注册用户的时候,,,,需要判断是否接受用户需要判断是否接受用户需要判断是否接受用户需要判断是否接受用户协议协议协议协议;;;;

�有效等价类有效等价类有效等价类有效等价类::::接受协议接受协议接受协议接受协议;;;;

�无效等价类无效等价类无效等价类无效等价类::::不接受协议不接受协议不接受协议不接受协议;;;;

等价类划分的等价类划分的等价类划分的等价类划分的例子例子例子例子

在论坛中注册用户的时候在论坛中注册用户的时候在论坛中注册用户的时候在论坛中注册用户的时候,,,,需要判断是否接受用户需要判断是否接受用户需要判断是否接受用户需要判断是否接受用户协议协议协议协议;;;;

�有效等价类有效等价类有效等价类有效等价类::::接受协议接受协议接受协议接受协议;;;;

�无效等价类无效等价类无效等价类无效等价类::::不接受协议不接受协议不接受协议不接受协议;;;;

Page 40: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

40测试设计技术 版权所有©郑文强

等价类划分等价类划分等价类划分等价类划分

等价类划分的等价类划分的等价类划分的等价类划分的原则原则原则原则7

在输入条件规定了输入值的集合或者规定了在输入条件规定了输入值的集合或者规定了在输入条件规定了输入值的集合或者规定了在输入条件规定了输入值的集合或者规定了"必须必须必须必须如何如何如何如何"的条件的情况下的条件的情况下的条件的情况下的条件的情况下,可确立一个有效等价类和一可确立一个有效等价类和一可确立一个有效等价类和一可确立一个有效等价类和一个无效等价类个无效等价类个无效等价类个无效等价类;;;;

等价类划分的等价类划分的等价类划分的等价类划分的原则原则原则原则7

在输入条件规定了输入值的集合或者规定了在输入条件规定了输入值的集合或者规定了在输入条件规定了输入值的集合或者规定了在输入条件规定了输入值的集合或者规定了"必须必须必须必须如何如何如何如何"的条件的情况下的条件的情况下的条件的情况下的条件的情况下,可确立一个有效等价类和一可确立一个有效等价类和一可确立一个有效等价类和一可确立一个有效等价类和一个无效等价类个无效等价类个无效等价类个无效等价类;;;;

等价类划分的等价类划分的等价类划分的等价类划分的例子例子例子例子

变量标识必须是以字母开头的字符串变量标识必须是以字母开头的字符串变量标识必须是以字母开头的字符串变量标识必须是以字母开头的字符串;;;;

�有效等价类有效等价类有效等价类有效等价类::::以字母开头的字符串以字母开头的字符串以字母开头的字符串以字母开头的字符串;;;;

�无效等价类无效等价类无效等价类无效等价类::::不是以字母开头的其他类型不是以字母开头的其他类型不是以字母开头的其他类型不是以字母开头的其他类型;;;;

等价类划分的等价类划分的等价类划分的等价类划分的例子例子例子例子

变量标识必须是以字母开头的字符串变量标识必须是以字母开头的字符串变量标识必须是以字母开头的字符串变量标识必须是以字母开头的字符串;;;;

�有效等价类有效等价类有效等价类有效等价类::::以字母开头的字符串以字母开头的字符串以字母开头的字符串以字母开头的字符串;;;;

�无效等价类无效等价类无效等价类无效等价类::::不是以字母开头的其他类型不是以字母开头的其他类型不是以字母开头的其他类型不是以字母开头的其他类型;;;;

Page 41: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

41测试设计技术 版权所有©郑文强

等价类划分等价类划分等价类划分等价类划分

等价类划分的等价类划分的等价类划分的等价类划分的原则原则原则原则8

在确知已划分的等价类中各元素在程序处理中的方在确知已划分的等价类中各元素在程序处理中的方在确知已划分的等价类中各元素在程序处理中的方在确知已划分的等价类中各元素在程序处理中的方式不同的情况下式不同的情况下式不同的情况下式不同的情况下,则应再将该等价类进一步的划分则应再将该等价类进一步的划分则应再将该等价类进一步的划分则应再将该等价类进一步的划分为更小的等价类为更小的等价类为更小的等价类为更小的等价类;;;;

等价类划分的等价类划分的等价类划分的等价类划分的原则原则原则原则8

在确知已划分的等价类中各元素在程序处理中的方在确知已划分的等价类中各元素在程序处理中的方在确知已划分的等价类中各元素在程序处理中的方在确知已划分的等价类中各元素在程序处理中的方式不同的情况下式不同的情况下式不同的情况下式不同的情况下,则应再将该等价类进一步的划分则应再将该等价类进一步的划分则应再将该等价类进一步的划分则应再将该等价类进一步的划分为更小的等价类为更小的等价类为更小的等价类为更小的等价类;;;;

等价类划分的等价类划分的等价类划分的等价类划分的例子例子例子例子

比如比如比如比如::::在在在在ATM取款时取款时取款时取款时,,,,首先依据卡是否有效划分首先依据卡是否有效划分首先依据卡是否有效划分首先依据卡是否有效划分等价类等价类等价类等价类,,,,对于卡有效的情况再进一步划分子等价对于卡有效的情况再进一步划分子等价对于卡有效的情况再进一步划分子等价对于卡有效的情况再进一步划分子等价类类类类,,,,如依据提款金额是否在允许范围内如依据提款金额是否在允许范围内如依据提款金额是否在允许范围内如依据提款金额是否在允许范围内,,,,ATM机机机机余额是否充足等再划分等价类余额是否充足等再划分等价类余额是否充足等再划分等价类余额是否充足等再划分等价类;;;;

等价类划分的等价类划分的等价类划分的等价类划分的例子例子例子例子

比如比如比如比如::::在在在在ATM取款时取款时取款时取款时,,,,首先依据卡是否有效划分首先依据卡是否有效划分首先依据卡是否有效划分首先依据卡是否有效划分等价类等价类等价类等价类,,,,对于卡有效的情况再进一步划分子等价对于卡有效的情况再进一步划分子等价对于卡有效的情况再进一步划分子等价对于卡有效的情况再进一步划分子等价类类类类,,,,如依据提款金额是否在允许范围内如依据提款金额是否在允许范围内如依据提款金额是否在允许范围内如依据提款金额是否在允许范围内,,,,ATM机机机机余额是否充足等再划分等价类余额是否充足等再划分等价类余额是否充足等再划分等价类余额是否充足等再划分等价类;;;;

Page 42: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

42测试设计技术 版权所有©郑文强

等价类划分等价类划分等价类划分等价类划分

等价类划分的等价类划分的等价类划分的等价类划分的测试用例测试用例测试用例测试用例

测试对象通常有不只一个输入参数测试对象通常有不只一个输入参数测试对象通常有不只一个输入参数测试对象通常有不只一个输入参数,,,,如何对这如何对这如何对这如何对这些参数等价类进行组合测试些参数等价类进行组合测试些参数等价类进行组合测试些参数等价类进行组合测试,,,,来保证等价类的来保证等价类的来保证等价类的来保证等价类的覆盖率覆盖率覆盖率覆盖率,,,,是我们测试用例设计首先需要考虑的是我们测试用例设计首先需要考虑的是我们测试用例设计首先需要考虑的是我们测试用例设计首先需要考虑的

问题问题问题问题!!!!

Page 43: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

43测试设计技术 版权所有©郑文强

等价类划分等价类划分等价类划分等价类划分

等价类组合的等价类组合的等价类组合的等价类组合的原则原则原则原则

�所有有效等价类的代表值都需要集成到测试用例所有有效等价类的代表值都需要集成到测试用例所有有效等价类的代表值都需要集成到测试用例所有有效等价类的代表值都需要集成到测试用例中中中中,,,,即覆盖有效等价类的所有组合即覆盖有效等价类的所有组合即覆盖有效等价类的所有组合即覆盖有效等价类的所有组合。。。。任何一个组任何一个组任何一个组任何一个组合都将设计成一个有效的测试用例合都将设计成一个有效的测试用例合都将设计成一个有效的测试用例合都将设计成一个有效的测试用例,,,,或者叫正面或者叫正面或者叫正面或者叫正面测试用例测试用例测试用例测试用例;;;;

� 无效等价类的代表值只能和其他有效等价类的无效等价类的代表值只能和其他有效等价类的无效等价类的代表值只能和其他有效等价类的无效等价类的代表值只能和其他有效等价类的代表值代表值代表值代表值((((随意随意随意随意))))进行组合进行组合进行组合进行组合。。。。因此因此因此因此,,,,每个无效等价每个无效等价每个无效等价每个无效等价类将产生一个额外的无效测试用例类将产生一个额外的无效测试用例类将产生一个额外的无效测试用例类将产生一个额外的无效测试用例,,,,或者叫负面或者叫负面或者叫负面或者叫负面测试用例测试用例测试用例测试用例;;;;

Page 44: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

44测试设计技术 版权所有©郑文强

等价类划分等价类划分等价类划分等价类划分

等价类组合的等价类组合的等价类组合的等价类组合的数量数量数量数量

�正面测试用例正面测试用例正面测试用例正面测试用例::::即有效等价类的组合数量即有效等价类的组合数量即有效等价类的组合数量即有效等价类的组合数量,,,,是每是每是每是每个参数等价类数目的乘积个参数等价类数目的乘积个参数等价类数目的乘积个参数等价类数目的乘积;;;;

�负面测试用例负面测试用例负面测试用例负面测试用例::::即无效等价类的组合数量即无效等价类的组合数量即无效等价类的组合数量即无效等价类的组合数量,,,,是每是每是每是每个无效等价类数目之和个无效等价类数目之和个无效等价类数目之和个无效等价类数目之和;;;;

等价类的组合等价类的组合等价类的组合等价类的组合,,,,将产生数以百计的测将产生数以百计的测将产生数以百计的测将产生数以百计的测试用例试用例试用例试用例,,,,如何有效的减少测试用例的如何有效的减少测试用例的如何有效的减少测试用例的如何有效的减少测试用例的

数目数目数目数目????

Page 45: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

45测试设计技术 版权所有©郑文强

等价类划分等价类划分等价类划分等价类划分

等价类测试用例的等价类测试用例的等价类测试用例的等价类测试用例的选择规则选择规则选择规则选择规则

�由所有代表值组合而成的测试用例按使用频率由所有代表值组合而成的测试用例按使用频率由所有代表值组合而成的测试用例按使用频率由所有代表值组合而成的测试用例按使用频率((((典型的典型的典型的典型的使用特征使用特征使用特征使用特征))))进行排序进行排序进行排序进行排序,,,,并按照这个序列设置优先级并按照这个序列设置优先级并按照这个序列设置优先级并按照这个序列设置优先级。。。。这这这这样就能仅对相关的测试用例样就能仅对相关的测试用例样就能仅对相关的测试用例样就能仅对相关的测试用例((((典型的组合典型的组合典型的组合典型的组合))))进行测试进行测试进行测试进行测试;;;;

�优先考虑包含边界值或者边界值组合的测试用例优先考虑包含边界值或者边界值组合的测试用例优先考虑包含边界值或者边界值组合的测试用例优先考虑包含边界值或者边界值组合的测试用例;;;;

�将一个等价类的每个代表值和其他等价类的每个代表值将一个等价类的每个代表值和其他等价类的每个代表值将一个等价类的每个代表值和其他等价类的每个代表值将一个等价类的每个代表值和其他等价类的每个代表值进行组合来设计测试用例进行组合来设计测试用例进行组合来设计测试用例进行组合来设计测试用例((((即双向组合代替完全组即双向组合代替完全组即双向组合代替完全组即双向组合代替完全组合合合合););););

�保证满足最小原则保证满足最小原则保证满足最小原则保证满足最小原则::::一个等价类的每个代表值至少在一一个等价类的每个代表值至少在一一个等价类的每个代表值至少在一一个等价类的每个代表值至少在一个测试用例中出现个测试用例中出现个测试用例中出现个测试用例中出现;;;;

�无效等价类的代表值不与其他无效等价类的代表值进行无效等价类的代表值不与其他无效等价类的代表值进行无效等价类的代表值不与其他无效等价类的代表值进行无效等价类的代表值不与其他无效等价类的代表值进行组合组合组合组合;;;;

Page 46: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

46测试设计技术 版权所有©郑文强

等价类划分等价类划分等价类划分等价类划分

等价类划分等价类划分等价类划分等价类划分出口准则出口准则出口准则出口准则

测试对象计划测试得越彻底测试对象计划测试得越彻底测试对象计划测试得越彻底测试对象计划测试得越彻底,,,,需要的测试覆盖率就需要的测试覆盖率就需要的测试覆盖率就需要的测试覆盖率就会越高会越高会越高会越高。。。。

在测试执行之前在测试执行之前在测试执行之前在测试执行之前,,,,事先定义的覆盖率作为决定测试事先定义的覆盖率作为决定测试事先定义的覆盖率作为决定测试事先定义的覆盖率作为决定测试活动是否足够的一个标准活动是否足够的一个标准活动是否足够的一个标准活动是否足够的一个标准;;;;在测试执行之后在测试执行之后在测试执行之后在测试执行之后,,,,它又它又它又它又作为判断测试强度是否达到要求的一个指标作为判断测试强度是否达到要求的一个指标作为判断测试强度是否达到要求的一个指标作为判断测试强度是否达到要求的一个指标;;;;

Page 47: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

47测试设计技术 版权所有©郑文强

等价类划分等价类划分等价类划分等价类划分

等价类划分等价类划分等价类划分等价类划分的价值的价值的价值的价值

�等价类划分技术可以显著的减少测试用例的数量等价类划分技术可以显著的减少测试用例的数量等价类划分技术可以显著的减少测试用例的数量等价类划分技术可以显著的减少测试用例的数量。。。。因为它的假设条件是等价类范围的任何一个输因为它的假设条件是等价类范围的任何一个输因为它的假设条件是等价类范围的任何一个输因为它的假设条件是等价类范围的任何一个输入入入入,,,,都结果而言都是一样的都结果而言都是一样的都结果而言都是一样的都结果而言都是一样的;;;;

�等价类划分技术不仅仅用来确定方法和函数的输等价类划分技术不仅仅用来确定方法和函数的输等价类划分技术不仅仅用来确定方法和函数的输等价类划分技术不仅仅用来确定方法和函数的输入和输出入和输出入和输出入和输出,,,,也可以用来准备中间值也可以用来准备中间值也可以用来准备中间值也可以用来准备中间值、、、、状态状态状态状态、、、、与时与时与时与时间相关的值间相关的值间相关的值间相关的值((((如事件之前或之后的值如事件之前或之后的值如事件之前或之后的值如事件之前或之后的值))))以及接口以及接口以及接口以及接口参数等参数等参数等参数等;;;;

�等价类划分技术可以应用于任何测试级别等价类划分技术可以应用于任何测试级别等价类划分技术可以应用于任何测试级别等价类划分技术可以应用于任何测试级别::::单元单元单元单元测试测试测试测试、、、、集成测试集成测试集成测试集成测试、、、、系统测试和验收测试系统测试和验收测试系统测试和验收测试系统测试和验收测试;;;;

Page 48: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

48测试设计技术 版权所有©郑文强

等价类划分等价类划分等价类划分等价类划分::::练习练习练习练习

练习的练习的练习的练习的GUI参数参数参数参数取值范围取值范围取值范围取值范围

� Index::::[10001,10006];;;;

� ActorKey::::[1,65535];;;;

� Aggregator Size::::[1,8];;;;

� Aggregator Name::::必须是必须是必须是必须是字母字母字母字母,,,,并且长度不能超过并且长度不能超过并且长度不能超过并且长度不能超过8个个个个;;;;

练习输出练习输出练习输出练习输出

� 输出练习中每个参数的等价类输出练习中每个参数的等价类输出练习中每个参数的等价类输出练习中每个参数的等价类;;;;

� 输出练习的概要测试用例输出练习的概要测试用例输出练习的概要测试用例输出练习的概要测试用例,,,,来覆盖来覆盖来覆盖来覆盖有效等价类和无效等价类有效等价类和无效等价类有效等价类和无效等价类有效等价类和无效等价类;;;;

Page 49: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

49测试设计技术 版权所有©郑文强

边界值分析边界值分析边界值分析边界值分析

边界值分析的边界值分析的边界值分析的边界值分析的定义定义定义定义

边界值分析边界值分析边界值分析边界值分析就是对输入或输出的边界值进行测试的就是对输入或输出的边界值进行测试的就是对输入或输出的边界值进行测试的就是对输入或输出的边界值进行测试的一种黑盒测试方法一种黑盒测试方法一种黑盒测试方法一种黑盒测试方法。。。。通常边界值分析法是作为对等通常边界值分析法是作为对等通常边界值分析法是作为对等通常边界值分析法是作为对等价类划分法的补充价类划分法的补充价类划分法的补充价类划分法的补充,,,,这种情况下这种情况下这种情况下这种情况下,,,,其测试用例来自其测试用例来自其测试用例来自其测试用例来自等价类的边界等价类的边界等价类的边界等价类的边界 !!!!

边界值分析边界值分析边界值分析边界值分析就是对输入或输出的边界值进行测试的就是对输入或输出的边界值进行测试的就是对输入或输出的边界值进行测试的就是对输入或输出的边界值进行测试的一种黑盒测试方法一种黑盒测试方法一种黑盒测试方法一种黑盒测试方法。。。。通常边界值分析法是作为对等通常边界值分析法是作为对等通常边界值分析法是作为对等通常边界值分析法是作为对等价类划分法的补充价类划分法的补充价类划分法的补充价类划分法的补充,,,,这种情况下这种情况下这种情况下这种情况下,,,,其测试用例来自其测试用例来自其测试用例来自其测试用例来自等价类的边界等价类的边界等价类的边界等价类的边界 !!!!

边界值分析方法边界值分析方法边界值分析方法边界值分析方法需要测试边界值以及离边界值最近需要测试边界值以及离边界值最近需要测试边界值以及离边界值最近需要测试边界值以及离边界值最近的上下两个值的上下两个值的上下两个值的上下两个值((((等价类里面的值和等价类外面的等价类里面的值和等价类外面的等价类里面的值和等价类外面的等价类里面的值和等价类外面的值值值值)。)。)。)。因此因此因此因此,,,,通常情况下通常情况下通常情况下通常情况下,,,,对于边界值对于边界值对于边界值对于边界值,,,,一般可以一般可以一般可以一般可以得到得到得到得到3个测试用例个测试用例个测试用例个测试用例!!!!

边界值分析方法边界值分析方法边界值分析方法边界值分析方法需要测试边界值以及离边界值最近需要测试边界值以及离边界值最近需要测试边界值以及离边界值最近需要测试边界值以及离边界值最近的上下两个值的上下两个值的上下两个值的上下两个值((((等价类里面的值和等价类外面的等价类里面的值和等价类外面的等价类里面的值和等价类外面的等价类里面的值和等价类外面的值值值值)。)。)。)。因此因此因此因此,,,,通常情况下通常情况下通常情况下通常情况下,,,,对于边界值对于边界值对于边界值对于边界值,,,,一般可以一般可以一般可以一般可以得到得到得到得到3个测试用例个测试用例个测试用例个测试用例!!!!

Page 50: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

50测试设计技术 版权所有©郑文强

边界值分析边界值分析边界值分析边界值分析

边界值分析的边界值分析的边界值分析的边界值分析的理由理由理由理由

�长期的测试工作经验告诉我们长期的测试工作经验告诉我们长期的测试工作经验告诉我们长期的测试工作经验告诉我们,,,,大量的错误是发大量的错误是发大量的错误是发大量的错误是发生在输入或输出范围的边界值上生在输入或输出范围的边界值上生在输入或输出范围的边界值上生在输入或输出范围的边界值上,,,,而不是发生在而不是发生在而不是发生在而不是发生在输入输出范围的内部输入输出范围的内部输入输出范围的内部输入输出范围的内部。。。。出现这种现象的原因有出现这种现象的原因有出现这种现象的原因有出现这种现象的原因有::::

�需求文档或者规格说明中经常没有明确的定义边界需求文档或者规格说明中经常没有明确的定义边界需求文档或者规格说明中经常没有明确的定义边界需求文档或者规格说明中经常没有明确的定义边界值值值值;;;;

�或者编程人员对边界值产生误解或者编程人员对边界值产生误解或者编程人员对边界值产生误解或者编程人员对边界值产生误解;;;;

Page 51: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

51测试设计技术 版权所有©郑文强

边界值分析边界值分析边界值分析边界值分析

常见的常见的常见的常见的边界值类型边界值类型边界值类型边界值类型

�对对对对16-bit 的整数而言的整数而言的整数而言的整数而言 32767 和和和和 -32768 是边是边是边是边界值界值界值界值;;;;

�屏幕上光标在最左上屏幕上光标在最左上屏幕上光标在最左上屏幕上光标在最左上、、、、最右下位置最右下位置最右下位置最右下位置;;;;

�报表的第一行和最后一行报表的第一行和最后一行报表的第一行和最后一行报表的第一行和最后一行;;;;

�数组元素的第一个和最后一个数组元素的第一个和最后一个数组元素的第一个和最后一个数组元素的第一个和最后一个;;;;对于列表形式输入对于列表形式输入对于列表形式输入对于列表形式输入,,,,一般情况下没有边界值一般情况下没有边界值一般情况下没有边界值一般情况下没有边界值。。。。比比比比如前面等价类划分中的如前面等价类划分中的如前面等价类划分中的如前面等价类划分中的“旅游者旅游者旅游者旅游者”的例子中的例子中的例子中的例子中,,,,就不就不就不就不存在输入域的边界值存在输入域的边界值存在输入域的边界值存在输入域的边界值,,,,输入数据类型是不连续输入数据类型是不连续输入数据类型是不连续输入数据类型是不连续的的的的,,,,即即即即6个元素组个元素组个元素组个元素组((((儿童儿童儿童儿童、、、、青少年青少年青少年青少年、、、、成人学生成人学生成人学生成人学生、、、、

残疾人和退休人员残疾人和退休人员残疾人和退休人员残疾人和退休人员)!)!)!)!

Page 52: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

52测试设计技术 版权所有©郑文强

边界值分析边界值分析边界值分析边界值分析

边界值的边界值的边界值的边界值的提示提示提示提示1

如果输入条件规定了值的范围如果输入条件规定了值的范围如果输入条件规定了值的范围如果输入条件规定了值的范围,,,,则应取刚达到这个则应取刚达到这个则应取刚达到这个则应取刚达到这个范围的边界的值范围的边界的值范围的边界的值范围的边界的值,,,,以及刚刚超越这个范围边界的值以及刚刚超越这个范围边界的值以及刚刚超越这个范围边界的值以及刚刚超越这个范围边界的值作为测试输入数据作为测试输入数据作为测试输入数据作为测试输入数据;;;;

边界值的边界值的边界值的边界值的提示提示提示提示1

如果输入条件规定了值的范围如果输入条件规定了值的范围如果输入条件规定了值的范围如果输入条件规定了值的范围,,,,则应取刚达到这个则应取刚达到这个则应取刚达到这个则应取刚达到这个范围的边界的值范围的边界的值范围的边界的值范围的边界的值,,,,以及刚刚超越这个范围边界的值以及刚刚超越这个范围边界的值以及刚刚超越这个范围边界的值以及刚刚超越这个范围边界的值作为测试输入数据作为测试输入数据作为测试输入数据作为测试输入数据;;;;

边界值的边界值的边界值的边界值的例子例子例子例子

如果软件的规格说明中规定如果软件的规格说明中规定如果软件的规格说明中规定如果软件的规格说明中规定::::“重量在重量在重量在重量在10公斤至公斤至公斤至公斤至50公斤范围内的邮件公斤范围内的邮件公斤范围内的邮件公斤范围内的邮件,,,,其邮费计算公式为其邮费计算公式为其邮费计算公式为其邮费计算公式为……”。。。。假假假假如设计基于边界值的测试用例如设计基于边界值的测试用例如设计基于边界值的测试用例如设计基于边界值的测试用例,,,,我们应取我们应取我们应取我们应取10及及及及50,,,,还应取还应取还应取还应取10.01,,,,49.99,,,,9.99及及及及50.01等等等等;;;;

边界值的边界值的边界值的边界值的例子例子例子例子

如果软件的规格说明中规定如果软件的规格说明中规定如果软件的规格说明中规定如果软件的规格说明中规定::::“重量在重量在重量在重量在10公斤至公斤至公斤至公斤至50公斤范围内的邮件公斤范围内的邮件公斤范围内的邮件公斤范围内的邮件,,,,其邮费计算公式为其邮费计算公式为其邮费计算公式为其邮费计算公式为……”。。。。假假假假如设计基于边界值的测试用例如设计基于边界值的测试用例如设计基于边界值的测试用例如设计基于边界值的测试用例,,,,我们应取我们应取我们应取我们应取10及及及及50,,,,还应取还应取还应取还应取10.01,,,,49.99,,,,9.99及及及及50.01等等等等;;;;

Page 53: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

53测试设计技术 版权所有©郑文强

边界值分析边界值分析边界值分析边界值分析

边界值的边界值的边界值的边界值的提示提示提示提示2

如果输入条件规定了值的个数如果输入条件规定了值的个数如果输入条件规定了值的个数如果输入条件规定了值的个数,则用最大个数则用最大个数则用最大个数则用最大个数,最小最小最小最小个数个数个数个数,比最小个数少比最小个数少比最小个数少比最小个数少1,,,,比最大个数多比最大个数多比最大个数多比最大个数多1的数作为测的数作为测的数作为测的数作为测试数据试数据试数据试数据;;;;

边界值的边界值的边界值的边界值的提示提示提示提示2

如果输入条件规定了值的个数如果输入条件规定了值的个数如果输入条件规定了值的个数如果输入条件规定了值的个数,则用最大个数则用最大个数则用最大个数则用最大个数,最小最小最小最小个数个数个数个数,比最小个数少比最小个数少比最小个数少比最小个数少1,,,,比最大个数多比最大个数多比最大个数多比最大个数多1的数作为测的数作为测的数作为测的数作为测试数据试数据试数据试数据;;;;

边界值的边界值的边界值的边界值的例子例子例子例子

一个输入文件应包括一个输入文件应包括一个输入文件应包括一个输入文件应包括1~255个记录个记录个记录个记录,,,,则测试用例则测试用例则测试用例则测试用例可取可取可取可取1和和和和255,,,,还应取还应取还应取还应取0及及及及256等等等等;;;;

边界值的边界值的边界值的边界值的例子例子例子例子

一个输入文件应包括一个输入文件应包括一个输入文件应包括一个输入文件应包括1~255个记录个记录个记录个记录,,,,则测试用例则测试用例则测试用例则测试用例可取可取可取可取1和和和和255,,,,还应取还应取还应取还应取0及及及及256等等等等;;;;

Page 54: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

54测试设计技术 版权所有©郑文强

边界值分析边界值分析边界值分析边界值分析

边界值的边界值的边界值的边界值的提示提示提示提示3

尽量选择非常庞大的数据结构尽量选择非常庞大的数据结构尽量选择非常庞大的数据结构尽量选择非常庞大的数据结构、、、、列表和表格等作为列表和表格等作为列表和表格等作为列表和表格等作为边界值分析的数据边界值分析的数据边界值分析的数据边界值分析的数据,,,,比如比如比如比如,,,,那些能使内存溢出那些能使内存溢出那些能使内存溢出那些能使内存溢出、、、、文文文文件和数据存储到达边界的数据件和数据存储到达边界的数据件和数据存储到达边界的数据件和数据存储到达边界的数据,,,,来检查测试对象在来检查测试对象在来检查测试对象在来检查测试对象在这种极端情形下的行为这种极端情形下的行为这种极端情形下的行为这种极端情形下的行为;;;;

边界值的边界值的边界值的边界值的提示提示提示提示3

尽量选择非常庞大的数据结构尽量选择非常庞大的数据结构尽量选择非常庞大的数据结构尽量选择非常庞大的数据结构、、、、列表和表格等作为列表和表格等作为列表和表格等作为列表和表格等作为边界值分析的数据边界值分析的数据边界值分析的数据边界值分析的数据,,,,比如比如比如比如,,,,那些能使内存溢出那些能使内存溢出那些能使内存溢出那些能使内存溢出、、、、文文文文件和数据存储到达边界的数据件和数据存储到达边界的数据件和数据存储到达边界的数据件和数据存储到达边界的数据,,,,来检查测试对象在来检查测试对象在来检查测试对象在来检查测试对象在这种极端情形下的行为这种极端情形下的行为这种极端情形下的行为这种极端情形下的行为;;;;

边界值的边界值的边界值的边界值的提示提示提示提示4

对于列表和表格对于列表和表格对于列表和表格对于列表和表格,,,,空列表和满列表以及列表的第一空列表和满列表以及列表的第一空列表和满列表以及列表的第一空列表和满列表以及列表的第一个元素和最后一个元素都是应该作为分析的对象个元素和最后一个元素都是应该作为分析的对象个元素和最后一个元素都是应该作为分析的对象个元素和最后一个元素都是应该作为分析的对象,,,,因为测试它们常常可以发现由于编程错误而导致的因为测试它们常常可以发现由于编程错误而导致的因为测试它们常常可以发现由于编程错误而导致的因为测试它们常常可以发现由于编程错误而导致的失效失效失效失效;;;;

边界值的边界值的边界值的边界值的提示提示提示提示4

对于列表和表格对于列表和表格对于列表和表格对于列表和表格,,,,空列表和满列表以及列表的第一空列表和满列表以及列表的第一空列表和满列表以及列表的第一空列表和满列表以及列表的第一个元素和最后一个元素都是应该作为分析的对象个元素和最后一个元素都是应该作为分析的对象个元素和最后一个元素都是应该作为分析的对象个元素和最后一个元素都是应该作为分析的对象,,,,因为测试它们常常可以发现由于编程错误而导致的因为测试它们常常可以发现由于编程错误而导致的因为测试它们常常可以发现由于编程错误而导致的因为测试它们常常可以发现由于编程错误而导致的失效失效失效失效;;;;

Page 55: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

55测试设计技术 版权所有©郑文强

边界值分析边界值分析边界值分析边界值分析

边界值分析边界值分析边界值分析边界值分析步骤步骤步骤步骤

�边界值分析使用与等价类划分法相同的划分边界值分析使用与等价类划分法相同的划分边界值分析使用与等价类划分法相同的划分边界值分析使用与等价类划分法相同的划分,,,,只只只只是边界值分析假定错误更多地存在于划分的边界是边界值分析假定错误更多地存在于划分的边界是边界值分析假定错误更多地存在于划分的边界是边界值分析假定错误更多地存在于划分的边界上上上上,,,,因此在等价类的边界上以及两侧的情况设计因此在等价类的边界上以及两侧的情况设计因此在等价类的边界上以及两侧的情况设计因此在等价类的边界上以及两侧的情况设计测试用例测试用例测试用例测试用例;;;;

�将软件的输入或者输出参数进行等价类划分将软件的输入或者输出参数进行等价类划分将软件的输入或者输出参数进行等价类划分将软件的输入或者输出参数进行等价类划分;;;;

�在等价类的基础之上进行边界值分析在等价类的基础之上进行边界值分析在等价类的基础之上进行边界值分析在等价类的基础之上进行边界值分析。。。。一般情况一般情况一般情况一般情况下下下下,,,,假如边界值已经由等价类划分覆盖假如边界值已经由等价类划分覆盖假如边界值已经由等价类划分覆盖假如边界值已经由等价类划分覆盖,,,,则可以则可以则可以则可以不予考虑不予考虑不予考虑不予考虑;;;;

�将边界值进行组合将边界值进行组合将边界值进行组合将边界值进行组合,,,,作为测试用例的输入数据作为测试用例的输入数据作为测试用例的输入数据作为测试用例的输入数据;;;;

Page 56: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

56测试设计技术 版权所有©郑文强

边界值分析边界值分析边界值分析边界值分析

边界值分析边界值分析边界值分析边界值分析覆盖率覆盖率覆盖率覆盖率

= ((((执行的边界值数量执行的边界值数量执行的边界值数量执行的边界值数量/总的边界值数量总的边界值数量总的边界值数量总的边界值数量))))×100%

Page 57: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

57测试设计技术 版权所有©郑文强

边界值分析边界值分析边界值分析边界值分析

边界值分析的边界值分析的边界值分析的边界值分析的价值价值价值价值

�边界值分析技术可以显著的减少测试用例数量边界值分析技术可以显著的减少测试用例数量边界值分析技术可以显著的减少测试用例数量边界值分析技术可以显著的减少测试用例数量。。。。边界值上是最容易发现缺陷的地方边界值上是最容易发现缺陷的地方边界值上是最容易发现缺陷的地方边界值上是最容易发现缺陷的地方;;;;

�边界值分析技术应该和等价类划分技术紧密结合边界值分析技术应该和等价类划分技术紧密结合边界值分析技术应该和等价类划分技术紧密结合边界值分析技术应该和等价类划分技术紧密结合使用使用使用使用;;;;

�边界值分析技术可以应用于任何测试级别边界值分析技术可以应用于任何测试级别边界值分析技术可以应用于任何测试级别边界值分析技术可以应用于任何测试级别::::单元单元单元单元测试测试测试测试、、、、集成测试集成测试集成测试集成测试、、、、系统测试和验收测试系统测试和验收测试系统测试和验收测试系统测试和验收测试;;;;

Page 58: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

58测试设计技术 版权所有©郑文强

边界值分析边界值分析边界值分析边界值分析::::练习练习练习练习

练习的练习的练习的练习的GUI参数参数参数参数取值范围取值范围取值范围取值范围

� Index::::[10001,10006];;;;

� ActorKey::::[1,65535];;;;

� Aggregator Size::::[1,8];;;;

� Aggregator Name::::必须是必须是必须是必须是字母字母字母字母,,,,并且长度不能超过并且长度不能超过并且长度不能超过并且长度不能超过8个个个个;;;;

练习输出练习输出练习输出练习输出

� 输出练习中每个参数的边界值输出练习中每个参数的边界值输出练习中每个参数的边界值输出练习中每个参数的边界值;;;;

� 输出练习的概要测试用例输出练习的概要测试用例输出练习的概要测试用例输出练习的概要测试用例,,,,来覆盖来覆盖来覆盖来覆盖有效边界值和无效边界值有效边界值和无效边界值有效边界值和无效边界值有效边界值和无效边界值;;;;

Page 59: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

59测试设计技术 版权所有©郑文强

状态转换测试状态转换测试状态转换测试状态转换测试

状态转换测试状态转换测试状态转换测试状态转换测试定义定义定义定义

�测试对象的输出和行为方式不仅受当前输入数据测试对象的输出和行为方式不仅受当前输入数据测试对象的输出和行为方式不仅受当前输入数据测试对象的输出和行为方式不仅受当前输入数据的影响的影响的影响的影响,,,,同时还与测试对象之前的执行情况同时还与测试对象之前的执行情况同时还与测试对象之前的执行情况同时还与测试对象之前的执行情况,,,,或或或或者之前的事件或以前的输入数据等有关者之前的事件或以前的输入数据等有关者之前的事件或以前的输入数据等有关者之前的事件或以前的输入数据等有关;;;;

�通过引入状态图通过引入状态图通过引入状态图通过引入状态图((((state diagram))))来描述测试来描述测试来描述测试来描述测试对象和测试数据对象和测试数据对象和测试数据对象和测试数据、、、、对象状态之间的关系对象状态之间的关系对象状态之间的关系对象状态之间的关系;;;;

�状态图中的各个状态是通过不同的状态图中的各个状态是通过不同的状态图中的各个状态是通过不同的状态图中的各个状态是通过不同的事件事件事件事件驱动的驱动的驱动的驱动的,,,,比如函数的调用比如函数的调用比如函数的调用比如函数的调用;;;;

�基于状态图开展的测试称之为状态转换测试基于状态图开展的测试称之为状态转换测试基于状态图开展的测试称之为状态转换测试基于状态图开展的测试称之为状态转换测试;;;;

Page 60: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

60测试设计技术 版权所有©郑文强

状态转换测试状态转换测试状态转换测试状态转换测试

状态转换测试之状态转换测试之状态转换测试之状态转换测试之状态图状态图状态图状态图

Page 61: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

61测试设计技术 版权所有©郑文强

状态转换测试状态转换测试状态转换测试状态转换测试

状态转换测试之状态转换测试之状态转换测试之状态转换测试之状态状态状态状态

�empty

�filled

�full

Page 62: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

62测试设计技术 版权所有©郑文强

状态转换测试状态转换测试状态转换测试状态转换测试

状态转换测试之状态转换测试之状态转换测试之状态转换测试之事件事件事件事件

�Push::::加入一个元素加入一个元素加入一个元素加入一个元素

�Pop::::移除一个元素移除一个元素移除一个元素移除一个元素

�Delete::::删除堆栈删除堆栈删除堆栈删除堆栈

事件驱动着测试对象的状态发生变化事件驱动着测试对象的状态发生变化事件驱动着测试对象的状态发生变化事件驱动着测试对象的状态发生变化,,,,这里指的这里指的这里指的这里指的是调用是调用是调用是调用push、、、、pop和和和和delete函数函数函数函数!!!!

Page 63: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

63测试设计技术 版权所有©郑文强

状态转换测试状态转换测试状态转换测试状态转换测试

状态转换测试之状态转换测试之状态转换测试之状态转换测试之信息信息信息信息

�Top::::显示最上的元素显示最上的元素显示最上的元素显示最上的元素

�Max::::显示栈最大高显示栈最大高显示栈最大高显示栈最大高度度度度

�Show::::显示栈的状态显示栈的状态显示栈的状态显示栈的状态

信息中的这些函数调用并不会改变测试对象的状信息中的这些函数调用并不会改变测试对象的状信息中的这些函数调用并不会改变测试对象的状信息中的这些函数调用并不会改变测试对象的状态态态态!!!!

Page 64: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

64测试设计技术 版权所有©郑文强

状态转换测试状态转换测试状态转换测试状态转换测试

状态图到状态树的状态图到状态树的状态图到状态树的状态图到状态树的规则规则规则规则�初始状态或开始状态是树的根初始状态或开始状态是树的根初始状态或开始状态是树的根初始状态或开始状态是树的根;;;;�对于状态图内从开始状态出发到达一个任意可达对于状态图内从开始状态出发到达一个任意可达对于状态图内从开始状态出发到达一个任意可达对于状态图内从开始状态出发到达一个任意可达状态的每个可能的转换状态的每个可能的转换状态的每个可能的转换状态的每个可能的转换,,,,转换树都包含了从根出转换树都包含了从根出转换树都包含了从根出转换树都包含了从根出发到达一个代表此状态的下一后续状态的结点的发到达一个代表此状态的下一后续状态的结点的发到达一个代表此状态的下一后续状态的结点的发到达一个代表此状态的下一后续状态的结点的分支分支分支分支;;;;

�对转换树的每个叶结点对转换树的每个叶结点对转换树的每个叶结点对转换树的每个叶结点((((新增加的结点新增加的结点新增加的结点新增加的结点))))重复步重复步重复步重复步骤骤骤骤2的过程的过程的过程的过程,,,,直到满足下面结束条件中的一个直到满足下面结束条件中的一个直到满足下面结束条件中的一个直到满足下面结束条件中的一个::::�与叶结点相关的状态已经出现过一次从状态树的根到与叶结点相关的状态已经出现过一次从状态树的根到与叶结点相关的状态已经出现过一次从状态树的根到与叶结点相关的状态已经出现过一次从状态树的根到叶结点的连接上叶结点的连接上叶结点的连接上叶结点的连接上,,,,这个结束条件对应于状态图中的一这个结束条件对应于状态图中的一这个结束条件对应于状态图中的一这个结束条件对应于状态图中的一遍循环遍循环遍循环遍循环;;;;

�与叶结点相关的状态是一个结束状态与叶结点相关的状态是一个结束状态与叶结点相关的状态是一个结束状态与叶结点相关的状态是一个结束状态,,,,并且也没有更并且也没有更并且也没有更并且也没有更多的状态转换需要考虑多的状态转换需要考虑多的状态转换需要考虑多的状态转换需要考虑;;;;

Page 65: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

65测试设计技术 版权所有©郑文强

状态转换测试状态转换测试状态转换测试状态转换测试

状态图到状态树状态图到状态树状态图到状态树状态图到状态树

Page 66: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

66测试设计技术 版权所有©郑文强

状态转换测试状态转换测试状态转换测试状态转换测试

状态树扩展状态树扩展状态树扩展状态树扩展

错误函数的调用错误函数的调用错误函数的调用错误函数的调用::::健壮性测试健壮性测试健壮性测试健壮性测试!!!!

Page 67: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

67测试设计技术 版权所有©郑文强

状态转换测试状态转换测试状态转换测试状态转换测试

测试用例包含的测试用例包含的测试用例包含的测试用例包含的信息信息信息信息

�测试对象的初始状态测试对象的初始状态测试对象的初始状态测试对象的初始状态((((组件或系统组件或系统组件或系统组件或系统););););

�测试对象的输入测试对象的输入测试对象的输入测试对象的输入;;;;

�期望输出或者期望行为期望输出或者期望行为期望输出或者期望行为期望输出或者期望行为;;;;

�期望的结束状态期望的结束状态期望的结束状态期望的结束状态;;;;

Page 68: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

68测试设计技术 版权所有©郑文强

状态转换测试状态转换测试状态转换测试状态转换测试

状态转换测试的状态转换测试的状态转换测试的状态转换测试的提示提示提示提示

�开始写规格说明的时候开始写规格说明的时候开始写规格说明的时候开始写规格说明的时候,,,,就从测试的角度来评估就从测试的角度来评估就从测试的角度来评估就从测试的角度来评估测试对象的状态转换图测试对象的状态转换图测试对象的状态转换图测试对象的状态转换图。。。。假如测试对象有很多状假如测试对象有很多状假如测试对象有很多状假如测试对象有很多状态和状态转换态和状态转换态和状态转换态和状态转换,,,,表明需要更多的测试工作量表明需要更多的测试工作量表明需要更多的测试工作量表明需要更多的测试工作量,,,,可可可可能的情况下应该寻找对策简化测试对象能的情况下应该寻找对策简化测试对象能的情况下应该寻找对策简化测试对象能的情况下应该寻找对策简化测试对象;;;;

�检查规格说明检查规格说明检查规格说明检查规格说明,,,,确保测试对象状态容易识别确保测试对象状态容易识别确保测试对象状态容易识别确保测试对象状态容易识别,,,,且且且且这些状态不是由大量不同变量组合构成的这些状态不是由大量不同变量组合构成的这些状态不是由大量不同变量组合构成的这些状态不是由大量不同变量组合构成的;;;;

�检查规格说明检查规格说明检查规格说明检查规格说明,,,,保证从外部可以比较容易地访问保证从外部可以比较容易地访问保证从外部可以比较容易地访问保证从外部可以比较容易地访问状态变量状态变量状态变量状态变量。。。。在测试过程中如能使用设置状态在测试过程中如能使用设置状态在测试过程中如能使用设置状态在测试过程中如能使用设置状态/重重重重设状态函数以及读取状态值函数等将会给测试带设状态函数以及读取状态值函数等将会给测试带设状态函数以及读取状态值函数等将会给测试带设状态函数以及读取状态值函数等将会给测试带来很大益处来很大益处来很大益处来很大益处;;;;

Page 69: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

69测试设计技术 版权所有©郑文强

状态转换测试状态转换测试状态转换测试状态转换测试

定义状态需要考虑的定义状态需要考虑的定义状态需要考虑的定义状态需要考虑的信息信息信息信息

�状态转换之前的状态状态转换之前的状态状态转换之前的状态状态转换之前的状态;;;;

�触发状态转换的触发事件触发状态转换的触发事件触发状态转换的触发事件触发状态转换的触发事件;;;;

�在状态转换时触发的期望反应在状态转换时触发的期望反应在状态转换时触发的期望反应在状态转换时触发的期望反应;;;;

�接下来的期望状态接下来的期望状态接下来的期望状态接下来的期望状态;;;;

Page 70: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

70测试设计技术 版权所有©郑文强

状态转换测试状态转换测试状态转换测试状态转换测试

状态转换测试状态转换测试状态转换测试状态转换测试强度定义强度定义强度定义强度定义

测试强度测试强度测试强度测试强度1

覆盖测试对象的所有状覆盖测试对象的所有状覆盖测试对象的所有状覆盖测试对象的所有状态态态态;;;;

测试强度测试强度测试强度测试强度1

覆盖测试对象的所有状覆盖测试对象的所有状覆盖测试对象的所有状覆盖测试对象的所有状态态态态;;;;

例子例子例子例子initialize[empty],push[filled],push,push,push[full];;;;

缺点缺点缺点缺点::::没有调用所有的函数没有调用所有的函数没有调用所有的函数没有调用所有的函数;;;;

假设假设假设假设::::Max ==== 4

例子例子例子例子initialize[empty],push[filled],push,push,push[full];;;;

缺点缺点缺点缺点::::没有调用所有的函数没有调用所有的函数没有调用所有的函数没有调用所有的函数;;;;

假设假设假设假设::::Max ==== 4

Page 71: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

71测试设计技术 版权所有©郑文强

状态转换测试状态转换测试状态转换测试状态转换测试

状态转换测试状态转换测试状态转换测试状态转换测试强度定义强度定义强度定义强度定义

测试强度测试强度测试强度测试强度2

覆盖测试对象的所有函覆盖测试对象的所有函覆盖测试对象的所有函覆盖测试对象的所有函数数数数;;;;

测试强度测试强度测试强度测试强度2

覆盖测试对象的所有函覆盖测试对象的所有函覆盖测试对象的所有函覆盖测试对象的所有函数数数数;;;;

例子例子例子例子initialize[empty],push[filled],top,pop[empty],delete;

缺点缺点缺点缺点::::没有覆盖所有的状态没有覆盖所有的状态没有覆盖所有的状态没有覆盖所有的状态;;;;

假设假设假设假设::::Max ==== 4

例子例子例子例子initialize[empty],push[filled],top,pop[empty],delete;

缺点缺点缺点缺点::::没有覆盖所有的状态没有覆盖所有的状态没有覆盖所有的状态没有覆盖所有的状态;;;;

假设假设假设假设::::Max ==== 4

Page 72: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

72测试设计技术 版权所有©郑文强

状态转换测试状态转换测试状态转换测试状态转换测试

状态转换测试状态转换测试状态转换测试状态转换测试强度定义强度定义强度定义强度定义

测试强度测试强度测试强度测试强度3

每个状态至少转换一每个状态至少转换一每个状态至少转换一每个状态至少转换一次次次次;;;;

测试强度测试强度测试强度测试强度3

每个状态至少转换一每个状态至少转换一每个状态至少转换一每个状态至少转换一次次次次;;;;

例子例子例子例子initialize[empty],push[filled]…,push[full],pop[filled]…,pop[empty],delete;

假设假设假设假设::::Max ==== 4

例子例子例子例子initialize[empty],push[filled]…,push[full],pop[filled]…,pop[empty],delete;

假设假设假设假设::::Max ==== 4

Page 73: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

73测试设计技术 版权所有©郑文强

状态转换测试状态转换测试状态转换测试状态转换测试

状态转换测试状态转换测试状态转换测试状态转换测试强度定义强度定义强度定义强度定义

测试强度测试强度测试强度测试强度4

状态转换测试对于每状态转换测试对于每状态转换测试对于每状态转换测试对于每个状态都应该将与此个状态都应该将与此个状态都应该将与此个状态都应该将与此状态相关的函数至少状态相关的函数至少状态相关的函数至少状态相关的函数至少执行一遍执行一遍执行一遍执行一遍。。。。通过扩展通过扩展通过扩展通过扩展的状态树来实现的状态树来实现的状态树来实现的状态树来实现;;;;

测试强度测试强度测试强度测试强度4

状态转换测试对于每状态转换测试对于每状态转换测试对于每状态转换测试对于每个状态都应该将与此个状态都应该将与此个状态都应该将与此个状态都应该将与此状态相关的函数至少状态相关的函数至少状态相关的函数至少状态相关的函数至少执行一遍执行一遍执行一遍执行一遍。。。。通过扩展通过扩展通过扩展通过扩展的状态树来实现的状态树来实现的状态树来实现的状态树来实现;;;;

Page 74: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

74测试设计技术 版权所有©郑文强

状态转换测试状态转换测试状态转换测试状态转换测试

状态转换测试状态转换测试状态转换测试状态转换测试覆盖率覆盖率覆盖率覆盖率

= ((((执行的状态转换数量执行的状态转换数量执行的状态转换数量执行的状态转换数量/总的数量总的数量总的数量总的数量))))×100%

Page 75: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

75测试设计技术 版权所有©郑文强

状态转换测试状态转换测试状态转换测试状态转换测试

状态转换测试状态转换测试状态转换测试状态转换测试价值价值价值价值

�状态转换测试适用于那些状态起着重要作用的测状态转换测试适用于那些状态起着重要作用的测状态转换测试适用于那些状态起着重要作用的测状态转换测试适用于那些状态起着重要作用的测试对象试对象试对象试对象,,,,并且功能也会因为测试对象的状态不同并且功能也会因为测试对象的状态不同并且功能也会因为测试对象的状态不同并且功能也会因为测试对象的状态不同而受到影响而受到影响而受到影响而受到影响;;;;

�在面向对象的系统中在面向对象的系统中在面向对象的系统中在面向对象的系统中,,,,对象可以有不同的状态对象可以有不同的状态对象可以有不同的状态对象可以有不同的状态,,,,操作对象的方法必须能根据不同的状态做出相应操作对象的方法必须能根据不同的状态做出相应操作对象的方法必须能根据不同的状态做出相应操作对象的方法必须能根据不同的状态做出相应的反应的反应的反应的反应。。。。因此因此因此因此,,,,状态转换测试对于面向对象测试状态转换测试对于面向对象测试状态转换测试对于面向对象测试状态转换测试对于面向对象测试非常重要非常重要非常重要非常重要;;;;

Page 76: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

76测试设计技术 版权所有©郑文强

状态转换测试状态转换测试状态转换测试状态转换测试::::练习练习练习练习

练习输出练习输出练习输出练习输出

� 列出状态图中包含的状态和事件列出状态图中包含的状态和事件列出状态图中包含的状态和事件列出状态图中包含的状态和事件;;;;

� 设计测试用例覆盖所有的状态设计测试用例覆盖所有的状态设计测试用例覆盖所有的状态设计测试用例覆盖所有的状态;;;;

� 设计测试用例覆盖所有的事件设计测试用例覆盖所有的事件设计测试用例覆盖所有的事件设计测试用例覆盖所有的事件;;;;

� 设计测试用例覆盖所有的路径设计测试用例覆盖所有的路径设计测试用例覆盖所有的路径设计测试用例覆盖所有的路径;;;;

� 设计完整的状态转换表设计完整的状态转换表设计完整的状态转换表设计完整的状态转换表;;;;

Page 77: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

77测试设计技术 版权所有©郑文强

决策表测试决策表测试决策表测试决策表测试

决策表测试的决策表测试的决策表测试的决策表测试的定义定义定义定义

决策表测试决策表测试决策表测试决策表测试是分析和表达多逻辑条件下执行不同操是分析和表达多逻辑条件下执行不同操是分析和表达多逻辑条件下执行不同操是分析和表达多逻辑条件下执行不同操作的情况的工具作的情况的工具作的情况的工具作的情况的工具 !!!!

决策表决策表决策表决策表能够将复杂的问题按照各种可能的情况全部能够将复杂的问题按照各种可能的情况全部能够将复杂的问题按照各种可能的情况全部能够将复杂的问题按照各种可能的情况全部列举出来列举出来列举出来列举出来,,,,简明并避免遗漏简明并避免遗漏简明并避免遗漏简明并避免遗漏。。。。因此因此因此因此,,,,利用决策表能利用决策表能利用决策表能利用决策表能够设计出完整的测试用例集合够设计出完整的测试用例集合够设计出完整的测试用例集合够设计出完整的测试用例集合;;;;

在一些数据处理问题当中在一些数据处理问题当中在一些数据处理问题当中在一些数据处理问题当中,,,,某些操作的实施依赖于某些操作的实施依赖于某些操作的实施依赖于某些操作的实施依赖于多个逻辑条件的组合多个逻辑条件的组合多个逻辑条件的组合多个逻辑条件的组合,,,,即即即即::::针对不同逻辑条件的组针对不同逻辑条件的组针对不同逻辑条件的组针对不同逻辑条件的组合值合值合值合值,,,,分别执行不同的操作分别执行不同的操作分别执行不同的操作分别执行不同的操作。。。。决策表决策表决策表决策表很适合于处理很适合于处理很适合于处理很适合于处理这类问题这类问题这类问题这类问题;;;;

决策表测试决策表测试决策表测试决策表测试是分析和表达多逻辑条件下执行不同操是分析和表达多逻辑条件下执行不同操是分析和表达多逻辑条件下执行不同操是分析和表达多逻辑条件下执行不同操作的情况的工具作的情况的工具作的情况的工具作的情况的工具 !!!!

决策表决策表决策表决策表能够将复杂的问题按照各种可能的情况全部能够将复杂的问题按照各种可能的情况全部能够将复杂的问题按照各种可能的情况全部能够将复杂的问题按照各种可能的情况全部列举出来列举出来列举出来列举出来,,,,简明并避免遗漏简明并避免遗漏简明并避免遗漏简明并避免遗漏。。。。因此因此因此因此,,,,利用决策表能利用决策表能利用决策表能利用决策表能够设计出完整的测试用例集合够设计出完整的测试用例集合够设计出完整的测试用例集合够设计出完整的测试用例集合;;;;

在一些数据处理问题当中在一些数据处理问题当中在一些数据处理问题当中在一些数据处理问题当中,,,,某些操作的实施依赖于某些操作的实施依赖于某些操作的实施依赖于某些操作的实施依赖于多个逻辑条件的组合多个逻辑条件的组合多个逻辑条件的组合多个逻辑条件的组合,,,,即即即即::::针对不同逻辑条件的组针对不同逻辑条件的组针对不同逻辑条件的组针对不同逻辑条件的组合值合值合值合值,,,,分别执行不同的操作分别执行不同的操作分别执行不同的操作分别执行不同的操作。。。。决策表决策表决策表决策表很适合于处理很适合于处理很适合于处理很适合于处理这类问题这类问题这类问题这类问题;;;;

Page 78: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

78测试设计技术 版权所有©郑文强

决策表测试决策表测试决策表测试决策表测试

决策表测试的决策表测试的决策表测试的决策表测试的组成组成组成组成

Page 79: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

79测试设计技术 版权所有©郑文强

决策表测试决策表测试决策表测试决策表测试

决策表组成的决策表组成的决策表组成的决策表组成的定义定义定义定义

�条件桩条件桩条件桩条件桩((((Condition Stub):):):):列出了问题的所列出了问题的所列出了问题的所列出了问题的所有条件有条件有条件有条件。。。。通常认为列出的条件的次序无关紧要通常认为列出的条件的次序无关紧要通常认为列出的条件的次序无关紧要通常认为列出的条件的次序无关紧要;;;;

�动作桩动作桩动作桩动作桩((((Action Stub):):):):列出了问题规定可能列出了问题规定可能列出了问题规定可能列出了问题规定可能采取的操作采取的操作采取的操作采取的操作。。。。这些操作的排列顺序没有约束这些操作的排列顺序没有约束这些操作的排列顺序没有约束这些操作的排列顺序没有约束;;;;

�条件项条件项条件项条件项((((Condition Entry):):):):列出针对它左列列出针对它左列列出针对它左列列出针对它左列条件的取值条件的取值条件的取值条件的取值。。。。在所有可能情况下的真假值在所有可能情况下的真假值在所有可能情况下的真假值在所有可能情况下的真假值;;;;

�动作项动作项动作项动作项((((Action Entry):):):):列出在条件项的各种列出在条件项的各种列出在条件项的各种列出在条件项的各种取值情况下应该采取的动作取值情况下应该采取的动作取值情况下应该采取的动作取值情况下应该采取的动作;;;;

Page 80: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

80测试设计技术 版权所有©郑文强

决策表测试决策表测试决策表测试决策表测试

决策表测试决策表测试决策表测试决策表测试规则规则规则规则

任何一个条件组合的特定取值及其相应要执行的任何一个条件组合的特定取值及其相应要执行的任何一个条件组合的特定取值及其相应要执行的任何一个条件组合的特定取值及其相应要执行的动作就称为动作就称为动作就称为动作就称为规则规则规则规则;;;;

在决策表中贯穿条件项和动作项的一列就是一条在决策表中贯穿条件项和动作项的一列就是一条在决策表中贯穿条件项和动作项的一列就是一条在决策表中贯穿条件项和动作项的一列就是一条规则规则规则规则;;;;

决策表中列出多少组条件取值决策表中列出多少组条件取值决策表中列出多少组条件取值决策表中列出多少组条件取值,,,,也就有多少条规也就有多少条规也就有多少条规也就有多少条规则则则则,,,,既条件项和动作项有多少列既条件项和动作项有多少列既条件项和动作项有多少列既条件项和动作项有多少列;;;;

任何一个条件组合的特定取值及其相应要执行的任何一个条件组合的特定取值及其相应要执行的任何一个条件组合的特定取值及其相应要执行的任何一个条件组合的特定取值及其相应要执行的动作就称为动作就称为动作就称为动作就称为规则规则规则规则;;;;

在决策表中贯穿条件项和动作项的一列就是一条在决策表中贯穿条件项和动作项的一列就是一条在决策表中贯穿条件项和动作项的一列就是一条在决策表中贯穿条件项和动作项的一列就是一条规则规则规则规则;;;;

决策表中列出多少组条件取值决策表中列出多少组条件取值决策表中列出多少组条件取值决策表中列出多少组条件取值,,,,也就有多少条规也就有多少条规也就有多少条规也就有多少条规则则则则,,,,既条件项和动作项有多少列既条件项和动作项有多少列既条件项和动作项有多少列既条件项和动作项有多少列;;;;

Page 81: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

81测试设计技术 版权所有©郑文强

决策表测试决策表测试决策表测试决策表测试

决策表测试决策表测试决策表测试决策表测试步骤步骤步骤步骤

�确定规则的个数确定规则的个数确定规则的个数确定规则的个数。。。。假如有假如有假如有假如有n个条件个条件个条件个条件,,,,每个条件有每个条件有每个条件有每个条件有两个取值两个取值两个取值两个取值((((0,1)))),故有故有故有故有2n种规则种规则种规则种规则;;;;

�列出所有的条件桩和动作桩列出所有的条件桩和动作桩列出所有的条件桩和动作桩列出所有的条件桩和动作桩;;;;

�填入条件项填入条件项填入条件项填入条件项;;;;

�填入动作项填入动作项填入动作项填入动作项,,,,得到初始的决策表得到初始的决策表得到初始的决策表得到初始的决策表;;;;

�简化合并相似的规则简化合并相似的规则简化合并相似的规则简化合并相似的规则,,,,比如相同动作比如相同动作比如相同动作比如相同动作,,,,得到优化得到优化得到优化得到优化的决策表的决策表的决策表的决策表;;;;

�每列规则设计一个测试用例每列规则设计一个测试用例每列规则设计一个测试用例每列规则设计一个测试用例;;;;

Page 82: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

82测试设计技术 版权所有©郑文强

决策表测试决策表测试决策表测试决策表测试

决策表测试决策表测试决策表测试决策表测试例子例子例子例子

Page 83: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

83测试设计技术 版权所有©郑文强

决策表测试决策表测试决策表测试决策表测试

决策表测试决策表测试决策表测试决策表测试规则合并规则合并规则合并规则合并

有两条或多条规则具有相同的动作有两条或多条规则具有相同的动作有两条或多条规则具有相同的动作有两条或多条规则具有相同的动作,,,,并且其条件并且其条件并且其条件并且其条件项之间存在着极为相似的关系项之间存在着极为相似的关系项之间存在着极为相似的关系项之间存在着极为相似的关系;;;;

有两条或多条规则具有相同的动作有两条或多条规则具有相同的动作有两条或多条规则具有相同的动作有两条或多条规则具有相同的动作,,,,并且其条件并且其条件并且其条件并且其条件项之间存在着极为相似的关系项之间存在着极为相似的关系项之间存在着极为相似的关系项之间存在着极为相似的关系;;;;

Page 84: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

84测试设计技术 版权所有©郑文强

决策表测试决策表测试决策表测试决策表测试

决策表测试决策表测试决策表测试决策表测试规则合并规则合并规则合并规则合并

有两条或多条规则具有相同的动作有两条或多条规则具有相同的动作有两条或多条规则具有相同的动作有两条或多条规则具有相同的动作,,,,并且其条件并且其条件并且其条件并且其条件项之间存在着极为相似的关系项之间存在着极为相似的关系项之间存在着极为相似的关系项之间存在着极为相似的关系;;;;

有两条或多条规则具有相同的动作有两条或多条规则具有相同的动作有两条或多条规则具有相同的动作有两条或多条规则具有相同的动作,,,,并且其条件并且其条件并且其条件并且其条件项之间存在着极为相似的关系项之间存在着极为相似的关系项之间存在着极为相似的关系项之间存在着极为相似的关系;;;;

Page 85: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

85测试设计技术 版权所有©郑文强

决策表测试决策表测试决策表测试决策表测试

决策表规则决策表规则决策表规则决策表规则合并优化合并优化合并优化合并优化

Page 86: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

86测试设计技术 版权所有©郑文强

决策表测试决策表测试决策表测试决策表测试

决策表转化为概要测试用例决策表转化为概要测试用例决策表转化为概要测试用例决策表转化为概要测试用例

跳下一章跳下一章跳下一章跳下一章不觉得疲倦不觉得疲倦不觉得疲倦不觉得疲倦,,,,但不感兴趣但不感兴趣但不感兴趣但不感兴趣4

继续继续继续继续不觉得疲倦不觉得疲倦不觉得疲倦不觉得疲倦、、、、感兴趣且不胡涂感兴趣且不胡涂感兴趣且不胡涂感兴趣且不胡涂3

重读重读重读重读不觉得疲倦不觉得疲倦不觉得疲倦不觉得疲倦、、、、感兴趣感兴趣感兴趣感兴趣,,,,但胡涂但胡涂但胡涂但胡涂2

休息休息休息休息觉得疲倦觉得疲倦觉得疲倦觉得疲倦1

期望结果期望结果期望结果期望结果输入输入输入输入编号编号编号编号

Page 87: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

87测试设计技术 版权所有©郑文强

决策表测试决策表测试决策表测试决策表测试

决策表测试决策表测试决策表测试决策表测试应用应用应用应用

�规格说明以决策表形式给出规格说明以决策表形式给出规格说明以决策表形式给出规格说明以决策表形式给出,,,,或很容易转换成决或很容易转换成决或很容易转换成决或很容易转换成决策表策表策表策表;;;;

�条件的排列顺序不会也不影响执行哪些操作条件的排列顺序不会也不影响执行哪些操作条件的排列顺序不会也不影响执行哪些操作条件的排列顺序不会也不影响执行哪些操作;;;;

�规则的排列顺序不会也不影响执行哪些操作规则的排列顺序不会也不影响执行哪些操作规则的排列顺序不会也不影响执行哪些操作规则的排列顺序不会也不影响执行哪些操作;;;;

�每当某一规则的条件已经满足每当某一规则的条件已经满足每当某一规则的条件已经满足每当某一规则的条件已经满足,,,,并确定要执行的并确定要执行的并确定要执行的并确定要执行的操作后操作后操作后操作后,不必检验别的规则不必检验别的规则不必检验别的规则不必检验别的规则;;;;

�如果某一规则得到满足要执行多个操作如果某一规则得到满足要执行多个操作如果某一规则得到满足要执行多个操作如果某一规则得到满足要执行多个操作,,,,这些操这些操这些操这些操作的执行顺序无关紧要作的执行顺序无关紧要作的执行顺序无关紧要作的执行顺序无关紧要;;;;

Page 88: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

88测试设计技术 版权所有©郑文强

决策表测试决策表测试决策表测试决策表测试

决策表测试决策表测试决策表测试决策表测试测试用例测试用例测试用例测试用例

从决策表的每一列可以清楚地看到条件及其输入从决策表的每一列可以清楚地看到条件及其输入从决策表的每一列可以清楚地看到条件及其输入从决策表的每一列可以清楚地看到条件及其输入的依赖关系的依赖关系的依赖关系的依赖关系,,,,以及由这些输入组合得到的相应的以及由这些输入组合得到的相应的以及由这些输入组合得到的相应的以及由这些输入组合得到的相应的输出动作和结果输出动作和结果输出动作和结果输出动作和结果;;;;

决策表定义了逻辑测试用例决策表定义了逻辑测试用例决策表定义了逻辑测试用例决策表定义了逻辑测试用例,,,,为了执行这些测试为了执行这些测试为了执行这些测试为了执行这些测试用例用例用例用例,,,,必须输入具体的数据值并且标识前置条件必须输入具体的数据值并且标识前置条件必须输入具体的数据值并且标识前置条件必须输入具体的数据值并且标识前置条件和后置条件和后置条件和后置条件和后置条件;;;;

从决策表的每一列可以清楚地看到条件及其输入从决策表的每一列可以清楚地看到条件及其输入从决策表的每一列可以清楚地看到条件及其输入从决策表的每一列可以清楚地看到条件及其输入的依赖关系的依赖关系的依赖关系的依赖关系,,,,以及由这些输入组合得到的相应的以及由这些输入组合得到的相应的以及由这些输入组合得到的相应的以及由这些输入组合得到的相应的输出动作和结果输出动作和结果输出动作和结果输出动作和结果;;;;

决策表定义了逻辑测试用例决策表定义了逻辑测试用例决策表定义了逻辑测试用例决策表定义了逻辑测试用例,,,,为了执行这些测试为了执行这些测试为了执行这些测试为了执行这些测试用例用例用例用例,,,,必须输入具体的数据值并且标识前置条件必须输入具体的数据值并且标识前置条件必须输入具体的数据值并且标识前置条件必须输入具体的数据值并且标识前置条件和后置条件和后置条件和后置条件和后置条件;;;;

Page 89: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

89测试设计技术 版权所有©郑文强

决策表测试决策表测试决策表测试决策表测试

决策表测试决策表测试决策表测试决策表测试完成准则完成准则完成准则完成准则

同前面介绍的方法一样同前面介绍的方法一样同前面介绍的方法一样同前面介绍的方法一样,,,,可以简单地定义决策表可以简单地定义决策表可以简单地定义决策表可以简单地定义决策表测试完成的准则测试完成的准则测试完成的准则测试完成的准则。。。。最基本的要求是至少用一个测最基本的要求是至少用一个测最基本的要求是至少用一个测最基本的要求是至少用一个测试用例来执行决策表中的每一列试用例来执行决策表中的每一列试用例来执行决策表中的每一列试用例来执行决策表中的每一列,,,,这样就验证了这样就验证了这样就验证了这样就验证了所有关心的输入条件组合和相应的输出结果所有关心的输入条件组合和相应的输出结果所有关心的输入条件组合和相应的输出结果所有关心的输入条件组合和相应的输出结果;;;;

同前面介绍的方法一样同前面介绍的方法一样同前面介绍的方法一样同前面介绍的方法一样,,,,可以简单地定义决策表可以简单地定义决策表可以简单地定义决策表可以简单地定义决策表测试完成的准则测试完成的准则测试完成的准则测试完成的准则。。。。最基本的要求是至少用一个测最基本的要求是至少用一个测最基本的要求是至少用一个测最基本的要求是至少用一个测试用例来执行决策表中的每一列试用例来执行决策表中的每一列试用例来执行决策表中的每一列试用例来执行决策表中的每一列,,,,这样就验证了这样就验证了这样就验证了这样就验证了所有关心的输入条件组合和相应的输出结果所有关心的输入条件组合和相应的输出结果所有关心的输入条件组合和相应的输出结果所有关心的输入条件组合和相应的输出结果;;;;

Page 90: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

90测试设计技术 版权所有©郑文强

决策表测试决策表测试决策表测试决策表测试

决策表测试决策表测试决策表测试决策表测试价值价值价值价值

根据可能的输入条件组合来定义决策表是一种系根据可能的输入条件组合来定义决策表是一种系根据可能的输入条件组合来定义决策表是一种系根据可能的输入条件组合来定义决策表是一种系统化而且非常正式的方法统化而且非常正式的方法统化而且非常正式的方法统化而且非常正式的方法,,,,它可以覆盖一些在其它可以覆盖一些在其它可以覆盖一些在其它可以覆盖一些在其他测试用例设计技术中没有包含的输入组合他测试用例设计技术中没有包含的输入组合他测试用例设计技术中没有包含的输入组合他测试用例设计技术中没有包含的输入组合。。。。但但但但是是是是,,,,在优化决策表时可能会引入错误在优化决策表时可能会引入错误在优化决策表时可能会引入错误在优化决策表时可能会引入错误,,,,比如忽略比如忽略比如忽略比如忽略了需要考虑的输入和条件的组合了需要考虑的输入和条件的组合了需要考虑的输入和条件的组合了需要考虑的输入和条件的组合。。。。

正如前面提到正如前面提到正如前面提到正如前面提到,,,,在条件的数量和依赖关系增加在条件的数量和依赖关系增加在条件的数量和依赖关系增加在条件的数量和依赖关系增加时时时时,,,,决策表的规模增加得非常快决策表的规模增加得非常快决策表的规模增加得非常快决策表的规模增加得非常快,,,,从而失去可读从而失去可读从而失去可读从而失去可读性性性性。。。。如果没有工具的支持如果没有工具的支持如果没有工具的支持如果没有工具的支持,,,,使用决策表技术就不使用决策表技术就不使用决策表技术就不使用决策表技术就不太容易太容易太容易太容易;;;;

根据可能的输入条件组合来定义决策表是一种系根据可能的输入条件组合来定义决策表是一种系根据可能的输入条件组合来定义决策表是一种系根据可能的输入条件组合来定义决策表是一种系统化而且非常正式的方法统化而且非常正式的方法统化而且非常正式的方法统化而且非常正式的方法,,,,它可以覆盖一些在其它可以覆盖一些在其它可以覆盖一些在其它可以覆盖一些在其他测试用例设计技术中没有包含的输入组合他测试用例设计技术中没有包含的输入组合他测试用例设计技术中没有包含的输入组合他测试用例设计技术中没有包含的输入组合。。。。但但但但是是是是,,,,在优化决策表时可能会引入错误在优化决策表时可能会引入错误在优化决策表时可能会引入错误在优化决策表时可能会引入错误,,,,比如忽略比如忽略比如忽略比如忽略了需要考虑的输入和条件的组合了需要考虑的输入和条件的组合了需要考虑的输入和条件的组合了需要考虑的输入和条件的组合。。。。

正如前面提到正如前面提到正如前面提到正如前面提到,,,,在条件的数量和依赖关系增加在条件的数量和依赖关系增加在条件的数量和依赖关系增加在条件的数量和依赖关系增加时时时时,,,,决策表的规模增加得非常快决策表的规模增加得非常快决策表的规模增加得非常快决策表的规模增加得非常快,,,,从而失去可读从而失去可读从而失去可读从而失去可读性性性性。。。。如果没有工具的支持如果没有工具的支持如果没有工具的支持如果没有工具的支持,,,,使用决策表技术就不使用决策表技术就不使用决策表技术就不使用决策表技术就不太容易太容易太容易太容易;;;;

Page 91: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

91测试设计技术 版权所有©郑文强

决策表测试决策表测试决策表测试决策表测试::::练习练习练习练习

练习输出练习输出练习输出练习输出

� 输出初始的三角形判定决策表输出初始的三角形判定决策表输出初始的三角形判定决策表输出初始的三角形判定决策表;;;;

� 根据前面的知识根据前面的知识根据前面的知识根据前面的知识,,,,将初始决策表进行合理的优化将初始决策表进行合理的优化将初始决策表进行合理的优化将初始决策表进行合理的优化,,,,得到简化的决策表得到简化的决策表得到简化的决策表得到简化的决策表;;;;

� 根据简化的决策表根据简化的决策表根据简化的决策表根据简化的决策表,,,,设计概要测试用例设计概要测试用例设计概要测试用例设计概要测试用例;;;;

Page 92: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

92测试设计技术 版权所有©郑文强

用例测试用例测试用例测试用例测试

用例测试用例测试用例测试用例测试定义定义定义定义

通过用例通过用例通过用例通过用例((((Use Cases))))或业务场景来设计测或业务场景来设计测或业务场景来设计测或业务场景来设计测试试试试,,,,用例描述了参与者用例描述了参与者用例描述了参与者用例描述了参与者((((包括用户与系统包括用户与系统包括用户与系统包括用户与系统))))之间之间之间之间的相互作用的相互作用的相互作用的相互作用,,,,并从这些交互产生一个从用户的角并从这些交互产生一个从用户的角并从这些交互产生一个从用户的角并从这些交互产生一个从用户的角度所期望和能观察到的结果度所期望和能观察到的结果度所期望和能观察到的结果度所期望和能观察到的结果;;;;

每个用例都有测试前置条件每个用例都有测试前置条件每个用例都有测试前置条件每个用例都有测试前置条件,,,,这是用例成功执行这是用例成功执行这是用例成功执行这是用例成功执行的必要条件的必要条件的必要条件的必要条件。。。。每个用例结束后都存在后置条件每个用例结束后都存在后置条件每个用例结束后都存在后置条件每个用例结束后都存在后置条件,,,,这是在用例执行完成后能观察到的结果和系统的这是在用例执行完成后能观察到的结果和系统的这是在用例执行完成后能观察到的结果和系统的这是在用例执行完成后能观察到的结果和系统的结束状态结束状态结束状态结束状态;;;;

通过用例通过用例通过用例通过用例((((Use Cases))))或业务场景来设计测或业务场景来设计测或业务场景来设计测或业务场景来设计测试试试试,,,,用例描述了参与者用例描述了参与者用例描述了参与者用例描述了参与者((((包括用户与系统包括用户与系统包括用户与系统包括用户与系统))))之间之间之间之间的相互作用的相互作用的相互作用的相互作用,,,,并从这些交互产生一个从用户的角并从这些交互产生一个从用户的角并从这些交互产生一个从用户的角并从这些交互产生一个从用户的角度所期望和能观察到的结果度所期望和能观察到的结果度所期望和能观察到的结果度所期望和能观察到的结果;;;;

每个用例都有测试前置条件每个用例都有测试前置条件每个用例都有测试前置条件每个用例都有测试前置条件,,,,这是用例成功执行这是用例成功执行这是用例成功执行这是用例成功执行的必要条件的必要条件的必要条件的必要条件。。。。每个用例结束后都存在后置条件每个用例结束后都存在后置条件每个用例结束后都存在后置条件每个用例结束后都存在后置条件,,,,这是在用例执行完成后能观察到的结果和系统的这是在用例执行完成后能观察到的结果和系统的这是在用例执行完成后能观察到的结果和系统的这是在用例执行完成后能观察到的结果和系统的结束状态结束状态结束状态结束状态;;;;

Page 93: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

93测试设计技术 版权所有©郑文强

用例测试用例测试用例测试用例测试

用例测试用例测试用例测试用例测试例子例子例子例子

Page 94: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

94测试设计技术 版权所有©郑文强

用例测试用例测试用例测试用例测试

测试用例测试用例测试用例测试用例必要信息必要信息必要信息必要信息

�开始情况和前置条件开始情况和前置条件开始情况和前置条件开始情况和前置条件;;;;

�其他可能的条件其他可能的条件其他可能的条件其他可能的条件;;;;

�期望结果期望结果期望结果期望结果;;;;

�后置条件后置条件后置条件后置条件;;;;

Page 95: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

95测试设计技术 版权所有©郑文强

用例测试用例测试用例测试用例测试

用例测试技术的用例测试技术的用例测试技术的用例测试技术的价值价值价值价值

�基于用例的测试技术适合于测试典型的用户系统基于用例的测试技术适合于测试典型的用户系统基于用例的测试技术适合于测试典型的用户系统基于用例的测试技术适合于测试典型的用户系统交互交互交互交互。。。。因此因此因此因此,,,,将这种技术应用在验收测试和系统将这种技术应用在验收测试和系统将这种技术应用在验收测试和系统将这种技术应用在验收测试和系统测试中是最好的测试中是最好的测试中是最好的测试中是最好的;;;;

�另外另外另外另外,,,,测试规格说明工具可以用于支持用例测试测试规格说明工具可以用于支持用例测试测试规格说明工具可以用于支持用例测试测试规格说明工具可以用于支持用例测试技术技术技术技术。。。。其他测试技术其他测试技术其他测试技术其他测试技术((((如边界值分析如边界值分析如边界值分析如边界值分析))))可以在这可以在这可以在这可以在这方面做些辅助方面做些辅助方面做些辅助方面做些辅助;;;;

Page 96: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

96测试设计技术 版权所有©郑文强

其他黑盒测试技术其他黑盒测试技术其他黑盒测试技术其他黑盒测试技术

随机测试随机测试随机测试随机测试

随机选择数据作为测试用例的值随机选择数据作为测试用例的值随机选择数据作为测试用例的值随机选择数据作为测试用例的值;;;;

随机测试随机测试随机测试随机测试

随机选择数据作为测试用例的值随机选择数据作为测试用例的值随机选择数据作为测试用例的值随机选择数据作为测试用例的值;;;;

冒烟测试冒烟测试冒烟测试冒烟测试

冒烟测试通常被理解为冒烟测试通常被理解为冒烟测试通常被理解为冒烟测试通常被理解为“快速且脏快速且脏快速且脏快速且脏”的测试的测试的测试的测试,,,,主要的主要的主要的主要的目的是验证测试对象的最低要求的可靠性目的是验证测试对象的最低要求的可靠性目的是验证测试对象的最低要求的可靠性目的是验证测试对象的最低要求的可靠性;;;;

冒烟测试主要集中在测试对象的主要功能上冒烟测试主要集中在测试对象的主要功能上冒烟测试主要集中在测试对象的主要功能上冒烟测试主要集中在测试对象的主要功能上,,,,不会不会不会不会对测试的输出进行详细的评估对测试的输出进行详细的评估对测试的输出进行详细的评估对测试的输出进行详细的评估;;;;

冒烟测试冒烟测试冒烟测试冒烟测试

冒烟测试通常被理解为冒烟测试通常被理解为冒烟测试通常被理解为冒烟测试通常被理解为“快速且脏快速且脏快速且脏快速且脏”的测试的测试的测试的测试,,,,主要的主要的主要的主要的目的是验证测试对象的最低要求的可靠性目的是验证测试对象的最低要求的可靠性目的是验证测试对象的最低要求的可靠性目的是验证测试对象的最低要求的可靠性;;;;

冒烟测试主要集中在测试对象的主要功能上冒烟测试主要集中在测试对象的主要功能上冒烟测试主要集中在测试对象的主要功能上冒烟测试主要集中在测试对象的主要功能上,,,,不会不会不会不会对测试的输出进行详细的评估对测试的输出进行详细的评估对测试的输出进行详细的评估对测试的输出进行详细的评估;;;;

Page 97: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

97测试设计技术 版权所有©郑文强

黑盒测试技术讨论黑盒测试技术讨论黑盒测试技术讨论黑盒测试技术讨论

Page 98: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

98测试设计技术 版权所有©郑文强

黑盒测试技术讨论黑盒测试技术讨论黑盒测试技术讨论黑盒测试技术讨论

Page 99: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

99测试设计技术 版权所有©郑文强

课程内容课程内容课程内容课程内容

1. 测试开发过程测试开发过程测试开发过程测试开发过程

2. 测试设计技术类型测试设计技术类型测试设计技术类型测试设计技术类型

3. 黑盒测试技术黑盒测试技术黑盒测试技术黑盒测试技术

4. 白盒测试技术白盒测试技术白盒测试技术白盒测试技术

5. 基于经验的技术基于经验的技术基于经验的技术基于经验的技术

6. 测试技术的选择测试技术的选择测试技术的选择测试技术的选择

Page 100: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

100测试设计技术 版权所有©郑文强

白盒测试技术白盒测试技术白盒测试技术白盒测试技术

ISTQB考试知识点考试知识点考试知识点考试知识点

�描述代码覆盖的概念及其重要性描述代码覆盖的概念及其重要性描述代码覆盖的概念及其重要性描述代码覆盖的概念及其重要性((((K2););););

�解释语句覆盖和判定覆盖等概念解释语句覆盖和判定覆盖等概念解释语句覆盖和判定覆盖等概念解释语句覆盖和判定覆盖等概念,,,, 理解这些概理解这些概理解这些概理解这些概念除了可以应用在组件测试外念除了可以应用在组件测试外念除了可以应用在组件测试外念除了可以应用在组件测试外,,,,还可以应用在其还可以应用在其还可以应用在其还可以应用在其他任何测试级别上他任何测试级别上他任何测试级别上他任何测试级别上((((K2););););

�根据给定的控制流根据给定的控制流根据给定的控制流根据给定的控制流,,,,使用下面的测试设计技术设使用下面的测试设计技术设使用下面的测试设计技术设使用下面的测试设计技术设计测试用例计测试用例计测试用例计测试用例((((K3):):):):

� :语句测试语句测试语句测试语句测试

� :判定测试判定测试判定测试判定测试

�评估语句覆盖和判定覆盖的完整性评估语句覆盖和判定覆盖的完整性评估语句覆盖和判定覆盖的完整性评估语句覆盖和判定覆盖的完整性((((K3););););

Page 101: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

101测试设计技术 版权所有©郑文强

白盒测试技术白盒测试技术白盒测试技术白盒测试技术

代码覆盖的代码覆盖的代码覆盖的代码覆盖的含义含义含义含义

白盒测试技术的基础是测试对象的代码白盒测试技术的基础是测试对象的代码白盒测试技术的基础是测试对象的代码白盒测试技术的基础是测试对象的代码,,,,因此也因此也因此也因此也称之为基于代码的测试技术或者基于结构的测试称之为基于代码的测试技术或者基于结构的测试称之为基于代码的测试技术或者基于结构的测试称之为基于代码的测试技术或者基于结构的测试技术技术技术技术;;;;

白盒测试技术的基础是测试对象的代码白盒测试技术的基础是测试对象的代码白盒测试技术的基础是测试对象的代码白盒测试技术的基础是测试对象的代码,,,,因此也因此也因此也因此也称之为基于代码的测试技术或者基于结构的测试称之为基于代码的测试技术或者基于结构的测试称之为基于代码的测试技术或者基于结构的测试称之为基于代码的测试技术或者基于结构的测试技术技术技术技术;;;;

基于代码的测试技术基于代码的测试技术基于代码的测试技术基于代码的测试技术,,,,其代码覆盖可以基于不同其代码覆盖可以基于不同其代码覆盖可以基于不同其代码覆盖可以基于不同的对象进行判断的对象进行判断的对象进行判断的对象进行判断,,,,比如基于语句的语句判断比如基于语句的语句判断比如基于语句的语句判断比如基于语句的语句判断、、、、基基基基于分支的分支判断等于分支的分支判断等于分支的分支判断等于分支的分支判断等;;;;

基于代码的测试技术基于代码的测试技术基于代码的测试技术基于代码的测试技术,,,,其代码覆盖可以基于不同其代码覆盖可以基于不同其代码覆盖可以基于不同其代码覆盖可以基于不同的对象进行判断的对象进行判断的对象进行判断的对象进行判断,,,,比如基于语句的语句判断比如基于语句的语句判断比如基于语句的语句判断比如基于语句的语句判断、、、、基基基基于分支的分支判断等于分支的分支判断等于分支的分支判断等于分支的分支判断等;;;;

白盒测试技术的测试期望结果应该是根据需求或白盒测试技术的测试期望结果应该是根据需求或白盒测试技术的测试期望结果应该是根据需求或白盒测试技术的测试期望结果应该是根据需求或规格说明来确定的规格说明来确定的规格说明来确定的规格说明来确定的,,,,而不是代码本身来确定而不是代码本身来确定而不是代码本身来确定而不是代码本身来确定;;;;

白盒测试技术的测试期望结果应该是根据需求或白盒测试技术的测试期望结果应该是根据需求或白盒测试技术的测试期望结果应该是根据需求或白盒测试技术的测试期望结果应该是根据需求或规格说明来确定的规格说明来确定的规格说明来确定的规格说明来确定的,,,,而不是代码本身来确定而不是代码本身来确定而不是代码本身来确定而不是代码本身来确定;;;;

Page 102: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

102测试设计技术 版权所有©郑文强

白盒测试技术白盒测试技术白盒测试技术白盒测试技术

代码覆盖的代码覆盖的代码覆盖的代码覆盖的步骤步骤步骤步骤

第一步第一步第一步第一步::::源代码转换为控制流图源代码转换为控制流图源代码转换为控制流图源代码转换为控制流图。。。。控制流图可以控制流图可以控制流图可以控制流图可以比较直观而详细地描述需要覆盖的语句比较直观而详细地描述需要覆盖的语句比较直观而详细地描述需要覆盖的语句比较直观而详细地描述需要覆盖的语句;;;;

第一步第一步第一步第一步::::源代码转换为控制流图源代码转换为控制流图源代码转换为控制流图源代码转换为控制流图。。。。控制流图可以控制流图可以控制流图可以控制流图可以比较直观而详细地描述需要覆盖的语句比较直观而详细地描述需要覆盖的语句比较直观而详细地描述需要覆盖的语句比较直观而详细地描述需要覆盖的语句;;;;

第二步第二步第二步第二步::::分析控制流图分析控制流图分析控制流图分析控制流图,,,,根据测试对象的要求选根据测试对象的要求选根据测试对象的要求选根据测试对象的要求选择需要覆盖的代码择需要覆盖的代码择需要覆盖的代码择需要覆盖的代码;;;;

第二步第二步第二步第二步::::分析控制流图分析控制流图分析控制流图分析控制流图,,,,根据测试对象的要求选根据测试对象的要求选根据测试对象的要求选根据测试对象的要求选择需要覆盖的代码择需要覆盖的代码择需要覆盖的代码择需要覆盖的代码;;;;

第三步第三步第三步第三步::::根据第二步的结果确定测试数据根据第二步的结果确定测试数据根据第二步的结果确定测试数据根据第二步的结果确定测试数据,,,,生成生成生成生成测试用例测试用例测试用例测试用例;;;;

第三步第三步第三步第三步::::根据第二步的结果确定测试数据根据第二步的结果确定测试数据根据第二步的结果确定测试数据根据第二步的结果确定测试数据,,,,生成生成生成生成测试用例测试用例测试用例测试用例;;;;

Page 103: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

103测试设计技术 版权所有©郑文强

白盒测试技术白盒测试技术白盒测试技术白盒测试技术

控制流图控制流图控制流图控制流图例子例子例子例子

Page 104: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

104测试设计技术 版权所有©郑文强

语句覆盖语句覆盖语句覆盖语句覆盖((((Statement Coverage))))

语句覆盖的语句覆盖的语句覆盖的语句覆盖的含义含义含义含义

语句覆盖就是设计若干个测试用例语句覆盖就是设计若干个测试用例语句覆盖就是设计若干个测试用例语句覆盖就是设计若干个测试用例,,,,运行被测程运行被测程运行被测程运行被测程序序序序,,,,使得每一可执行语句至少执行一次使得每一可执行语句至少执行一次使得每一可执行语句至少执行一次使得每一可执行语句至少执行一次;;;;

语句覆盖就是设计若干个测试用例语句覆盖就是设计若干个测试用例语句覆盖就是设计若干个测试用例语句覆盖就是设计若干个测试用例,,,,运行被测程运行被测程运行被测程运行被测程序序序序,,,,使得每一可执行语句至少执行一次使得每一可执行语句至少执行一次使得每一可执行语句至少执行一次使得每一可执行语句至少执行一次;;;;

语句覆盖的第一步是将源代码转换为控制流图语句覆盖的第一步是将源代码转换为控制流图语句覆盖的第一步是将源代码转换为控制流图语句覆盖的第一步是将源代码转换为控制流图。。。。控制流图可以比较直观而详细地描述需要覆盖的控制流图可以比较直观而详细地描述需要覆盖的控制流图可以比较直观而详细地描述需要覆盖的控制流图可以比较直观而详细地描述需要覆盖的语句语句语句语句;;;;

语句覆盖的第一步是将源代码转换为控制流图语句覆盖的第一步是将源代码转换为控制流图语句覆盖的第一步是将源代码转换为控制流图语句覆盖的第一步是将源代码转换为控制流图。。。。控制流图可以比较直观而详细地描述需要覆盖的控制流图可以比较直观而详细地描述需要覆盖的控制流图可以比较直观而详细地描述需要覆盖的控制流图可以比较直观而详细地描述需要覆盖的语句语句语句语句;;;;

Page 105: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

105测试设计技术 版权所有©郑文强

语句覆盖语句覆盖语句覆盖语句覆盖((((Statement Coverage))))

语句覆盖语句覆盖语句覆盖语句覆盖例子例子例子例子

Page 106: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

106测试设计技术 版权所有©郑文强

语句覆盖语句覆盖语句覆盖语句覆盖((((Statement Coverage))))

语句覆盖语句覆盖语句覆盖语句覆盖测试用例测试用例测试用例测试用例1 42 3

Page 107: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

107测试设计技术 版权所有©郑文强

语句覆盖语句覆盖语句覆盖语句覆盖

语句覆盖语句覆盖语句覆盖语句覆盖测试完成准则测试完成准则测试完成准则测试完成准则

= ((((被执行的语句数量被执行的语句数量被执行的语句数量被执行的语句数量/总的语句数量总的语句数量总的语句数量总的语句数量))))×100%

只要执行前面例子中的第四条路径只要执行前面例子中的第四条路径只要执行前面例子中的第四条路径只要执行前面例子中的第四条路径((((比如比如比如比如a=8,,,,b=3作为输入作为输入作为输入作为输入))))的测试用例的测试用例的测试用例的测试用例,,,,就可以达到就可以达到就可以达到就可以达到100%的语句覆盖率的语句覆盖率的语句覆盖率的语句覆盖率;;;;

语句覆盖语句覆盖语句覆盖语句覆盖,,,,有时候又叫做有时候又叫做有时候又叫做有时候又叫做C0覆盖覆盖覆盖覆盖,,,,是最弱的一种是最弱的一种是最弱的一种是最弱的一种覆盖覆盖覆盖覆盖;;;;

只要执行前面例子中的第四条路径只要执行前面例子中的第四条路径只要执行前面例子中的第四条路径只要执行前面例子中的第四条路径((((比如比如比如比如a=8,,,,b=3作为输入作为输入作为输入作为输入))))的测试用例的测试用例的测试用例的测试用例,,,,就可以达到就可以达到就可以达到就可以达到100%的语句覆盖率的语句覆盖率的语句覆盖率的语句覆盖率;;;;

语句覆盖语句覆盖语句覆盖语句覆盖,,,,有时候又叫做有时候又叫做有时候又叫做有时候又叫做C0覆盖覆盖覆盖覆盖,,,,是最弱的一种是最弱的一种是最弱的一种是最弱的一种覆盖覆盖覆盖覆盖;;;;

Page 108: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

108测试设计技术 版权所有©郑文强

语句覆盖语句覆盖语句覆盖语句覆盖::::练习练习练习练习

(A>1) and (B=0)(A>1) and (B=0)

(A=2) or (X>1)(A=2) or (X>1)

X=X/AX=X/A

X=X+1X=X+1

TT

TT

FF

FF

aa

bb

dd

cc

ee

练习输出练习输出练习输出练习输出

� 选择通过哪些测试用例选择通过哪些测试用例选择通过哪些测试用例选择通过哪些测试用例((((或者哪条或者哪条或者哪条或者哪条路径路径路径路径),),),),可以达到可以达到可以达到可以达到100%的语句覆的语句覆的语句覆的语句覆盖盖盖盖????

Page 109: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

109测试设计技术 版权所有©郑文强

分支覆盖分支覆盖分支覆盖分支覆盖((((Branch Coverage))))

分支覆盖的分支覆盖的分支覆盖的分支覆盖的含义含义含义含义

控制流图中的边是分支覆盖关注的焦点控制流图中的边是分支覆盖关注的焦点控制流图中的边是分支覆盖关注的焦点控制流图中的边是分支覆盖关注的焦点。。。。它不考它不考它不考它不考虑每条语句的执行情况虑每条语句的执行情况虑每条语句的执行情况虑每条语句的执行情况,,,,而是考虑判定的执行情而是考虑判定的执行情而是考虑判定的执行情而是考虑判定的执行情况况况况,,,,由判定的结果来决定执行哪条语句由判定的结果来决定执行哪条语句由判定的结果来决定执行哪条语句由判定的结果来决定执行哪条语句;;;;

测试需要确保每个判定得到了测试需要确保每个判定得到了测试需要确保每个判定得到了测试需要确保每个判定得到了TRUE和和和和FALSE的的的的结果结果结果结果,,,,即保证每个判定条件取即保证每个判定条件取即保证每个判定条件取即保证每个判定条件取TRUE和取假和取假和取假和取假FALSE各至少一次各至少一次各至少一次各至少一次。。。。分支覆盖又称为判定覆盖分支覆盖又称为判定覆盖分支覆盖又称为判定覆盖分支覆盖又称为判定覆盖((((decision coverage););););

控制流图中的边是分支覆盖关注的焦点控制流图中的边是分支覆盖关注的焦点控制流图中的边是分支覆盖关注的焦点控制流图中的边是分支覆盖关注的焦点。。。。它不考它不考它不考它不考虑每条语句的执行情况虑每条语句的执行情况虑每条语句的执行情况虑每条语句的执行情况,,,,而是考虑判定的执行情而是考虑判定的执行情而是考虑判定的执行情而是考虑判定的执行情况况况况,,,,由判定的结果来决定执行哪条语句由判定的结果来决定执行哪条语句由判定的结果来决定执行哪条语句由判定的结果来决定执行哪条语句;;;;

测试需要确保每个判定得到了测试需要确保每个判定得到了测试需要确保每个判定得到了测试需要确保每个判定得到了TRUE和和和和FALSE的的的的结果结果结果结果,,,,即保证每个判定条件取即保证每个判定条件取即保证每个判定条件取即保证每个判定条件取TRUE和取假和取假和取假和取假FALSE各至少一次各至少一次各至少一次各至少一次。。。。分支覆盖又称为判定覆盖分支覆盖又称为判定覆盖分支覆盖又称为判定覆盖分支覆盖又称为判定覆盖((((decision coverage););););

Page 110: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

110测试设计技术 版权所有©郑文强

分支覆盖分支覆盖分支覆盖分支覆盖((((Branch Coverage))))

分支覆盖的分支覆盖的分支覆盖的分支覆盖的测试用例测试用例测试用例测试用例1 42 3

Page 111: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

111测试设计技术 版权所有©郑文强

分支覆盖分支覆盖分支覆盖分支覆盖((((Branch Coverage))))

分支覆盖的分支覆盖的分支覆盖的分支覆盖的测试用例测试用例测试用例测试用例

执行执行执行执行1和和和和4路径达到路径达到路径达到路径达到100%的分支覆盖率的分支覆盖率的分支覆盖率的分支覆盖率,,,,比如比如比如比如::::

[a = 6, b = 3]和和和和[a = -1, b = 4]分别作为两个分别作为两个分别作为两个分别作为两个测试用例的输入测试用例的输入测试用例的输入测试用例的输入::::前一个用例实现了分支的前一个用例实现了分支的前一个用例实现了分支的前一个用例实现了分支的TT,,,,而后一个是分支而后一个是分支而后一个是分支而后一个是分支FF;;;;

执行执行执行执行1和和和和4路径达到路径达到路径达到路径达到100%的分支覆盖率的分支覆盖率的分支覆盖率的分支覆盖率,,,,比如比如比如比如::::

[a = 6, b = 3]和和和和[a = -1, b = 4]分别作为两个分别作为两个分别作为两个分别作为两个测试用例的输入测试用例的输入测试用例的输入测试用例的输入::::前一个用例实现了分支的前一个用例实现了分支的前一个用例实现了分支的前一个用例实现了分支的TT,,,,而后一个是分支而后一个是分支而后一个是分支而后一个是分支FF;;;;

执行执行执行执行2和和和和3路径也可达到路径也可达到路径也可达到路径也可达到100%的分支覆盖率的分支覆盖率的分支覆盖率的分支覆盖率,,,,比比比比如如如如::::

[a = -1, b = 3]和和和和[a = 6, b = 4]分别作为两个分别作为两个分别作为两个分别作为两个测试用例的输入测试用例的输入测试用例的输入测试用例的输入::::前一个用例实现了分支的前一个用例实现了分支的前一个用例实现了分支的前一个用例实现了分支的FT,,,,而后一个是分支而后一个是分支而后一个是分支而后一个是分支TF;;;;

执行执行执行执行2和和和和3路径也可达到路径也可达到路径也可达到路径也可达到100%的分支覆盖率的分支覆盖率的分支覆盖率的分支覆盖率,,,,比比比比如如如如::::

[a = -1, b = 3]和和和和[a = 6, b = 4]分别作为两个分别作为两个分别作为两个分别作为两个测试用例的输入测试用例的输入测试用例的输入测试用例的输入::::前一个用例实现了分支的前一个用例实现了分支的前一个用例实现了分支的前一个用例实现了分支的FT,,,,而后一个是分支而后一个是分支而后一个是分支而后一个是分支TF;;;;

Page 112: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

112测试设计技术 版权所有©郑文强

分支覆盖分支覆盖分支覆盖分支覆盖

分支覆盖分支覆盖分支覆盖分支覆盖测试完成准则测试完成准则测试完成准则测试完成准则

= ((((被执行的分支数量被执行的分支数量被执行的分支数量被执行的分支数量/总的分支数量总的分支数量总的分支数量总的分支数量))))×100%

分支覆盖分支覆盖分支覆盖分支覆盖,,,,有时候又叫做有时候又叫做有时候又叫做有时候又叫做C1覆盖覆盖覆盖覆盖,,,,100%的分支的分支的分支的分支覆盖可以保证覆盖可以保证覆盖可以保证覆盖可以保证100%的语句覆盖的语句覆盖的语句覆盖的语句覆盖;;;;

与语句覆盖相反与语句覆盖相反与语句覆盖相反与语句覆盖相反,,,,分支覆盖可以发现在空分支中分支覆盖可以发现在空分支中分支覆盖可以发现在空分支中分支覆盖可以发现在空分支中遗漏的语句遗漏的语句遗漏的语句遗漏的语句;;;;

分支覆盖分支覆盖分支覆盖分支覆盖,,,,有时候又叫做有时候又叫做有时候又叫做有时候又叫做C1覆盖覆盖覆盖覆盖,,,,100%的分支的分支的分支的分支覆盖可以保证覆盖可以保证覆盖可以保证覆盖可以保证100%的语句覆盖的语句覆盖的语句覆盖的语句覆盖;;;;

与语句覆盖相反与语句覆盖相反与语句覆盖相反与语句覆盖相反,,,,分支覆盖可以发现在空分支中分支覆盖可以发现在空分支中分支覆盖可以发现在空分支中分支覆盖可以发现在空分支中遗漏的语句遗漏的语句遗漏的语句遗漏的语句;;;;

Page 113: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

113测试设计技术 版权所有©郑文强

分支覆盖分支覆盖分支覆盖分支覆盖::::练习练习练习练习

(A>1) and (B=0)(A>1) and (B=0)

(A=2) or (X>1)(A=2) or (X>1)

X=X/AX=X/A

X=X+1X=X+1

TT

TT

FF

FF

aa

bb

dd

cc

ee

练习输出练习输出练习输出练习输出

� 画出分支覆盖的详细表格画出分支覆盖的详细表格画出分支覆盖的详细表格画出分支覆盖的详细表格;;;;

� 选择通过哪些测试用例选择通过哪些测试用例选择通过哪些测试用例选择通过哪些测试用例((((或者哪条或者哪条或者哪条或者哪条路径路径路径路径),),),),可以达到可以达到可以达到可以达到100%的分支覆的分支覆的分支覆的分支覆盖盖盖盖????

Page 114: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

114测试设计技术 版权所有©郑文强

白盒技术的讨论白盒技术的讨论白盒技术的讨论白盒技术的讨论

测试强度的测试强度的测试强度的测试强度的定义定义定义定义

�所有白盒技术的基础是源代码所有白盒技术的基础是源代码所有白盒技术的基础是源代码所有白盒技术的基础是源代码,,,,可以根据程序结可以根据程序结可以根据程序结可以根据程序结构的复杂程度构的复杂程度构的复杂程度构的复杂程度,,,,选择和应用适当的测试用例设计选择和应用适当的测试用例设计选择和应用适当的测试用例设计选择和应用适当的测试用例设计技术技术技术技术;;;;

�根据源代码和所选择的技术根据源代码和所选择的技术根据源代码和所选择的技术根据源代码和所选择的技术,,,,比如语句覆盖比如语句覆盖比如语句覆盖比如语句覆盖、、、、分分分分支覆盖支覆盖支覆盖支覆盖、、、、条件覆盖条件覆盖条件覆盖条件覆盖、、、、判定判定判定判定-条件覆盖等条件覆盖等条件覆盖等条件覆盖等,,,,可以确可以确可以确可以确定测试的强度定测试的强度定测试的强度定测试的强度;;;;

白盒测试技术一般应用在低级别的测试中白盒测试技术一般应用在低级别的测试中白盒测试技术一般应用在低级别的测试中白盒测试技术一般应用在低级别的测试中,,,,在高级在高级在高级在高级别的测试中别的测试中别的测试中别的测试中,,,,一般不关注程序的代码一般不关注程序的代码一般不关注程序的代码一般不关注程序的代码!!!!

白盒测试技术一般应用在低级别的测试中白盒测试技术一般应用在低级别的测试中白盒测试技术一般应用在低级别的测试中白盒测试技术一般应用在低级别的测试中,,,,在高级在高级在高级在高级别的测试中别的测试中别的测试中别的测试中,,,,一般不关注程序的代码一般不关注程序的代码一般不关注程序的代码一般不关注程序的代码!!!!

Page 115: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

115测试设计技术 版权所有©郑文强

白盒技术的讨论白盒技术的讨论白盒技术的讨论白盒技术的讨论

白盒技术的白盒技术的白盒技术的白盒技术的不足不足不足不足

白盒技术并不能发现需求没有实现或者需求遗漏的白盒技术并不能发现需求没有实现或者需求遗漏的白盒技术并不能发现需求没有实现或者需求遗漏的白盒技术并不能发现需求没有实现或者需求遗漏的问题问题问题问题。。。。白盒技术只能验证存在的代码白盒技术只能验证存在的代码白盒技术只能验证存在的代码白盒技术只能验证存在的代码,,,,即程序中已即程序中已即程序中已即程序中已实现的需求实现的需求实现的需求实现的需求,,,,而无法检查出应该在系统中实现而未而无法检查出应该在系统中实现而未而无法检查出应该在系统中实现而未而无法检查出应该在系统中实现而未实现的部分实现的部分实现的部分实现的部分。。。。因此因此因此因此,,,,查找遗漏需求需要其他测试设查找遗漏需求需要其他测试设查找遗漏需求需要其他测试设查找遗漏需求需要其他测试设计技术计技术计技术计技术,,,,比如高级别的测试比如高级别的测试比如高级别的测试比如高级别的测试((((系统测试等系统测试等系统测试等系统测试等))))或者通或者通或者通或者通

过静态测试方式过静态测试方式过静态测试方式过静态测试方式!!!!

白盒技术并不能发现需求没有实现或者需求遗漏的白盒技术并不能发现需求没有实现或者需求遗漏的白盒技术并不能发现需求没有实现或者需求遗漏的白盒技术并不能发现需求没有实现或者需求遗漏的问题问题问题问题。。。。白盒技术只能验证存在的代码白盒技术只能验证存在的代码白盒技术只能验证存在的代码白盒技术只能验证存在的代码,,,,即程序中已即程序中已即程序中已即程序中已实现的需求实现的需求实现的需求实现的需求,,,,而无法检查出应该在系统中实现而未而无法检查出应该在系统中实现而未而无法检查出应该在系统中实现而未而无法检查出应该在系统中实现而未实现的部分实现的部分实现的部分实现的部分。。。。因此因此因此因此,,,,查找遗漏需求需要其他测试设查找遗漏需求需要其他测试设查找遗漏需求需要其他测试设查找遗漏需求需要其他测试设计技术计技术计技术计技术,,,,比如高级别的测试比如高级别的测试比如高级别的测试比如高级别的测试((((系统测试等系统测试等系统测试等系统测试等))))或者通或者通或者通或者通

过静态测试方式过静态测试方式过静态测试方式过静态测试方式!!!!

白盒测试技术一般应该有工具的支持白盒测试技术一般应该有工具的支持白盒测试技术一般应该有工具的支持白盒测试技术一般应该有工具的支持,,,,完全通过人完全通过人完全通过人完全通过人工的方式几乎不可能实现覆盖的目标工的方式几乎不可能实现覆盖的目标工的方式几乎不可能实现覆盖的目标工的方式几乎不可能实现覆盖的目标!!!!

白盒测试技术一般应该有工具的支持白盒测试技术一般应该有工具的支持白盒测试技术一般应该有工具的支持白盒测试技术一般应该有工具的支持,,,,完全通过人完全通过人完全通过人完全通过人工的方式几乎不可能实现覆盖的目标工的方式几乎不可能实现覆盖的目标工的方式几乎不可能实现覆盖的目标工的方式几乎不可能实现覆盖的目标!!!!

Page 116: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

116测试设计技术 版权所有©郑文强

课程内容课程内容课程内容课程内容

1. 测试开发过程测试开发过程测试开发过程测试开发过程

2. 测试设计技术类型测试设计技术类型测试设计技术类型测试设计技术类型

3. 黑盒测试技术黑盒测试技术黑盒测试技术黑盒测试技术

4. 白盒测试技术白盒测试技术白盒测试技术白盒测试技术

5. 基于经验的技术基于经验的技术基于经验的技术基于经验的技术

6. 测试技术的选择测试技术的选择测试技术的选择测试技术的选择

Page 117: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

117测试设计技术 版权所有©郑文强

基于经验的技术基于经验的技术基于经验的技术基于经验的技术

ISTQB考试知识点考试知识点考试知识点考试知识点

�复述在哪些情况下复述在哪些情况下复述在哪些情况下复述在哪些情况下,,,,可以使用基于直觉可以使用基于直觉可以使用基于直觉可以使用基于直觉、、、、基于经基于经基于经基于经验和知识验和知识验和知识验和知识、、、、基于对常见缺陷的认识来编写测试用基于对常见缺陷的认识来编写测试用基于对常见缺陷的认识来编写测试用基于对常见缺陷的认识来编写测试用例例例例((((K1););););

�比较基于经验的方法和基于规格说明的方法之间比较基于经验的方法和基于规格说明的方法之间比较基于经验的方法和基于规格说明的方法之间比较基于经验的方法和基于规格说明的方法之间的区别的区别的区别的区别((((K2););););

Page 118: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

118测试设计技术 版权所有©郑文强

基于经验的技术基于经验的技术基于经验的技术基于经验的技术

基于直觉和经验基于直觉和经验基于直觉和经验基于直觉和经验的技术的技术的技术的技术

�测试基础文档不全或者不完善测试基础文档不全或者不完善测试基础文档不全或者不完善测试基础文档不全或者不完善;;;;

�基于测试人员的技术基于测试人员的技术基于测试人员的技术基于测试人员的技术、、、、知识和经验知识和经验知识和经验知识和经验;;;;

�可以作为系统化测试用例设计的补充可以作为系统化测试用例设计的补充可以作为系统化测试用例设计的补充可以作为系统化测试用例设计的补充,,,,它可以发它可以发它可以发它可以发现一些运用系统化方法进行测试时无法发现的问现一些运用系统化方法进行测试时无法发现的问现一些运用系统化方法进行测试时无法发现的问现一些运用系统化方法进行测试时无法发现的问题题题题;;;;

�基于直觉和经验的测试用例设计方法不能简单地基于直觉和经验的测试用例设计方法不能简单地基于直觉和经验的测试用例设计方法不能简单地基于直觉和经验的测试用例设计方法不能简单地归类为黑盒测试技术或白盒测试技术归类为黑盒测试技术或白盒测试技术归类为黑盒测试技术或白盒测试技术归类为黑盒测试技术或白盒测试技术。。。。这一技术这一技术这一技术这一技术应用在比较高的测试级别上应用在比较高的测试级别上应用在比较高的测试级别上应用在比较高的测试级别上;;;;

Page 119: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

119测试设计技术 版权所有©郑文强

基于经验的技术基于经验的技术基于经验的技术基于经验的技术

错误推测法错误推测法错误推测法错误推测法((((Error Guessing))))

�测试人员通过选择测试用例来发现预期的问题和测试人员通过选择测试用例来发现预期的问题和测试人员通过选择测试用例来发现预期的问题和测试人员通过选择测试用例来发现预期的问题和它们的征兆它们的征兆它们的征兆它们的征兆;;;;

�测试用例完全基于什么地方会发生故障的经验测试用例完全基于什么地方会发生故障的经验测试用例完全基于什么地方会发生故障的经验测试用例完全基于什么地方会发生故障的经验,,,,或者测试人员对什么地方可能会发生故障的假或者测试人员对什么地方可能会发生故障的假或者测试人员对什么地方可能会发生故障的假或者测试人员对什么地方可能会发生故障的假设设设设;;;;

�需要借鉴类似的应用程序开发的经验和类似技术需要借鉴类似的应用程序开发的经验和类似技术需要借鉴类似的应用程序开发的经验和类似技术需要借鉴类似的应用程序开发的经验和类似技术方面的知识方面的知识方面的知识方面的知识,,,,以及测试方面的经验以及测试方面的经验以及测试方面的经验以及测试方面的经验;;;;

Page 120: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

120测试设计技术 版权所有©郑文强

基于经验的技术基于经验的技术基于经验的技术基于经验的技术

错误推测法的错误推测法的错误推测法的错误推测法的过程过程过程过程

缺陷列表

缺陷分类

失效模式分析

测试思想

测试设计

测试执行

缺陷收集和分析

Page 121: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

121测试设计技术 版权所有©郑文强

基于经验的技术基于经验的技术基于经验的技术基于经验的技术

测性测试测性测试测性测试测性测试定义定义定义定义

测性测试是基于经验和技术的测性测试是基于经验和技术的测性测试是基于经验和技术的测性测试是基于经验和技术的 ,,,,用来为项目用来为项目用来为项目用来为项目相关人员提 产品质量或者产品 务信息相关人员提 产品质量或者产品 务信息相关人员提 产品质量或者产品 务信息相关人员提 产品质量或者产品 务信息;;;;

测性测试软件测试的一种测性测试软件测试的一种测性测试软件测试的一种测性测试软件测试的一种,,,,它强调测试人员的自它强调测试人员的自它强调测试人员的自它强调测试人员的自由和主管能动性由和主管能动性由和主管能动性由和主管能动性,,,,在软件生命周期过程中在软件生命周期过程中在软件生命周期过程中在软件生命周期过程中,,,,通过同通过同通过同通过同步的测试学习步的测试学习步的测试学习步的测试学习、、、、测试设计和测试执行来优化测试人测试设计和测试执行来优化测试人测试设计和测试执行来优化测试人测试设计和测试执行来优化测试人员的价值员的价值员的价值员的价值!!!!

测性测试是基于经验和技术的测性测试是基于经验和技术的测性测试是基于经验和技术的测性测试是基于经验和技术的 ,,,,用来为项目用来为项目用来为项目用来为项目相关人员提 产品质量或者产品 务信息相关人员提 产品质量或者产品 务信息相关人员提 产品质量或者产品 务信息相关人员提 产品质量或者产品 务信息;;;;

测性测试软件测试的一种测性测试软件测试的一种测性测试软件测试的一种测性测试软件测试的一种,,,,它强调测试人员的自它强调测试人员的自它强调测试人员的自它强调测试人员的自由和主管能动性由和主管能动性由和主管能动性由和主管能动性,,,,在软件生命周期过程中在软件生命周期过程中在软件生命周期过程中在软件生命周期过程中,,,,通过同通过同通过同通过同步的测试学习步的测试学习步的测试学习步的测试学习、、、、测试设计和测试执行来优化测试人测试设计和测试执行来优化测试人测试设计和测试执行来优化测试人测试设计和测试执行来优化测试人员的价值员的价值员的价值员的价值!!!!

Page 122: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

122测试设计技术 版权所有©郑文强

基于经验的技术基于经验的技术基于经验的技术基于经验的技术

测性测试测性测试测性测试测性测试目的目的目的目的

Burst of testing触发测试的原因可以是触发测试的原因可以是触发测试的原因可以是触发测试的原因可以是::::学习产学习产学习产学习产品品品品、、、、选择覆盖内容选择覆盖内容选择覆盖内容选择覆盖内容、、、、确定测试准则确定测试准则确定测试准则确定测试准则、、、、 置测试系统置测试系统置测试系统置测试系统、、、、操作测试系统操作测试系统操作测试系统操作测试系统、、、、观察被测系统观察被测系统观察被测系统观察被测系统、、、、评估被测系统评估被测系统评估被测系统评估被测系统、、、、组组组组织要求等织要求等织要求等织要求等;;;;根据不同的条件根据不同的条件根据不同的条件根据不同的条件,,,,来确定测试什么来确定测试什么来确定测试什么来确定测试什么、、、、什什什什么时候开始测试么时候开始测试么时候开始测试么时候开始测试,,,,以及如何测试以及如何测试以及如何测试以及如何测试!!!!

Burst of testing触发测试的原因可以是触发测试的原因可以是触发测试的原因可以是触发测试的原因可以是::::学习产学习产学习产学习产品品品品、、、、选择覆盖内容选择覆盖内容选择覆盖内容选择覆盖内容、、、、确定测试准则确定测试准则确定测试准则确定测试准则、、、、 置测试系统置测试系统置测试系统置测试系统、、、、操作测试系统操作测试系统操作测试系统操作测试系统、、、、观察被测系统观察被测系统观察被测系统观察被测系统、、、、评估被测系统评估被测系统评估被测系统评估被测系统、、、、组组组组织要求等织要求等织要求等织要求等;;;;根据不同的条件根据不同的条件根据不同的条件根据不同的条件,,,,来确定测试什么来确定测试什么来确定测试什么来确定测试什么、、、、什什什什么时候开始测试么时候开始测试么时候开始测试么时候开始测试,,,,以及如何测试以及如何测试以及如何测试以及如何测试!!!!

Page 123: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

123测试设计技术 版权所有©郑文强

基于经验的技术基于经验的技术基于经验的技术基于经验的技术

测性测试测性测试测性测试测性测试关注点关注点关注点关注点

�为什么要执行测试为什么要执行测试为什么要执行测试为什么要执行测试????测试执行的目标是什么测试执行的目标是什么测试执行的目标是什么测试执行的目标是什么????

� 测试什么内容测试什么内容测试什么内容测试什么内容????

� 如何测试如何测试如何测试如何测试????使用哪种测试方法使用哪种测试方法使用哪种测试方法使用哪种测试方法????

� 需要发现什么问题需要发现什么问题需要发现什么问题需要发现什么问题????

�下一步的目标下一步的目标下一步的目标下一步的目标;;;;

Page 124: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

124测试设计技术 版权所有©郑文强

基于经验的技术基于经验的技术基于经验的技术基于经验的技术

测性测试测性测试测性测试测性测试基本基本基本基本

�一个测试用例执行的结果会影响后续测试用例的一个测试用例执行的结果会影响后续测试用例的一个测试用例执行的结果会影响后续测试用例的一个测试用例执行的结果会影响后续测试用例的设计和执行设计和执行设计和执行设计和执行;;;;

�测试期间测试期间测试期间测试期间,,,,为测试的程序构建一个 拟的模型为测试的程序构建一个 拟的模型为测试的程序构建一个 拟的模型为测试的程序构建一个 拟的模型。。。。模型中包含程序是如何工作的模型中包含程序是如何工作的模型中包含程序是如何工作的模型中包含程序是如何工作的,,,,以及它的行为如以及它的行为如以及它的行为如以及它的行为如何或者它应该产生 样的行为何或者它应该产生 样的行为何或者它应该产生 样的行为何或者它应该产生 样的行为;;;;

�测试应该针对这个模型进行运行测试应该针对这个模型进行运行测试应该针对这个模型进行运行测试应该针对这个模型进行运行。。。。关注点是发现关注点是发现关注点是发现关注点是发现模型中没有的或者与以前发现的不一样的程序的模型中没有的或者与以前发现的不一样的程序的模型中没有的或者与以前发现的不一样的程序的模型中没有的或者与以前发现的不一样的程序的信息和行为信息和行为信息和行为信息和行为;;;;

Page 125: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

125测试设计技术 版权所有©郑文强

基于经验的技术基于经验的技术基于经验的技术基于经验的技术

基于经验技术的基于经验技术的基于经验技术的基于经验技术的提示提示提示提示

�创建和维护缺陷列表创建和维护缺陷列表创建和维护缺陷列表创建和维护缺陷列表:::: 列所有可能存在的错误列所有可能存在的错误列所有可能存在的错误列所有可能存在的错误、、、、故障和可 环境等是非常有用的故障和可 环境等是非常有用的故障和可 环境等是非常有用的故障和可 环境等是非常有用的。。。。在列表中应标在列表中应标在列表中应标在列表中应标注经常发生的错误注经常发生的错误注经常发生的错误注经常发生的错误、、、、故障和失效故障和失效故障和失效故障和失效,,,,以此与其他测以此与其他测以此与其他测以此与其他测试人员 这些信息试人员 这些信息试人员 这些信息试人员 这些信息。。。。通过标识可能的问题和通过标识可能的问题和通过标识可能的问题和通过标识可能的问题和重的情况重的情况重的情况重的情况,,,,就可以有针对性地设计一些 加的测就可以有针对性地设计一些 加的测就可以有针对性地设计一些 加的测就可以有针对性地设计一些 加的测试用例试用例试用例试用例;;;;

�与开发人员 缺陷列表与开发人员 缺陷列表与开发人员 缺陷列表与开发人员 缺陷列表::::这些列表 至对开发这些列表 至对开发这些列表 至对开发这些列表 至对开发人员也是很有 助的人员也是很有 助的人员也是很有 助的人员也是很有 助的,,,,因为它预示了会发生哪些因为它预示了会发生哪些因为它预示了会发生哪些因为它预示了会发生哪些在的问题和在的问题和在的问题和在的问题和 。。。。在程序实现时适当考虑这些在程序实现时适当考虑这些在程序实现时适当考虑这些在程序实现时适当考虑这些

因素可以有效地预 这些错误因素可以有效地预 这些错误因素可以有效地预 这些错误因素可以有效地预 这些错误;;;;

Page 126: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

126测试设计技术 版权所有©郑文强

课程内容课程内容课程内容课程内容

1. 测试开发过程测试开发过程测试开发过程测试开发过程

2. 测试设计技术类型测试设计技术类型测试设计技术类型测试设计技术类型

3. 黑盒测试技术黑盒测试技术黑盒测试技术黑盒测试技术

4. 白盒测试技术白盒测试技术白盒测试技术白盒测试技术

5. 基于经验的技术基于经验的技术基于经验的技术基于经验的技术

6. 测试技术的选择测试技术的选择测试技术的选择测试技术的选择

Page 127: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

127测试设计技术 版权所有©郑文强

测试技术的选择测试技术的选择测试技术的选择测试技术的选择

ISTQB考试知识点考试知识点考试知识点考试知识点

�针对不同类型的问题选择不同的测试用例设计技针对不同类型的问题选择不同的测试用例设计技针对不同类型的问题选择不同的测试用例设计技针对不同类型的问题选择不同的测试用例设计技术术术术,,,,列举出会影响设计技术选择列举出会影响设计技术选择列举出会影响设计技术选择列举出会影响设计技术选择 的因素的因素的因素的因素,,,,比如比如比如比如系统的类型系统的类型系统的类型系统的类型、、、、 、、、、 户需求户需求户需求户需求、、、、用例建模的模型用例建模的模型用例建模的模型用例建模的模型、、、、需求模型或测试员的知识水平等需求模型或测试员的知识水平等需求模型或测试员的知识水平等需求模型或测试员的知识水平等((((K2););););

Page 128: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

128测试设计技术 版权所有©郑文强

测试技术的选择测试技术的选择测试技术的选择测试技术的选择

测试设计的测试设计的测试设计的测试设计的目的目的目的目的

用尽可能少的工作量用尽可能少的工作量用尽可能少的工作量用尽可能少的工作量,,,,生成足够多的不同的测试用生成足够多的不同的测试用生成足够多的不同的测试用生成足够多的不同的测试用例例例例,,,,并能最大 度地发现可能存在的缺陷和故障并能最大 度地发现可能存在的缺陷和故障并能最大 度地发现可能存在的缺陷和故障并能最大 度地发现可能存在的缺陷和故障!!!!

用尽可能少的工作量用尽可能少的工作量用尽可能少的工作量用尽可能少的工作量,,,,生成足够多的不同的测试用生成足够多的不同的测试用生成足够多的不同的测试用生成足够多的不同的测试用例例例例,,,,并能最大 度地发现可能存在的缺陷和故障并能最大 度地发现可能存在的缺陷和故障并能最大 度地发现可能存在的缺陷和故障并能最大 度地发现可能存在的缺陷和故障!!!!

合理的选择我们的测试技术合理的选择我们的测试技术合理的选择我们的测试技术合理的选择我们的测试技术

Page 129: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

129测试设计技术 版权所有©郑文强

测试技术的选择测试技术的选择测试技术的选择测试技术的选择

影响测试设计的影响测试设计的影响测试设计的影响测试设计的因素因素因素因素�测试对象的类型测试对象的类型测试对象的类型测试对象的类型。。。。不同的测试对象不同的测试对象不同的测试对象不同的测试对象,,,,其复杂度也其复杂度也其复杂度也其复杂度也是 然不同是 然不同是 然不同是 然不同;;;;

�正规的文档和工具的可用性正规的文档和工具的可用性正规的文档和工具的可用性正规的文档和工具的可用性。。。。如果有正规的规格如果有正规的规格如果有正规的规格如果有正规的规格说明或者模型信息说明或者模型信息说明或者模型信息说明或者模型信息,,,,这些就可以直接作为测试设这些就可以直接作为测试设这些就可以直接作为测试设这些就可以直接作为测试设计工具的输入计工具的输入计工具的输入计工具的输入,,,,从而得到具体的测试用例从而得到具体的测试用例从而得到具体的测试用例从而得到具体的测试用例;;;;

�标准的符合性标准的符合性标准的符合性标准的符合性。。。。行业标准和法规标准会要求使用行业标准和法规标准会要求使用行业标准和法规标准会要求使用行业标准和法规标准会要求使用特定的测试技术和覆盖准则特定的测试技术和覆盖准则特定的测试技术和覆盖准则特定的测试技术和覆盖准则,,,,特别是对 全关特别是对 全关特别是对 全关特别是对 全关的软件或者对完整性要求很高的软件的软件或者对完整性要求很高的软件的软件或者对完整性要求很高的软件的软件或者对完整性要求很高的软件;;;;

�测试人员的经验测试人员的经验测试人员的经验测试人员的经验。。。。不同经验的测试人员会选择不不同经验的测试人员会选择不不同经验的测试人员会选择不不同经验的测试人员会选择不同的测试技术同的测试技术同的测试技术同的测试技术。。。。比如比如比如比如,,,,测试人员会使用以前找到测试人员会使用以前找到测试人员会使用以前找到测试人员会使用以前找到过 重故障的技术过 重故障的技术过 重故障的技术过 重故障的技术;;;;

Page 130: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

130测试设计技术 版权所有©郑文强

测试技术的选择测试技术的选择测试技术的选择测试技术的选择

影响测试设计的影响测试设计的影响测试设计的影响测试设计的因素因素因素因素((((续续续续))))

� 户的期望户的期望户的期望户的期望。。。。 户可能要求采用特殊的测试技户可能要求采用特殊的测试技户可能要求采用特殊的测试技户可能要求采用特殊的测试技术术术术,,,,并且达到一定的测试覆盖率并且达到一定的测试覆盖率并且达到一定的测试覆盖率并且达到一定的测试覆盖率((((当使用白盒测当使用白盒测当使用白盒测当使用白盒测试设计技术的时候试设计技术的时候试设计技术的时候试设计技术的时候;;;;

� 的分析的分析的分析的分析。。。。 分析或多或少可以指导测试工分析或多或少可以指导测试工分析或多或少可以指导测试工分析或多或少可以指导测试工作作作作,,,,即具体测试技术的选择和测试执行强度的确即具体测试技术的选择和测试执行强度的确即具体测试技术的选择和测试执行强度的确即具体测试技术的选择和测试执行强度的确定定定定。。。。对于高 的区域应该进行更彻底的测试对于高 的区域应该进行更彻底的测试对于高 的区域应该进行更彻底的测试对于高 的区域应该进行更彻底的测试;;;;

�其他因素其他因素其他因素其他因素。。。。最后最后最后最后,,,,还有其他一些因素还有其他一些因素还有其他一些因素还有其他一些因素,,,,比如规格比如规格比如规格比如规格说明和其他文档的可用性说明和其他文档的可用性说明和其他文档的可用性说明和其他文档的可用性、、、、测试人员的知识和技测试人员的知识和技测试人员的知识和技测试人员的知识和技能能能能、、、、时间和预算的 制时间和预算的 制时间和预算的 制时间和预算的 制、、、、测试级别和以 的经测试级别和以 的经测试级别和以 的经测试级别和以 的经验验验验;;;;

Page 131: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

131测试设计技术 版权所有©郑文强

测试技术的选择测试技术的选择测试技术的选择测试技术的选择

测试技术选择的测试技术选择的测试技术选择的测试技术选择的提示提示提示提示

�因为没有一种测试技术能够覆盖测试中需要考虑因为没有一种测试技术能够覆盖测试中需要考虑因为没有一种测试技术能够覆盖测试中需要考虑因为没有一种测试技术能够覆盖测试中需要考虑的所有方方面面的所有方方面面的所有方方面面的所有方方面面,,,,所以测试过程中经常会采用不所以测试过程中经常会采用不所以测试过程中经常会采用不所以测试过程中经常会采用不同测试技术的组合同测试技术的组合同测试技术的组合同测试技术的组合;;;;

�失效的 重程度和预期的 可以指导测试技术失效的 重程度和预期的 可以指导测试技术失效的 重程度和预期的 可以指导测试技术失效的 重程度和预期的 可以指导测试技术的选择和测试执行的强度的确定的选择和测试执行的强度的确定的选择和测试执行的强度的确定的选择和测试执行的强度的确定;;;;

�选择白盒测试技术的基础是测试对象的结构选择白盒测试技术的基础是测试对象的结构选择白盒测试技术的基础是测试对象的结构选择白盒测试技术的基础是测试对象的结构。。。。例例例例如如如如,,,,如果测试对象中不包含复杂的条件如果测试对象中不包含复杂的条件如果测试对象中不包含复杂的条件如果测试对象中不包含复杂的条件,,,,应用条应用条应用条应用条件确定测试就没有什么意义了件确定测试就没有什么意义了件确定测试就没有什么意义了件确定测试就没有什么意义了;;;;

Page 132: ISTQB 初级认证files.cnblogs.com/files/Ming8006/第4章_测试设计技术.pdf · 测试设计技术 版权所有©郑文强 2 声明 本课件的开发基于ISTQB Foundation Level

132测试设计技术 版权所有©郑文强