1.基于需求设计
最根本的软件测试
关注两大关键问题:验证需求是否正确、完整、无二义性,且逻辑一致;保证设计和代码完全符合需求。
2.等价类(常用)
使用场景:只针对于输入,而且输入是无穷的比较多。
解决无法完全覆盖,在每一个类中选取一个进行测试。
3.边界值(常用)
强调输入和输出的边界值。注意开区间和闭区间。
4.因果图
强调输入(因)和输出(果)的关系。
四种关系:恒等、与、或、非
因果图法设计测试用例的步骤:
- 分析所有可能的输入和可能的输出;
- 找出输入与输出之间的对应关系;
- 画出因果图(关键);
- 把因果图转换成判定表;(表的列数=输出情况的个数^条件情况的个数)
- 把判定表对应到每一个测试用例。
5.正交排列
目的:减少用例数目,用尽量少的用例覆盖输入的两两组合。
采用正交表,取最优水平组合。
因素:欲考察的变量
水平(位级):变量的取值
正交表的构成:
- 行数N: 实验的次数
- 因素数C: 变量(列数)
- 水平数T:任何单个因素能够取得的值最大个数
正交表的表示形式: L=行数(水平数 因素数) L=N(TC) N=C×(T-1)+1
例如:因素数C=5,水平数T=2
N=C×(T-1)+1=5×(2-1)+1=6 L=6(25)
则选择正交表L6_2_5
正交表的两条性质:
- 每一列中各数字出现的次数都一样多。
- 任何两列中的各有序数对出现的次数都一样多。
正交法设计测试用例的步骤:
- 整理出有哪些因素(变量);
- 整理出每个因素有几个水平(变量的取值);
- 选择一个合适的正交表;
- 把变量的值映射到表中;
- 把每一行的各因素水平组合作为一个测试用例;
- 加上你认为可疑且没有在表中出现的用例组合。
6.场景设计法
可理解为业务流程,把孤立的功能点串起来就形成业务流程。一个业务流不一定是一个场景。
7.错误推测法
基于经验和直觉,找出程序中你认为可能出现的错误。
经验来源于:对项目的测试较多、用户反馈、缺陷故障库。
缺陷和故障的界限:发布前出现的bug为缺陷,发布上线后被用户发现使用的bug为故障。
测试用例的粒度
粒度:指测试用例编写的详细程度
测试资源情况决定设计出怎样粒度的测试用例。
如何确定测试用例的正确性?
- 同行评审
- 用户检查
- 项目组评审