1、前仿验证流程
熟悉SPEC -> 验证策略(BT/IT/ST)-> 测试点分解 -> 验证方案 -> 验证环境 -> 冒烟测试 -> 验证执行 -> 验证报告
2、测试点分解的依据
(1)DUT的spec
(2)标准、协议
(3)其他文档(产品需求、架构文档、算法说明、产品说明书、应用手册等)
(4)通用基本逻辑单元的常规测试点
(5)来自设计工程师的要求(是否有特殊的、对极端的电路测试要求)
(6)来自验证工程师的经验
3、测试点和测试用例的关系
(1)一个测试点不能被分解到被多个测试用例包含(但一个测试点是可以在多个用例中被包含的);
(2)一个测试用例可以包含多个测试点;
4、测试点分类
(1)场景类
(2)功能类
(3)性能类
(4)接口类
(5)异常类
(6)白盒测试点(设计提供)
5、测试点分解方法
- 等价类划分
输入值的子集,分为有效等价类和无效等价类
例如:输入值是正整数且小于16,则有效等价类为0<x<=15,小于0和大于16为无效等价类 - 边界值分析
把输入值的边界值作为测试点,则可划分为正常区域,正常边界区域,异常边界区域,异常区域。
例如:输入值是正整数且小于16,则正常边界区域为1和15,异常边界区域为0和16。 - 因果图表法
例如:输入a和b得到结果x,输入c和d得到结果y,列出所有的关系,再对不能同时的输入简化,做出测试点。 - 正交矩阵法
对输入的各个条件正交,筛选得出可靠的测试点。
例如:输入参数A有开启、关闭两种情况,参数B有模式1和模式2两种,参数C位宽选择有1bit,8bit和64bit,利用正交矩阵分解就有12种情况:
– A开启、B为模式1、C位宽选择1bit;
– A开启、B为模式1、C位宽选择8bit;
– A开启、B为模式1、C位宽选择64bit;
– A开启、B为模式2、C位宽选择1bit;
– A开启、B为模式2、C位宽选择8bit;
– A开启、B为模式2、C位宽选择64bit;
– A关闭、B为模式1、C位宽选择1bit;
– A关闭、B为模式1、C位宽选择8bit;
– A关闭、B为模式1、C位宽选择64bit;
– A关闭、B为模式2、C位宽选择1bit;
– A关闭、B为模式2、C位宽选择8bit;
– A关闭、B为模式2、C位宽选择64bit; - 随机变量法
对输入的值进行随机化,一般和等价类法联合使用,在等价区域使用随机化的值。
例如:输入值是正整数且小于等于1000,有效等价类是0<x<=1000,如果不需要覆盖到1~1000的所有值,有效边界值是1和1000,可分解测试点为:1,2,[3:998],999,1000。 - 错误推断法
根据经验和对DUT的理解,假设DUT在特定激励下会发生异常或错误,有目的构建一些测试用例去捕捉这类错误或确定错误不存在。
例如:可能有些设计人员没考虑全反压的情况,在测试点分解时可增加接口上的反压测试,可通过force一定时间FIFO的full或afull信号,观察逻辑处理情况。 - 场景分析法
根据用户的使用场景进行测试点分解。
例:如下图状态机,初始状态为S0,可经过两条路径到达S3,
即,路径1:S0-S1-S2-S3-S0;路径2:S0-S1-S3-S0


