Black-box testing
黑盒测试是一种软件测试方法,它检查应用程序的功能,而不检查其内部结构或工作方式
黑盒测试试图在以下类别中发现错误:
-(1)不正确或缺失的函数,
-(2)接口错误,
-(3)数据结构或外部数据库访问中的错误,
-(4)行为或性能错误,
-(5)初始化和终止错误
黑盒测试 的测试用例是围绕规范和需求构建的,即应用程序应该做什么。
测试用例通常来自软件的外部描述,包括规范、需求和设计参数。虽然所使用的测试本质上主要是功能测试,但是也可以使用非功能测试。
Test design techniques for black-box testing
-等价划分
-边值分析
-决策表测试
-全对测试
-因果图
-错误猜测
-状态转换测试
-用例测试
-用户故事测试
-领域分析
-组合技术
Choosing Test Cases by Partitioning通过分区选择测试用例
Equivalence Partitioning
等价划分是一种测试方法,它将程序的输入域划分为可以从中派生测试用例的数据类。
▪等价划分的测试用例设计基于对输入条件等价类的评估
如果一组对象可 以通过对称、传递和自反的关系链接,则存在等价类
等价类表示输入条件的一组有效或无效状态
相似的输入会产生 相似的结果的输入分为一个集合,可以用集合中一个输入的测试结果 代表整个集
Guidelines for Equivalence Partitioning等价划分指南
输入是一个范围,则定义1个有效和2个无 效等价类
输入是特定值,则定义1个有效和2个无效 等价类
输入是集合的成员,则定义1个有效和1个无 效等价类
输入是布尔型,则定义1个有效和1个无效等价类。
Include Boundaries边界 in the Partition
Boundary Value Analysis:错误隐藏在角落里和边界处
Guidelines for Boundary Value Analysis
对范围[a,b],取值a,b,以及紧邻a,b的值
一组值,取值最大最小,以及邻近最大最小的值
Coverage of Testing
代码覆盖率是用来描述特定测试运行时程序的源代码执行 程度的度量。
基本方 法:逐步增加测试,直到达到足够的覆盖度。
通过工具来度量测试的 覆盖度。
Testing strategy
Static vs. Dynamic testing
Static testing :不执行程 序,在源代码上进行,如评审、走查等。 ----强调过程
Dynamic testing :通过一组给定的测试用例执行程序。 -----强调结果
Documenting Your Testing Strategy
- 测试策略是ADT设计的补充
- 写下测试 策略,如何进行的等价类划分和选取的边界。
- 其目 标是进行代码审查时检查测试是否充分,并让其他开发人员了解你的 测试。
An example
Document the strategy at the top of the test class
每个测试方法上面都应该有一个注释,说明如何选择它的测试用例,也就是说,它覆盖分区的哪些部分