测试点分解理论

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

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注