0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

针对CIMS系统中测试集的筛选问题进行研究

集成电路应用杂志 来源:未知 作者:工程师郭婷 2018-08-30 17:20 次阅读

1 引言

随着信息化社会的飞速发展,图形处理芯片 GPU芯片的功能越来越丰富,性能要求越来越高,应用领域也越来越多源化。相应地,在 GPU 架构设计环节,功能级仿真 C-model 的规模和复杂度也不断增大。整个项目设计周期内,任何新版本的引入,无论是源于对已有错误的修正,还是为支持新功能而增加模块,都可能对原有 C-model 带来影响。如果无限制地任由研发团队的每个人随意检出检入,就会给项目带来风险,因此就需要对代码进行版本控制和有效管理。

与此同时,代码的频繁修改,理论上都需要更高频率的测试来验证,才能避免新错误的引入,确保芯片的正常功能。其过程十分重要,但是需要大量的人力、物力成本。因此,要确保项目高效正向推进,有必要在代码提交前对其进行有效的预检,为后续的回归测试和错误跟踪节省成本。

众所周知,测试用例决定了测试的成本及效果,针对版本控制系统端的测试用例,时效性显得尤为重要。因此,如何在时间有限的约束条件下,在代码预检端优选出能保障代码质量的测试用例集合,成为本文研究的重点。

2 CIMS 原理框架和集合覆盖问题

2.1 CIMS原理框架

作为我们自行研发的自动化测试框架的一部分,检入管理系统 CIMS(Check In Management System)相当于软件版本管理系统的前置过滤器。图 1 为其工作流程图。该系统利用 Perforce 提供的trigger 功能,将我们自定义的脚本嵌入。当研发人员修改代码并检入时,p4server 自动调用脚本对修改的代码进行编译和测试。只有通过所有编译和测试项的修改,才可过关进而被成功提交至 Perforce 存储库,并获得版本号。否则,修改将被退回,开发员可以通过 CIMS 系统提供的网页界面查询编译和测试状态,便于进一步自查和完善代码。虽然通过 CIMS这套机制,对代码质量设置了一定的门槛,但是也需要兼顾时间成本,为了让 CIMS 发挥更大的作用,测试集的优选算法值得重点研究。

目前,测试人员普遍采用回归测试来保证代码修改的正确性,并避免代码修改给被测程序其他模块带来的副作用。CIMS 系统中测试用例集的优选问题在以往的项目开发中,往往凭经验从已有的回归测试集合中,分模块挑选,以提高整个 pipeline 的功能覆盖,并无任何指标来评判其效用之优劣。本文从集合覆盖角度,对如何从已有回归测试集中筛选子集作为 CIMS 系统内的测试集展开研究。

2.2 集合覆盖问题

在集合论中,集合覆盖定义为:假设 A 是非空集合,如果 A 的若干非空子集的并集等于 A,则由这些子集构成的集合 C 称为 A 的覆盖。即非空集 A的一个覆盖 C 是 A 的非空子集的集合。

经典的集合覆盖问题 SCP(Set Covering Problem)描述如下:给定两个集合 R 和 S,元素的集合 R 和 R 的子集的集合 S,目标是找到 S 的一个子集 C,使得 C 中所有集合的并等于 R,且使 |C| 最小。这是 NP-hard 类的最优化组合问题。

早期回归测试工具大都基于黑盒测试。当时,还没有任何回归测试工具能在程序修改后自动在原始用例集中选择出一个用例子集进行回归测试,而是再测试全部已有用例进行回归测试。在这种情况下,Fischer 等人研究了如何在原始用例集中选择出一个最小的子集,用于回归测试,且不会降低测试效果和程序的可靠性,最早提出了测试用例最小化的思想[1]。对测试用例集最小化的定义如下:给定测试需求集 R{R1,R2,R3.....Rm},测试用例集 T{T1,T2,T3....Tn},该测试用例集 T 能够用来充分测试 R。问题:从 T 中找到一个最小子集 T',该子集 T' 能够用来充分测试给定的测试需求集 R。

1993 年,Harrold 等人[2]首次提出了测试用例集约简的概念,也就是要在原始的测试用例中寻找一个子集,实现测试需求的充分覆盖。随后研究人员围绕测试用例集约减问题提出了贪心算法[3]、整数规划算法、遗传算法、HGS 等算法。这些方法各有优势和局限性,更多趋向于去除冗余的测试用例,没有考虑到要缩减用例的根本原因是资源有限,而且约减的目的并不单是测试用例的个数越少越好,也要考虑约减后测试用例集的错误检测能力是否保持在一定的水平上。为了充分利用资源,又兼顾资源的约束条件。

本文提出了一种改进的测试集优选算法,寻求能使代码覆盖率达到最大的用例集。

3 基于SCP原理的优化方案

3.1 集合覆盖贪心算法

最早提出用贪心算法来求解测试用例集合覆盖问题的是 V.Chvatal[4]。集合覆盖贪心算法是测试用例集约减问题的一个常用近似算法。贪心策略的思路是从问题的初始状态出发,通过若干次的贪心选择而得出最优解(或较优解)。其算法执行过程如下:逐次从 T 中选择一个测试用例,使之能尽可能多地满足 R 中的测试需求,然后从 R 中删除这些已被满足的测试需求,循环几次上述操作,直到所有测试需求都能被满足(即 R 为空集)。

该算法的时间复杂度是 O (m,n,min(m,n))。算法如下。

input A:包含 m 个元素的集合

C(A):A 的 n 个子集的集合

output C:从 C(A) 中选择的元素的集合

declare U:A 中所有未覆盖元素的集合

X:从 C(A) 中选中的元素

Begin

/初始化/

U=A;

C=Φ;

While(U≠Φ )

/选择一个能满足未覆盖元素的最大数目的子集/

select{X} C(A) such that |{X}∩ U| is maximum;

U=U{X};

C=C ∪ {X};

End-while

End

贪心算法所做出的选择虽然只是在某种意义上的局部最优解,但许多问题自身的特性决定了该问题运用贪心策略可以得到最优解或较优解。CIMS 系统中测试集的集合覆盖问题可以用贪心算法求解。即通过一系列当前状态下某种意义的最好选择(贪心选择)来得到一个问题的解。最小化问题的贪心选择性质表现为:问题的整体最优解是通过一系列局部最优的选择,即贪心选择来达到的。

3.2 测试用例约减模型

针对 CIMS 系统中测试集的集合覆盖问题[4,5],本文定义了资源约束条件下的测试用例约减模型为:假设给定一个回归测试用例集 R={r1,r2.....rn},其中每个测试用例对应的运行时间为 T={t1,t2....tn},每个测试用例对应的函数覆盖率为 C={c1,c2....cn},假定约束时间为 Tsum,我们要找出一个测试用例集的子集 P={ p1,p2.....pm },其中 m

(3)

3.3 算法实现

根据测试用例约减模型,假设已有回归测试用例集为 R={r1,r2.....rn},其对应的函数覆盖率为 Ctotal,其中,每个测试用例 rn 对应了不同的函数覆盖率 cn 和不同的测试时间 tn,取函数覆盖率和测试时间的比值 cn/tn 作为该测试用例 rn 的优先级系数,需要选出最佳测试子集 P,使得该集合所对应的函数覆盖率尽可能接近 Ctotal、该集合中所有测试用例运行时间之和不大于约束值 Tsum。算法流程如图 2 所示,具体实现步骤如下。

(1)设定时间约束条件为 Tsum。

(2)将测试用例按其函数覆盖率 Cn 从大到小排序,将排位第一的测试用例选入 P。

(3)在余下的测试用例中,筛选与已选中的测试用例对应的被覆盖函数交集最小的测试用例,若其值相同,则选取优先级系数最大的测试用例。

(4)以此类推,依次选取,累加被选中的测试用例的运行时间,直到运行时间之和 ∑mi=1 ti 超过约束时间 Tsum 为止。

4 实验验证

本文研究的重点是基于函数覆盖率的测试用例筛选,所以覆盖率信息收集的是函数覆盖率相关信息,包括覆盖到的函数块数量,总共的函数块数量,以及两者之间的比值即函数覆盖率。另外,计算出每个测试用例覆盖到的函数块数量与其运行时间的比值,作为优先级系数。在算法中我们会优先考虑选择运行时间尽可能短、而覆盖率尽可能高的测试用例,从而来保证时间约束条件下,覆盖更多的函数块,得到的覆盖率百分比尽可能地接近完全测试的覆盖率百分比。

根据 3.2 中提出的用例约减模型,本文选取已有回归测试用例 13 067 个进行实验,图 3 是利用工具 Bullseye 获取单个测试用例的覆盖率信息。

并且,编写程序自动化采集下列相关信息。

(1)测试用例名称。

(2)测试用例的函数覆盖率信息。

(3)测试用例运行的时间。

(4)测试用例优先级系数等,部分数据如表 1 所示。

本文选取的 C-model 代码拥有 13 216 个函数功能块,实验时所取的完全测试所得到的函数覆盖率为 84%。实验结果显示:相同运行时间下,改进前 CIMS 测试集对应的函数覆盖率为 49%,而采用本文算法后获得的测试集所对应的函数覆盖率可达 76%(参见图 4)。

实验证明,采用本文的改进算法后,在原有测试运行时间不变的情况下,算法筛选出的测试集所对应的函数覆盖率提高了 27%。说明在时间有限的约束下,采用本文的算法能合理挑选符合条件的测试用例集,使得到的测试用例子集的函数覆盖率更接近完全测试所对应的覆盖率。

5 结语

本文针对 CIMS 系统中测试集的筛选问题,结合集合覆盖原理展开研究,定义了一个资源约束条件下的测试用例约减模型,并实现了一种改进的算法,使得 CIMS 测试集在规定时间内覆盖更多函数块,提升了代码质量预检的性能,对保证项目质量有着积极的实际意义。

随着项目的推进,测试集的筛选也需要定期动态调整。如何进一步完善算法,使其能优选出可以覆盖代码修改部分的测试用例,更好地满足测试需求,是下一步值得研究的方向。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    446

    文章

    47685

    浏览量

    408813
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10409

    浏览量

    206463
  • 自动化
    +关注

    关注

    28

    文章

    5023

    浏览量

    77698

原文标题:检入管理 CIMS 系统中的集合覆盖问题 SCP 研究

文章出处:【微信号:appic-cn,微信公众号:集成电路应用杂志】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    电压放大器在合成射流高效掺混机理研究的应用

    进行研究。   研究方向:合成射流高效掺混机理   测试设备:信号发生器,ATA-214高压放大器,合成射流激励器,高速相机,双脉冲激光器等   实验过程:信号发生器产生正弦电压信号,经过
    发表于 03-08 17:47

    在全志V853平台上成功部署深度学习步态识别算法

    北理工通信课题组辛喆同学在本科毕业设计《基于嵌入式系统的步态识别的研究,成功将深度步态识别算法GaitSet移植到全志V853开发板上。本研究在CASIA-B数据
    发表于 03-04 10:15

    为什么要进行光模块测试?光模块测试方案

    为什么要进行光模块测试?光模块测试方案 光模块测试是指对光模块进行一系列测试,以确保其性能和质量
    的头像 发表于 01-19 11:15 328次阅读

    LabVIEW进行癌症预测模型研究

    病例和癌症相关死亡人数有所增加。其中,乳腺癌是女性中最常见的癌症类型。 本研究采用ML技术对乳腺癌进行预测,比较了当前方法和提出的方法。 使用诊断乳腺癌数据包含699个样本,9个变量。数据集中的样本被
    发表于 12-13 19:04

    忆阻器基础研究测试

    忆阻器是一种具有电荷记忆功能的非线性电阻,通过控制电流的变化可改变其阻值,自从2008年HP公司制备出了忆阻器,科学家们意识到忆阻器的优势和作用,所以现在也有很多院所开始进行忆阻器的研究 忆阻器研究
    的头像 发表于 11-20 16:30 253次阅读
    忆阻器基础<b class='flag-5'>研究</b><b class='flag-5'>测试</b>

    商用车电驱动桥下线检测技术研究

    电机并且由电机驱动进行测试[7]。目前还没有完善的商用车电驱动桥出厂检测标准和规范,为此针对新能源商用车电驱动桥下线检测项目及其方法进行研究
    的头像 发表于 11-10 09:56 714次阅读
    商用车电驱动桥下线检测技术<b class='flag-5'>研究</b>

    Skydel GNSS仿真引擎助力多所高校实现GNSS仿真测试教育

    目前高校研究机构很难拥有用于定位、导航和定时(PNT)的测试和模拟工具,卫星导航相关的教育基本都是通过教科书或基于Matlab代码编程进行研究,没办法让学生进行相应的实践、实操练习。而
    的头像 发表于 11-09 10:28 160次阅读
    Skydel GNSS仿真引擎助力多所高校实现GNSS仿真<b class='flag-5'>测试</b>教育

    电源自动测试系统如何进行电源模块测试

    电源自动测试系统如何进行电源模块测试? 电源自动测试系统是用于对电源模块
    的头像 发表于 11-09 09:30 485次阅读

    九相逆变器SVPWM实现方法的研究

    针对一种为九相集中整距绕组感应电机供电的九相逆变器进行研究。为了提高感应电机输出转矩和直流母线电压利用率,在多相空间矢量理论的基础上提出一种九相逆变器空间矢量脉宽调制的实现方法。对工作状态作用时间、扇区判断、功率开关切换顺序等关键部分
    发表于 09-26 06:37

    视觉导航关键技术及应用

    由于视觉导航技术的应用越来越普及 ,因此 ,有必要对视觉导航的关键技术及应用进行研究。文章对其中的图像处理技术和定位与跟踪技术进行了详细研究 ,并与此相对应 ,介绍的相关的应用。
    发表于 09-25 08:09

    线束耐久特性与触点压降测试方法的研究

    本文中基于 QC/T 29106-2014 标准,提出了新的耐久特性测试和触点压降测试方法,并针对这2种测试方法进行试验验证。以下为正文。
    的头像 发表于 09-14 10:00 477次阅读
    线束耐久特性与触点压降<b class='flag-5'>测试</b>方法的<b class='flag-5'>研究</b>

    LFPT1000基于管路多参数测试系统

    :本系统用于测试设备内的进出口压力值,流量值,适合生产企业,计量单位使用,对被测设备的压力及流量进行检定功能。以及流量控制系统设计、汽车研究
    发表于 08-23 15:58

    ADI标准空间产品筛选:A组测试

    在我们深入研究 A 组测试的细节之前,让我们先花点时间对 A、B、C、D 和 E 组进行高层次的了解,并了解这些步骤的顺序和一般标准。在本博客中,我们将重点介绍A组,这是在这些不同组中执行的第一组
    的头像 发表于 06-30 14:12 301次阅读
    ADI标准空间产品<b class='flag-5'>筛选</b>:A组<b class='flag-5'>测试</b>

    军用电子元器件二筛,进口元器件可靠性筛选试验

    应力后进行测试筛选; (4)线性鉴别筛选:类似老炼筛选,但要应用数理统计技术进行判别; (5)精
    发表于 06-08 09:17

    单颗粒人造石墨负极的制备及性能研究

    这一问题,从表面形貌、粒度分布、首次库伦效率和充放电比容量、循环测试几个方面,对单颗粒人造石墨的颗粒大小对储能特性的影响进行研究,所得研究成果具有一定的理论和实践价值。
    的头像 发表于 04-23 14:31 1652次阅读
    单颗粒人造石墨负极的制备及性能<b class='flag-5'>研究</b>