数字验证测试点分解
概述
测试点实际上是把设计的功能按层级分解成一个个最简单、最底层的功能点,化繁为简,方便测试用例的实现。测试点主要从功能规格(FS)与架构规格(AS)中提取。测试点分解需要保证的几点原则:
- 完备性,即不能遗漏任何功能点,特别是异常处理,边界处理,容错处理这些往往容易被忽视;
- 低耦合,不同测试点之间的相关性越低越好,这也直接决定了分解粒度,并影响testcase的开发难度;
- 无歧义,测试点的描述要直接而明确,不同测试点之间不存在矛盾之处。
- 扩展性.包含异常和边界特性
为什么需要测试点分解
验证规格分解到特性,粒度比较粗,无法保证完备性,特性的理解会存在歧义,特性和测试用例的对应关系不确定。
测试点分解的规则
- 测试点分解的粒度要求细化到无法再细化,保证无歧义,不遗漏,同时兼顾效率不过度验证,
- 测试点的描述必须明确激励和期望
- 测试点分解是一个持续的过程,在整个芯片的验证过程中是不断更新迭代补充的。
测试点分解的方法
1.等价类
输入值的子集,分为有效等价类和无效等价类,如输入值是正整数且小于16,则有效等价类为0<x<=15,小于0和大于16为无效等价类
2.边界值法
把输入值的边界值作为测试点,则可划分为正常区域,正常边界区域,异常边界区域,异常区域,如输入值是正整数且小于16,则正常边界区域为1和15,异常边界区域为0和16.
3.因果图表法也是正交矩阵法
如输入a和b得到结果x,输入c和d得到结果y,列出所有的关系,在对不能同时的输入简化,做出测试点。
4.流程图分析法
根据不同的条件执行不同的处理,画出流程图,确认测试路径,一般用在定向测试中,有明确的的输入输出关系。
5.随机变量法
对输入的值进行随机化,一般和等价类法联合使用,在等价区域使用随机化的值。
6.错误推测法
根据经验假设错误发生,然后设计专用的测试点。
7.场景分析法
根据用户的使用场景进行测试点分解。
经常使用的测试法法是等价类法、边界值法、随机变量法和场景分析法,其次是因果图表法和流程图分析法,最后是错误推测法。在使用中通常将等价类法、边界值法和随机变量法和起来使用。