著录项信息
专利名称 | 一种功能覆盖率测试度量系统和方法 |
申请号 | CN200610153890.5 | 申请日期 | 2006-09-14 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2007-02-21 | 公开/公告号 | CN1916920 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/50 | IPC分类号 | G;0;6;F;1;7;/;5;0查看分类表>
|
申请人 | 华为技术有限公司 | 申请人地址 | 广东省深圳市龙岗区坂田华为总部办公楼
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 华为技术有限公司 | 当前权利人 | 华为技术有限公司 |
发明人 | 易敏;王进成;程智辉 |
代理机构 | 北京银龙知识产权代理有限公司 | 代理人 | 许静 |
摘要
一种功能覆盖率测试度量系统和方法。该系统包括总线功能单元(3)、激励单元(2)、主控台(1)、结果分析单元(4)、以及验证用例功能覆盖率统计单元(5),用于通过所述分析结果,计算出验证用例中的各个度量要素参数的功能覆盖得分,并根据所述各个度量要素参数的功能覆盖得分得到验证用例的功能覆盖率;被测对象功能覆盖率统计单元(6),用于通过所述分析结果,计算出被测对象的各个测试层的功能覆盖得分,得到被测对象的功能覆盖率。本发明还提供一种功能覆盖率度量的测试方法,能够在EDA工具中实现,并可以对验证用例和被测对象功能覆盖率进行自动统计。
1.一种功能覆盖率测试度量系统,其特征在于,包括:
总线功能单元(3),用于输出被测对象产生的测试请求;
激励单元(2),用于接收所述测试请求并进行转发,以及根据所述测试请 求产生并输出验证用例;
主控台(1),用于接收所述激励单元(2)产生的验证用例和转发的测试请 求,并根据测试请求对所述验证用例进行测试,输出测试结果;
结果分析单元(4),用于接收所述测试结果进行分析,并输出分析结果;
验证用例功能覆盖率统计单元(5),用于通过所述分析结果,计算出验证 用例中的各个度量要素参数的功能覆盖得分,并根据所述各个度量要素参数 的功能覆盖得分得到验证用例的功能覆盖率;以及
被测对象功能覆盖率统计单元(6),用于通过所述分析结果,计算出被测 对象的各个测试层的功能覆盖得分,得到被测对象的功能覆盖率。
2.根据权利要求1所述的功能覆盖率测试度量系统,其特征在于,所述 验证用例功能覆盖率统计单元(5)包括:
要素参数设置单元,用于按功能处理过程为验证用例设置功能覆盖率集 合要素参数,对象要素参数和片段要素参数;
片段得分计算单元,用于计算片段的覆盖情况和目标值的比值,并与1 比较大小后输出其中的较小值做为片段的得分;
对象得分计算单元,用于根据一个对象下所有片段的得分及对应的权重, 计算出所述对象的得分并输出;
功能覆盖率集合得分计算单元,用于根据一个验证用例下所有对象的得 分及对应的权重,计算出所述验证用例的功能覆盖率。
3.根据权利要求2所述的功能覆盖率测试度量系统,其特征在于,所 述验证用例功能覆盖率统计单元(5)还包括:
第一权重赋值单元,用于为片段和对象赋予权重值。
4.根据权利要求1所述的功能覆盖率测试度量系统,其特征在于,所述 被测对象功能覆盖率统计单元(6)包括:
测试层划分单元,用以将被测对象划分为片段测试层、测试点测试层、 验证特性测试层和需求规格测试层;
片段测试层得分计算单元,用于计算片段的覆盖情况和目标值的比值, 并与1比较大小后输出其中的较小值做为片段测试层的得分;
测试点测试层得分计算单元,用于根据一个测试点测试层中所有片段得 分及对应的权重,计算出所述测试点测试层的得分并输出;
验证特性测试层得分计算单元,用于根据一个验证特性测试层中所有片 段的得分及对应的权重,计算出所述验证特性测试层的得分并输出;
需求规格测试层得分计算单元,用于根据一个需求规格测试层中所有片 段的得分及对应的权重,计算出所述需求规格测试层的得分并输出;
测试点通过率计算单元,用于根据通过的测试点数目和测试点总数计算 出测试点通过率,得到被测对象的功能覆盖率。
5.根据权利要求4所述的功能覆盖率测试度量系统,其特征在于,所 述被测对象功能覆盖率统计单元(6)还包括:
第二权重赋值单元,用于为片段赋予权重值。
6.一种功能覆盖率测试度量方法,其特征在于,包括下列步骤:
步骤A1)根据被测对象的需求规格设计验证用例,并根据所述验证用例 的功能处理过程,划分出多个功能覆盖率的基本度量要素参数;
步骤A)根据每个被测对象的功能将被测对象分解为多个测试点,并由 被测对象发出测试请求,利用验证用例对测试点进行验证测试,得到分析结 果;
步骤B)利用分析结果,计算出验证用例中的各个度量要素参数的覆盖 得分,得到验证用例的功能覆盖率,并根据测试点中的被测片段命中的情况, 结合被测对象的测试点的权重,计算出被测对象各个测试层的量化得分,得 到被测对象的功能覆盖率。
7.根据权利要求6所述的功能覆盖率测试度量方法,其特征在于,所述 步骤A1)包括下列步骤:
根据被测对象的功能将被测对象划分为四个测试层,分别是需求规格测 试层、验证特性测试层、测试点测试层、被测片段测试层四个测试层;
根据验证用例的功能处理过程,为验证用例设置功能覆盖率集合要素参 数、对象要素参数、度量片段要素参数。
8.根据权利要求7所述的功能覆盖率测试度量方法,其特征在于,所述 步骤B)包括下列步骤:
步骤B1)利用分析结果,根据测试点中的被测片段被验证用例命中的情 况,收集到与验证用例对应的被命中的被测片段,计算度量片段覆盖情况;
步骤B2)以验证用例对被测对象的功能覆盖率为基准,根据度量片段的 覆盖情况,计算验证用例的得分,得到验证用例的功能覆盖率,以及根据被 测片段被命中的情况,计算出被测对象的得分,得到被测对象的功能覆盖率。
9.根据权利要求8所述的功能覆盖率测试度量方法,其特征在于,所述 步骤B2)中以验证用例对被测对象的功能覆盖率为基准,根据度量片段的覆 盖情况,计算验证用例的得分,得到验证用例的功能覆盖率具体包括下列步骤:
步骤B21)计算验证用例覆盖的对象中包含的所有度量片段的得分;
步骤B22)计算验证用例覆盖的功能覆盖率集合中包含的所有对象的得 分;
步骤B23)计算验证用例覆盖的功能覆盖率集合的得分,得到验证用例 的得分。
10.根据权利要求8所述的功能覆盖率测试度量方法,其特征在于,所 述步骤B2)中根据被测片段被命中的情况,计算出被测对象的得分,得到被 测对象的功能覆盖率具体包括下列步骤:
步骤B31)根据被测对象中被测片段命中的情况,结合被测对象的测试 点的权重,计算出被测片段测试层的功能覆盖率;
步骤B32)根据被测对象中测试点测试层中包含的所有片段的功能覆盖 率,计算测试点测试层的功能覆盖率;
步骤B33)根据被测对象中验证特性测试层中包含的所有片段的功能覆 盖率,计算验证特性测试层的功能覆盖率;
步骤B34)根据被测对象中需求规格测试层中包含的所有片段的功能覆 盖率,计算需求规格测试层的功能覆盖率,然后计算出被测对象的所有测试 点的通过率,得到被测对象的功能覆盖率。
技术领域\n本发明涉及电子及通信领域的测试技术,特别是涉及一种功能覆盖率测 试度量系统和方法。\n背景技术\n在电子及通信软件系统测试领域,通常都是用代码覆盖进行测试,代码 覆盖无论是概念还是在得到电子设计自动化(Electronic Design Automotic, EDA)工具的支持方面,都已经非常成熟,代码覆盖率的度量在设计与测试 激励确定以后就唯一确定了,然而,尽管能够达到100%的代码覆盖率,但在 测试的过程中,测试人员还是不能肯定所设计的被测对象(Device Under Test, DUT)是否已经不存在问题。这是因为在代码覆盖测试中被测试的仅仅是代 码自身,测试人员并不知道,在测试的过程中,是否已经输入了所有的激励, 并已经接收了所有可能的结果,同时,被测对象的状态是否都已经访问,所 有的内部转换是否都出现了,感兴趣的事件是否发生等等问题。\n针对这些问题,业界提出了功能覆盖的概念,功能覆盖的定义为:来自 设备和测试计划规格的清晰的功能需求。相对于代码覆盖而言,功能覆盖是 一个比较新的概念,功能覆盖率的度量因功能覆盖率代码的不同而不同,所 以功能覆盖在度量实现上并不如代码覆盖率那么清晰和容易界定。\n在功能覆盖率度量的实现上,由于功能覆盖率来自于功能需求,功能需 求(测试点)都以文档的方式来描述。\n目前广泛采用的文档标记功能覆盖率的方法是在文档上标明功能点,并 辅之以相应的验证用例,当一个验证用例通过了,就表示该验证用例对应的 功能点被覆盖了,于是在文档上进行标记,最后测试人员根据文档的标记情 况来统计整个测试项目的覆盖率情况。\n这种方法存在着明显不足之处:\n第一,因度量方式是手工操作,标记、统计起来都很是麻烦,而且往往 会遗漏对一些功能点的标记和统计;\n第二,功能需求容易与实际代码脱节,不能够紧密耦合,一旦需求或者 实际代码改变,文档中记录的功能点就需要改变功能描述语句和重新标记。\n发明内容\n本发明的目的在于提出的一种的功能覆盖率测试度量系统和方法,该系 统和方法能够在EDA工具中实现,并可以对验证用例和被测对象功能覆盖率 进行自动统计。\n为实现本发明目的而提供的一种功能覆盖率测试度量系统,包括:\n总线功能单元,用于输出被测对象产生的测试请求;\n激励单元,用于接收所述测试请求并进行转发,以及根据所述测试请求 产生并输出验证用例;\n主控台,用于接收所述激励单元产生的验证用例和转发的测试请求,并 根据测试请求对所述验证用例进行测试,输出测试结果;\n结果分析单元,用于接收所述测试结果进行分析,并输出分析结果;\n验证用例功能覆盖率统计单元,用于通过所述分析结果,计算出验证用 例中的各个度量要素参数的功能覆盖得分,并根据所述各个度量要素参数的 功能覆盖得分得到验证用例的功能覆盖率;以及\n被测对象功能覆盖率统计单元,用于通过所述分析结果,计算出被测对 象的各个测试层的功能覆盖得分,得到被测对象的功能覆盖率。\n所述验证用例功能覆盖率统计单元包括:\n要素参数设置单元,用于按功能处理过程为验证用例设置功能覆盖率集 合要素参数,对象要素参数和片段要素参数;\n片段得分计算单元,用于计算片段的覆盖情况和目标值的比值,并与1 比较大小后输出其中的较小值做为片段的得分;\n对象得分计算单元,用于根据一个对象下所有片段的得分及对应的权重, 计算出所述对象的得分并输出;\n功能覆盖率集合得分计算单元,用于根据一个验证用例下所有对象的得 分及对应的权重,计算出所述验证用例的功能覆盖率。\n所述验证用例功能覆盖率统计单元还包括:\n第一权重赋值单元,用于为片段和对象赋予权重值。\n所述被测对象功能覆盖率统计单元包括:\n测试层划分单元,用以将被测对象划分为片段测试层、测试点测试层、 验证特性测试层和需求规格测试层;\n片段测试层得分计算单元,用于计算片段的覆盖情况和目标值的比值, 并与1比较大小后输出其中的较小值做为片段测试层的得分;\n测试点测试层得分计算单元,用于根据一个测试点测试层中所有片段得 分及对应的权重,计算出所述测试点测试层的得分并输出;\n验证特性测试层得分计算单元,用于根据一个验证特性测试层中所有片 段的得分及对应的权重,计算出所述验证特性测试层的得分并输出;\n需求规格测试层得分计算单元,用于根据一个需求规格测试层中所有片 段的得分及对应的权重,计算出所述需求规格测试层的得分并输出;\n测试点通过率计算单元,用于根据通过的测试点数目和测试点总数计算 出测试点通过率,得到被测对象的功能覆盖率。\n所述被测对象功能覆盖率统计单元还包括:\n第二权重赋值单元,用于为片段赋予权重值。\n为实现本发明目的还提供了一种功能覆盖率测试度量方法,包括下列步 骤:\n步骤A1)根据被测对象的需求规格设计验证用例,并根据所述验证用例 的功能处理过程,划分出多个功能覆盖率的基本度量要素参数;\n步骤A)根据每个被测对象的功能将被测对象分解为多个测试点,并由 被测对象发出测试请求,利用验证用例对测试点进行验证测试,得到分析结 果;\n步骤B)利用分析结果,计算出验证用例中的各个度量要素参数的覆盖 得分,得到验证用例的功能覆盖率,并根据测试点中的被测片段命中的情况, 结合被测对象的测试点的权重,计算出被测对象各个测试层的量化得分,得 到被测对象的功能覆盖率。\n所述步骤A1)包括下列步骤:\n根据被测对象的功能将被测对象划分为四个测试层,分别是需求规格测 试层、验证特性测试层、测试点测试层、被测片段测试层四个测试层;\n根据验证用例的功能处理过程,为验证用例设置功能覆盖率集合要素参 数、对象要素参数、度量片段要素参数。\n所述步骤B)包括下列步骤:\n步骤B1)利用分析结果,根据测试点中的被测片段被验证用例命中的情 况,收集到与验证用例对应的被命中的被测片段,计算度量片段覆盖情况;\n步骤B2)以验证用例对被测对象的功能覆盖率为基准,根据度量片段的 覆盖情况,计算验证用例的得分,得到验证用例的功能覆盖率,以及根据被 测片段被命中的情况,计算出被测对象的得分,得到被测对象的功能覆盖率。\n所述步骤B2)中以验证用例对被测对象的功能覆盖率为基准,根据度量 片段的覆盖情况,计算验证用例的得分,得到验证用例的功能覆盖率,具体 包括下列步骤:\n步骤B21)计算验证用例覆盖的对象中包含的所有度量片段的得分;\n步骤B22)计算验证用例覆盖的功能覆盖率集合中包含的所有对象的得分;\n步骤B23)计算验证用例覆盖的功能覆盖率集合的得分,得到验证用例 的得分。\n所述步骤B2)中根据被测片段被命中的情况,计算出被测对象的得分, 得到被测对象的功能覆盖率具体包括下列步骤:\n步骤B31)根据被测对象中被测片段命中的情况,结合被测对象的测试 点的权重,计算出被测片段测试层的功能覆盖率;\n步骤B32)根据被测对象中测试点测试层中包含的所有片段的功能覆盖 率,计算测试点测试层的功能覆盖率;\n步骤B33)根据被测对象中验证特性测试层中包含的所有片段的功能覆 盖率,计算验证特性测试层的功能覆盖率;\n步骤B34)根据被测对象中需求规格测试层中包含的所有片段的功能覆 盖率,计算需求规格测试层的功能覆盖率,然后计算出被测对象的所有测试 点的通过率,得到被测对象的功能覆盖率。\n本发明的有益效果是:通过本发明中的基于测试点的功能覆盖率测试度 量系统和方法得出功能覆盖率数据,可以为测试项目的验证充分性提供定量 评价标准和依据;利用集成了功能覆盖率度量模型的验证平台,验证人员使 用本系统可以迅速建立起高效的验证环境,减少验证环境建立时间,提高验 证质量,实现仿真验证的自动化。\n附图说明\n图1是本发明功能覆盖率测试度量系统示意图;\n图2是本发明被测对象需求规格分解示意图;\n图3是本发明功能覆盖率测试度量方法流程图;\n图4是本发明验证用例与被测对象分层验证测试示意图。\n具体实施方式\n下面结合附图1~4进一步详细说明本发明的一种功能覆盖率测试度量系 统和方法。其对于功能覆盖率的测试度量方法,在操作上,如EDA工具希望 的一样,向代码覆盖率靠拢,使用可执行的语言描述功能需求,再由仿真工 具在仿真时自动判断所描述的功能需求是否覆盖,实现自动执行和统计验证 用例和测试目标(被测对象)的功能覆盖率的操作。\n如图1所示,本发明一种功能覆盖率测试度量系统包括主控台1,总线 功能单元(BFM)3,激励单元2,结果分析单元4,验证用例功能覆盖率统 计单元5,以及被测对象功能覆盖率统计单元6。\n其中:\n总线功能单元3,用于输出被测对象产生的测试请求;\n激励单元2,用于接收所述测试请求并进行转发,以及根据所述测试请 求产生并输出验证用例;\n主控台1,用于接收所述激励单元2产生的验证用例和转发的测试请求, 并根据测试请求对激励事件进行测试,输出测试结果;\n结果分析单元4,用于接收所述测试结果进行分析,并输出分析结果;\n验证用例功能覆盖率统计单元5,用于通过所述分析结果,计算出验证 用例中的各个度量要素参数的功能覆盖得分,并根据所述各个度量要素参数 的功能覆盖得分得到验证用例的功能覆盖率;\n进一步地,所述验证用例功能覆盖率统计单元包括:\n要素参数设置单元,用于按功能处理过程为验证用例设置功能覆盖率集 合要素参数,对象要素参数和片段要素参数;\n片段得分计算单元,用于计算片段的覆盖情况和目标值的比值,并与1 比较大小后输出其中的较小值做为片段的得分;\n对象得分计算单元,用于根据一个对象下所有片段的得分及对应的权重, 计算出所述对象的得分并输出;\n功能覆盖率集合得分计算单元,用于根据一个验证用例下所有对象的得 分及对应的权重,计算出所述验证用例的功能覆盖率;\n此外验证用例功能覆盖率统计单元5还可以包括:第一权重赋值单元, 用于为片段和对象赋予权重值。在验证用例功能覆盖率统计单元5未包括第 一权重赋值单元时,片段权重值均一样,对象权重值也均一样;在验证用例 功能覆盖率统计单元5包括第一权重赋值单元时,片段、对象权重值采用第 一权重赋值单元提供的赋值。\n被测对象功能覆盖率统计单元6,用于通过所述分析结果,计算出被测 对象的各个测试层的功能覆盖得分,得到被测对象的功能覆盖率。\n进一步地,所述被测对象功能覆盖率统计单元包括:\n测试层划分单元,用以将被测对象划分为片段测试层、测试点测试层、 验证特性测试层和需求规格测试层;\n片段测试层得分计算单元,用于计算片段的覆盖情况和目标值的比值, 并与1比较大小后输出其中的较小值做为片段测试层的得分;\n测试点测试层得分计算单元,用于根据一个测试点测试层中所有片段得 分及对应的权重,计算出所述测试点测试层的得分并输出;\n验证特性测试层得分计算单元,用于根据一个验证特性测试层中所有片 段的得分及对应的权重,计算出所述验证特性测试层的得分并输出;\n需求规格测试层得分计算单元,用于根据一个需求规格测试层中所有片 段的得分及对应的权重,计算出所述需求规格测试层的得分并输出;\n测试点通过率计算单元,用于根据通过的测试点数目和测试点总数计算 出测试点通过率,得到被测对象的功能覆盖率;\n此外,被测对象功能覆盖率统计单元6还可以包括:第二权重赋值单元, 用于为片段赋予权重值。在被测对象功能覆盖率统计单元6未包括第二权重 赋值单元时,片段权重值均一样;在被测对象功能覆盖率统计单元6包括第 二权重赋值单元时,片段权重值采用第二权重赋值单元提供的赋值。\n在测试过程中,被测对象(DUT)通过总线功能单元3向激励单元2发 出测试请求。激励单元2在收到被测对象发出的测试请求后,通知主控台1, 并把收到的测试请求上交给主控台1。同时,激励单元2根据测试请求向主 控台1发出激励事件,主控台1对激励事件进行测试,并将测试结果传送到 结果分析单元4进行结果分析。\n被测对象(DUT)指被测试的对象,即测试目标。\n激励事件即为给被被测对象的输入验证数据,即验证用例,其由激励单 元2发起,发起的过程为:激励单元2向主控台1发一个激励请求的信号。\n在激励单元2产生激励事件和结果分析单元4对结果分析过程中,主控 台1通过激励事件触发功能覆盖率统计单元5配合进行功能覆盖率测试。\n主控台1是一个控制模块,对激励单元2和结果分析单元4起控制和协 调作用。\n总线功能单元3将测试请求发送到激励单元2,请求激励单元2发送激 励事件(即验证用例)到主控台1;然后,激励单元2根据配置(即当前的 状态,如发送数据的带宽),决定是否发送激励事件到主控台1,如果此时发 送激励事件的带宽在预期的范围内,则允许发送;如果超出预期范围则不发 送,给总线功能单元3返回一个等待的信号。\n如果可以发送数据,则激励单元2生成相应的激励事件,发送给主控台 1进行测试,同时对返回给结果分析单元4的分析结果,通过验证用例功能 覆盖率统计单元5和被测对象功能覆盖率统计单元6进行验证用例和被测对 象的功能覆盖率统计;\n如果不能发送数据,激励单元2返回给总线功能单元(BFM)3一个延 时数据,也就是等待的信号,总线功能单元(BFM)3在延时完成之后,再 次向激励单元2申请报文,即发送测试请求。\n结果分析单元4根据主控台1的配置和控制,接收测试数据。结果分析 单元4在接收到测试数据后,进行分析得到分析结果;\n最后通过验证用例功能覆盖率统计单元5和被测对象功能覆盖率统计单 元6对分析结果进行统计,得到验证用例和被测对象的功能覆盖率得分。\n具体的,本发明的验证用例功能覆盖率统计单元5,利用分析结果,计 算出验证用例中的各个度量要素参数的覆盖得分,得到验证用例的功能覆盖 率;同时和被测对象功能覆盖率统计单元6根据测试点中的被测片段命中的 情况,结合被测对象的测试点的权重,计算出被测对象各个测试层的量化得 分,得到被测对象的功能覆盖率。\n如图2所示,对被测对象的需求规格进行逐层分解,最后分解为测试点, 并根据测试点设计具体的验证用例,存储在激励单元2中。\n当进行测试时,激励单元2根据总线功能单元3的请求,产生并发送验 证用例(即激励事件数据),在主控台1对被测对象进行验证测试,在结果分 析单元4进行分析,得到验证用例和被测对象的分析结果。通过验证用例功 能覆盖率统计单元5和被测对象功能覆盖率统计单元6对验证用例和被测对 象的分析结果进行量化,根据验证用例和被测对象的量化得分,从而测量出 具体验证用例和被测对象的功能覆盖率,即通过利用分析结果,计算出验证 用例中的各个度量要素参数的覆盖得分,得到验证用例的功能覆盖率;同时 根据测试点中的被测片段命中的情况,结合被测对象的测试点的权重,计算 出被测对象各个测试层的量化得分,得到被测对象的功能覆盖率。\n如图3所示,下面进一步详细说明本发明的功能覆盖率测试度量方法:\n步骤1)根据被测对象的需求规格设计具体的验证用例,存储在激励单 元2中,同时,根据验证用例的功能处理过程,划分出多个功能覆盖率的基 本度量要素参数;\n作为本发明的实施例,可以将被测对象进行逐层分解如下:\n步骤11)根据被测对象的功能将被测对象划分为四个测试层,分别是需 求规格测试层(Spec)、验证特性测试层(Feature)、测试点测试层(Testcase)、 被测片段测试层四个测试层;\n如图2所示,首先,将被测对象的需求规格(Spec)分解为验证特性 (Feature),所属验证特性是具有同一特征的规格的集合,是被测对象某一功 能特征的集合,其中也包含被测对象隐含的特性。\n其中,需求规格是指被测对象在功能、性能、应用环境等方面,事先约 定能够达到的指标。\n然后,将验证特性分解为测试点(Testcase),测试点是指验证特性中每 一个不能再细分的功能需求项。\n最后,测试点有一个或者多个被测片段,即被测对象的每个测试点 (Testcase)中可以有一个或者多个被测片段;\n根据被测片段设计具体的验证用例(Test),就可以利用验证用例度量每 个被测对象的功能覆盖率。\n验证用例是针对测试点的被测片段而设计的包含测试输入,执行条件和 期望结果的集合,用于通过执行特定的程序以验证测试点的功能是否和需求 规格相一致。\n被测对象的测试点是一个不能再细分的功能需求项,对应着被测对象的 某项功能。测试点和验证用例的关系可以是一对一的关系,还可以是一对多 或多对一的关系,即一个验证用例可以对应测试一个测试点,也可以是多个 验证用例测试同一个测试点,还可以是在一个验证用例测试多个测试点。\n根据被测对象的需求规格,不一定只将被测对象分为被测对象需求规格、 验证特性、测试点和被测片段多个层次,也可根据实际情况分为任意个层次, 这些测试层次之间是相对的,没有严格的划分标准,本发明中,通过被测对 象的需求规格进行分解,得到测试点,再根据测试点的一个或者多个被测片 段,设计具体的验证用例,用于对被测对象的功能覆盖率测试。\n在利用验证用例对被测对象进行测试时,通过对测试结果进行量化,根 据量化的结果对被测对象的功能覆盖率进行度量。\n步骤12)同时,根据验证用例的功能处理过程,可以为验证用例设置多 个功能覆盖率的基本度量要素参数,用于通过验证用例对被测对象进行测试 得到的分析结果,度量出验证用例的功能覆盖率。\n如图4所示,根据验证用例的功能处理过程,可以为验证用例设置多个 功能覆盖率的基本度量要素参数,将其设置在验证用例功能覆盖率统计单元 5中,用于度量验证用例对被测对象的功能覆盖率,这些基本度量要素参数 包括:功能覆盖率集合要素参数;对象要素参数;度量片段要素参数:\n度量要素参数一:功能覆盖率集合要素参数\n功能覆盖率集合要素参数物理意义:一个功能覆盖率集合中包含多个对 象,并且和一个激励事件(验证用例)进行对应。\n在逻辑仿真过程中,当一个功能覆盖率集合对应的激励事件(验证用例) 触发时,就可以收集该功能覆盖率集合中所有的对象被命中情况的相关数据。\n度量要素参数二:对象要素参数\n对象要素参数的物理意义是被测对象在一个功能处理过程中所涉及的、 有明确物理意义的相关要素参数;\n被测对象通常是由FPGA/ASIC(FPGA:Field Programmable Gate Array 现场可编程门阵列,ASIC:Application Specific Integrated Circuit特定用途集 成电路)技术来实现的,被测对象在一个功能处理过程中相关的一些要素, 比如“报文长度校验”功能(即判断报文长度是否在合法范围内)和报文长 度相关,那么报文长度就是相关要素,即为对象(Object)。\n对象由多个基础对象(BaseObject)构成。对象可以分为基本对象 (BasicObject)、交叉对象(CrossObject)和序列对象(SequenceObject)三 种类型。\n基础对象是构造基本对象、交叉对象和序列对象的基础元素,即其它三 种对象(Object)都是由基础对象(BaseObject)构成的,其中基本对象 (BasicObject)是表示一维的验证空间,由一种基础对象(BaseObject)构成; 交叉对象(CrossObject)表示多维的验证空间,由两种或两种以上的基础对 象(BaseObject)构成;序列对象(SequenceObject)表示和时间相关的验证 空间,由一种或多种基础对象(BaseObject)构成。\n其中,可以认为基本对象是交叉对象的一个特例。\n在大规模的逻辑测试中,典型的对象实例有:\nA、单个有明确物理意义的信号(如中断信号);\nB、输入数据包中需要关心的域(如互联网协议IP)包中循环冗余码校 验CRC域);\nC、输入数据流的抽象的特性参数(如包长);\nD、内部逻辑或输出的某种处理;\nE、验证用例的某类配置,如不同的工作模式。\n度量要素参数三:度量片段要素参数\n度量片段要素参数的物理意义是:根据等价类测试工程方法定义的对象 的范围,在这个范围中包含了对象所有可能出现的结果,每一个范围为一个 度量片段。一个对象中包含一个或者多个度量片段。和对象的三种类型相对 应,度量片段分为基本度量片段、交叉度量片段和顺序度量片段三种类型。\n同时,对于被测对象而言,每个测试点中有一个或者多个被测片段,对 应地,每个验证用例中有一个或者多个度量片段。\n当被测对象利用验证用例的测试,其测试结果落在某个已经定义的被测 片段范围内,即被测片段被命中一次时,称度量片段被覆盖(Hit)1次。\n在大规模逻辑测试中,典型的度量片段实例有:\nA、中断信号:有效、无效;\nB、校验(CRC):对、错;\nC、包长:长包、短包、超长包、超短包、典型长度包;\nD、包过滤处理的所有路径:路径1、路径2、……\nE、输出处理:方式0、方式1、……\n通过度量片段将被测对象的测试点和验证用例联系起来,因此,度量片 段要素参数是验证用例功能覆盖率统计单元5的基本度量元素参数。\n因此,验证用例的功能覆盖率可以以度量片段要素的得分(Score)情况 进行量化,得分的取值范围为0到1之间(包括0和1)。得分为1时称之为 完全覆盖到或达到目标,得分为0时称之为完全没有覆盖到或没有达到覆盖, 介于0和1之间称之为部分覆盖到或部分达到覆盖。\n步骤2)根据每个被测对象的功能将被测对象分解为多个测试点,并由 被测对象发出测试请求,利用验证用例对测试点进行验证测试,得到分析结 果;\n在测试过程中,被测对象(DUT)通过总线功能单元3向激励单元2发 出测试请求。激励单元2在收到被测对象发出的测试请求后,通知主控台1, 并把收到的测试请求上交给主控台1。同时,激励单元2根据测试请求向主 控台1发出激励事件,主控台1对激励事件进行测试,并将测试结果传送到 结果分析单元4进行结果分析得到分析结果。\n总线功能单元3将测试请求发送到激励单元2,请求激励单元2发送激 励事件(即验证用例)到主控台1;然后,激励单元2根据配置(即当前的 状态,如发送数据的带宽),决定是否发送激励事件到主控台1,如果此时发 送激励事件的带宽在预期的范围内,则允许发送;如果超出预期范围则不发 送,给总线功能单元3返回一个等待的信号。\n如果可以发送数据,则激励单元2生成相应的激励事件数据,发送给主 控台1进行测试;\n如果不能发送数据,激励单元2返回给总线功能单元(BFM)3一个延 时数据,总线功能单元(BFM)3在延时完成之后,再次向激励单元2申请 报文。\n结果分析单元4根据主控台1的配置和控制,接收结果数据。结果分析 单元4在接收到结果数据后,进行分析得到分析结果。\n步骤3)利用分析结果,计算出验证用例中的各个度量要素参数的覆盖 得分,得到验证用例的功能覆盖率,并根据测试点中的被测片段命中的情况, 结合被测对象的测试点的权重,计算出被测对象各个测试层的量化得分,得 到被测对象的功能覆盖率。\n步骤31)利用分析结果,根据测试点中的被测片段被验证用例命中的情 况,收集到与验证用例(即激励事件)对应的被命中的被测片段,计算度量 片段覆盖情况;\n步骤32)验证用例功能覆盖率统计单元5以验证用例对被测对象的功能 覆盖率为基准,根据度量片段的覆盖情况,计算的验证用例的得分,得到验 证用例的功能覆盖率;\n当被测对象利用验证用例的测试,其测试结果落在某个已经定义的被测 片段范围内,即被测片段被命中一次时,称度量片段被覆盖(Hit)1次。\n验证用例的功能覆盖率可以以度量片段要素的得分(Score)情况进行量 化,得分的取值范围为0到1之间(包括0和1)。得分为1时称之为完全覆 盖到或达到目标,得分为0时称之为完全没有覆盖到或没有达到覆盖,介于 0和1之间称之为部分覆盖到或部分达到覆盖。\n根据被命中的被测片段数据,确定覆盖的基础度量片段、交叉度量片段 和序列度量片段,得到对应的基础对象、交叉对象和序列对象的覆盖情况; 根据基础对象、交叉对象(CrossObject)、序列对象(SequenceObject)的覆 盖情况,进一步得到验证用例总的功能覆盖率集合,从而得到验证用例的得 分情况;\n对象的覆盖情况是通过度量片段的覆盖情况来统计的,当对象中的相应 度量片段被覆盖时,相应对象的覆盖数(Hits)加1。\n对于每个验证用例,在定义时确定一个重要级别,如将验证用例分为高、 中、低三个级别,每个级别对应着一个权重(Weight),如高为5,中为3, 低为1。通过对验证用例定义重要级别,可以对每个验证用例的重要程度进 行区分,可以指导验证人员设计验证用例,决定验证人员的测试策略。\n以验证用例对被测对象的功能覆盖率集合为基准的验证用例的得分计算 过程如下:\n步骤321)计算验证用例覆盖的对象(Object)中包含的所有度量片段的 得分;\nScore(Segment)=min(1.00,Hits(Segment)/Goal(Segment))\n该公式用于计算度量片段的得分,公式的意思是:先计算度量片段的覆 盖数和目标值(Goal)之间的比值,即Hits(Segment)/Goal(Segment),然后 该比值和1进行比较,取其中的较小值做为片段(Segment)的得分。\n步骤322)计算验证用例覆盖的功能覆盖率集合(CoverSuit)中包含的 所有对象(Object)的得分。\n对象的得分计算公式如下:\nscore(Object)=∑(score(Segment)*weight(Segment))/∑(weight(Segment))\n该公式用于计算对象得分,公式的意思是:该对象下包含的所有度量片 段的得分乘以比重(Weight)的值的累加,除以该对象下包含的所有片段的 比重(Weight)的累加和。\n步骤323)计算验证用例覆盖的功能覆盖率集合的得分,得到验证用例 的得分。\n验证用例的功能覆盖率集合的得分计算公式如下:\nscore(CoverSuit)=∑(score(Object)*weight(Object))/∑(weight(Object))\n该公式用于验证用例覆盖的功能覆盖率集合得分,公式的意思是:该验 证用例下包含的所有度量片段得分乘以比重(Weight)的值的累加和除以该 验证用例下包含的所有片段的比重(Weight)的累加和。\n通过计算验证用例的功能覆盖率集合的得分,验证人员可以了解验证用 例对被测对象在每个度量参数的功能覆盖的情况,从而得到验证用例的得分, 从而可以根据验证用例的得分情况,进一步设计特定的验证用例来提高被测 对象功能覆盖率。\n步骤33)同时,被测对象功能覆盖率统计单元6以测试点为基准,根据 被测片段被命中的情况,计算出被测对象的得分,得到被测对象的功能覆盖 率。\n被测片段实际上是指被测对象某一功能特性的一个验证区间,不专指测 试结果的范围,每个测试点中包含的被测片段都有一个权重属性,该值即为 所在测试点的重要级别所对应的权重值。\n对于每个测试点(Testcase),在定义时确定一个重要级别,如将测试点 分为高、中、低三个级别,每个级别对应着一个权重(Weight),如高为5, 中为3,低为1。通过对测试点定义重要级别,可以对每个测试点的重要程度 进行区分。\n被测对象的被测片段测试层、测试点测试层、验证特性测试层、需求规 格测试层四个测试层的功能覆盖率的计算公式基本一致,都以其所包含的度 量片段的得分(Score)和权重(Weight)为基础。\n对于测试点测试层和验证特性测试层,还加上是否通过的标志(Pass) 计算,对于需求规格测试层而言,还有测试点通过率(PassRatio)的计算。\n这一过程包括下列步骤:\n步骤331)根据被测对象中被测片段命中的情况,结合被测对象的测试 点的权重,计算出被测片段测试层的功能覆盖率(计算公式如公式(1));\n被测片段测试层的功能覆盖率:\nScore(Segment)=min(1.00,Hits(Segment)/Goal(Segment)) (1)\n该公式用于计算被测片段测试层的得分(即功能覆盖率的度量,下同), 公式的意思是:先计算被测片段(Segment)的命中数(Hits)和目标值(Goal) 之间的比值,即Hits(Segment)/Goal(Segment),然后该比值和1进行比较, 取其中的较小值做为片段(Segment)的得分。\n步骤332)根据被测对象中测试点测试层中包含的所有片段,计算测试 点测试层的功能覆盖率(计算公式如公式(2)和(3));\n测试点测试层的功能覆盖率:\nScore(Testcase)=∑(Score(Segment)*Weight(Segment))/∑ (Weight(Segment)) (2)\n该公式用于计算测试点测试层的得分,公式的意思是:该测试点下包含 的所有片段(Segment)的得分乘以比重(Weight)的值的累加,除以该测试 点下包含的所有片段(Segment)的比重(Weight)的累加和。\nPass(Testcase)=(Score(Testcase)=1)?1:0 (3)\n该公式用于计算某个测试点是否通过测试,通过时返回1,否则返回0, 公式的意思是:该测试点的得分如果为1则返回1,否则返回0。\n步骤333)根据被测对象中验证特性测试层中包含的所有片段,计算验 证特性测试层的功能覆盖率(计算公式如公式(4)和(5));\n验证特性测试层的功能覆盖率:\nScore(Feature)=∑(Score(Segment)*Weight(Segment))/∑ (Weight(Segment)) (4)\n该公式用于计算验证特性测试层的得分,公式的意思是:该验证特性下 包含的所有片段(Segment)的得分乘以比重(Weight)的值的累加和除以该 验证特性下包含的所有片段(Segment)的比重(Weight)的累加和。\nPass(Feature)=(Score(Feature)=1)?1:0 (5)\n该公式用于计算某个验证特性是否通过测试,通过时返回1,否则返回0, 公式的意思是:该验证特性的得分如果为1则返回1,否则返回0。\n步骤334)根据被测对象中需求规格测试层中包含的所有片段,计算需 求规格测试层的功能覆盖率(计算公式如公式(6)),然后计算出被测对象的 所有测试点的通过率(计算公式如公式(7)),得到被测对象的功能覆盖率。\n需求规格测试层的功能覆盖率\nScore(Spec)=∑(Score(Segment)*Weight(Segment))/∑ (Weight(Segment)) (6)\n该公式用于计算需求规格测试层的得分,公式的意思是:被测对象中包 含的所有片段(Segment)的得分乘以比重(Weight)的值的累加和除以被测 对象中包含的所有片段(Segment)的比重(Weight)的累加和。\n被测对象的所有测试点通过率,即被测对象的功能覆盖率为:\nPassRatio(Testcase)=(通过的测试点数目)/(测试点总数) (7)\n即测试点通过率为通过测试点数目除以测试点总数。\n本发明中的测试度量系统和方法,对被测对象的测试点,分别利用存储 在激励单元2中的验证用例进行验证测试,由结果分析单元4进行分析,得 到分析结果;利用度量片段要素参数被覆盖的情况,计算出验证用例中的各 个要素参数的覆盖情况,得到验证用例的功能覆盖率,并根据测试点中的被 测片段被验证用例命中的情况,度量出各个测试层的量化得分,从而得到被 测对象的各个层次的功能覆盖率。其通过分层次计算被测对象和验证用例的 功能覆盖率得分,得出的功能覆盖率数据,验证人员可以了解到在被测对象 和验证用例的各个层次上的功能覆盖情况,可以为测试项目的验证充分性提 供定量评价标准和依据;利用集成了功能覆盖率度量模型的验证平台,验证 人员使用本系统可以迅速建立起高效的验证环境,减少验证环境建立时间, 提高验证质量,实现仿真验证的自动化。\n本实施例是为了更好地理解本发明进行的详细的描述,而并不是对本发 明所保护的范围的限定,因此,本领域普通技术人员不脱离本发明的主旨情 况下,未经创造性劳动而对本发明所做的改变,是在本发明的保护范围内的。
法律信息
- 2017-11-03
未缴年费专利权终止
IPC(主分类): G06F 17/50
专利号: ZL 200610153890.5
申请日: 2006.09.14
授权公告日: 2008.10.22
- 2008-10-22
- 2007-04-18
- 2007-02-21
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2004-03-31
|
2002-09-23
| | |
2
| |
2004-03-17
|
2002-09-11
| | |
3
| |
2006-03-08
|
2004-09-04
| | |
4
| |
2005-07-20
|
2004-01-04
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |