测试设计重要性
设计是测试的灵魂,质量的龙头。
测试设计面临问题
1、测试对象的逻辑路径和测试输入数据的组合几乎是无穷的,而穷尽的测试是不可能的
2、不同利益相关者对软件或者软件产品的质量要求是不同的
3、测试时间和资源有限
4、测试得到的需求和资源不完整
5、测试设计语言规范
穷尽的测试是不可能的
1、如何有效减少测试用例的数目?
2、如何避免测试用例之间的冗余?
3、如何满足测试覆盖率的要求?
如何有效减少测试用例的数目?
1、等价类
(1)有效等价类
(2)无效等价类
2、边界值
如何避免测试用例之间的冗余?
1、规范测试设计
(1)按照一定的设计思路进行测试用例设计
(2)减少热带风暴
2、可复用的测试用例
特性:通用性、有效性、独立性
如何满足测试覆盖率的要求?
测试覆盖率常用的计算公式:
1、 功能覆盖率
至少被执行一次的测试功能点数/ 测试功能点总数(功能点)
2、 需求覆盖率
被验证到的需求数量 /总的需求数量(需求)
3、覆盖率
至少被执行一次的测试用例数/ 应执行的测试用例总数
4、语句覆盖率
至少被执行一次的语句数量/ 有效的程序代码行数
5、判定覆盖率
判定结果被评价的次数 / 判定结果总数
6、条件覆盖率
条件操作数值至少被评价一次的数量 / 条件操作数值的总数
7、判定条件覆盖率
条件操作数值或判定结果至少被评价一次的数量/(条件操作数值总数+判定结果总数)
8、上下文判定覆盖率
上下文内已执行的判定分支数和/(上下文数*上下文内的判定分支总数)
9、基于状态的上下文入口覆盖率
累加每个状态内执行到的方法数/(状态数*类内方法总数)
10、分支条件组合覆盖率
被评测到的分支条件组合数/分支条件组合数
11、路径覆盖率
至少被执行一次的路径数/程序总路径数