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

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

3天内不再提示

蚁群算法在验证用例自动化回归中的应用有哪些?

sanyue7758 来源:阿辉说 2023-10-07 16:58 次阅读

背景:如今的芯片规模越来越大,功能也愈加复杂。相应的验证用例也越来越复杂,用例动态仿真耗时也随之增加,而且个数有时动辄上百个。

在验证回归过程中,如何提高效率成为广大验证工程师不得不考虑的问题。

本文尝试在验证工作中,通过蚁群算法优化用例回归序列,尽量缩短回归时间,同时提高用例回归的自动化程度。

(一)问题描述

假设当前有108个用例需要回归,并且我们有先前用例仿真的日志文件:日志文件中有该用例仿真的耗时信息

按照传统做法,我们可能首先打开十多个terminal(比如15个),平均每个terminal分配若干用例(比如7个),根据用例名的字典序回归用例。

在大多数情况下,会有个别terminal中分配的用例很快或较快的回归完,而其余几个terminal时间却又很长,迟迟不能完成,时间最长的那个terminal决定了一次回归所用的总时间。

那么,是否可以找到更好的回归队列分配给各个terminal, ***使得回归总时间最短*** ?

(二)问题转化

现在,问题就可以转化为:108个耗时不等的任务,分配给15个并行队列,求15个队列的任务序列组合,使得15个队列的总耗时最小;这个任务分配问题可以进一步引申为**负载调度**问题,108个任务分配给15台性能各异(或同等)的服务器。

上面是从时间角度进行的问题转化,也可以从空间角度考虑,把用例耗时对应空间大小,把问题转化为 **存储问题** ,本文暂不研究。

(三)问题解决

我们参考作者的JavaScript代码,考虑用perl实现算法的核心代码。具体步骤如下:

1)提取时间信息:即从仿真日志里提取时间信息,分两步①粗提取,这个使用shell命令即可,可以放到makefile中;②准确提取,在刚刚的makefile中调用perl脚本,在perl脚本中利用perl强大的文本处理能力提取准确的时间信息,存入一个哈希%Case_hash(键-用例名,值-用例对应的时间)中。

2)蚁群算法的perl实现:除了刚刚得到的哈希数组%Case_hash,我们还要给定队列数目QueneNum,这是蚁群算法的输入。同时,蚁群算法还涉及蚂蚁数量AntNum,迭代次数ItNum,随机因子等参数,参考文献[1]中有详细说明,这里不再赘述。 最终,蚁群算法会得到最优的任务分配矩阵,我们通过这个矩阵就可以知道每个队列分配了那几个用例。

3)回归队列生成:得到用例回归队列后,将这些队列以target形式写入新的makefile中(sub_makefile,在主makefile中include这个sub_makefile)。

4)自动回归:刚刚生成了sub_makefile,我们再新建一个脚本,实现“自动打开指定个数terminal,在每个terminal自动输入相应回归命令(make)即可”。

(四)问题的问题

在perl实现蚁群算法时,矩阵的处理可能会稍微麻烦一些,这里使用了哈希嵌套的做法[2]。

另外,在实际应用中,蚁群算法有以下问题①在有限迭代次数内,算法不收敛;②算法收敛,但得到的最优解是**局部最优解**,非全局最优解。局部最优解是传统蚁群算法的缺点之一。实际使用时可以折衷考虑,适当 *增大迭代次数* ,同时提高蚁群的 *随机性* ,在有限的迭代次数内*持续搜寻最短时间的任务分配方案。*






审核编辑:刘清

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

    关注

    14

    文章

    988

    浏览量

    82993
  • JAVA
    +关注

    关注

    19

    文章

    2904

    浏览量

    102994
  • 蚁群算法
    +关注

    关注

    3

    文章

    55

    浏览量

    13134

原文标题:蚁群算法在验证用例自动化回归中的应用

文章出处:【微信号:处芯积律,微信公众号:处芯积律】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    NHLERE:应用算法的WSN路由算法

    【摘要】:针对WSN中节点能量有限及节点间链路随机损耗特点,提出一种基于算法的用于无限传感器网络的路由算法-NHLERE,利用
    发表于 04-24 10:05

    TSP问题算法通用MATLAB源程序

    算法是当前研究十分火热的一种智能算法,下面的算法
    发表于 11-07 13:35

    自动化

     (1) 形式方面,制造自动化三个方面的含义:   .代替人的体力劳动。   .代替或辅助人的脑力劳动。   .制造系统中人、机及整个系统的协调、管理、控制和优化。   (2)
    发表于 05-24 18:59

    MATLAB算法程序汇集篇

    MATLAB算法程序汇集篇
    发表于 03-30 18:02

    有没有算法的matlab编程代码

    图像处理的是算法或者是基于对数图像处理理论。。木有这两种算法的实现代码。。有的话发到我邮
    发表于 04-03 09:45

    大家来讨论一下算法实现路径规划的硬件实现问题

    本帖最后由 gk320830 于 2015-3-8 06:44 编辑 大家来讨论一下算法实现路径规划的硬件实现问题,不仅仅是m
    发表于 04-26 17:19

    【下载】MATLAB R2014a完全自学一本通+MATLAB智能算法30个案例分析

    第21章 模拟退火算法工具箱及应用第22章 算法的优化计算——旅行商问题(TSP)优化第23章 基于
    发表于 06-01 18:01

    【北京】诚聘自动化测试工程师

    猎头招聘:自动化测试工程师(薪资:25-40 K/月)工作职责:1、负责硬件相关测试效率的提升;2、负责老化测试,长时间可靠性验证及其自动化测试工具的实现;3、输出测试报告,跟踪相关问题及回归
    发表于 12-05 16:15

    请问谁做过算法选择图像特征,使识别准确率最高?

    请问谁做过算法选择图像特征,使识别准确率最高?学习资料或者matlab代码可以让我学习一下吗
    发表于 02-17 17:20

    七个步骤完成自动化测试

    我们对自动化测试充满了希望,然而,自动化测试却经常带给我们沮丧和失望。虽然,自动化测试可以把我们从困难的环境中解放出来,实施自动化测试解决
    发表于 07-19 06:12

    如何提高嵌入式DSP系统设计与自动化程度?

    嵌入式DSP系统传统设计流程通常由概念到算法算法到产品两个阶段构成,通常这两个阶段互相独立且由不同设计小组完成。传统的设计流程里要用手工两个阶段之间进行转换与衔接,这样容易出现错误而推迟产品的上市时间。本文介绍一种集成工具可
    发表于 09-19 06:29

    请问单片机做仪表和PLC做自动化什么差别?

    大家好,我本来是做电子的,单片机做了一个仪表,现在需要用PLC做一套自动化系统来配合仪表使用,我之前没有接触过PLC,现在正在看。我担心由于没有这方面的经验技术的把握上有失误给公司造成大的损失
    发表于 03-29 22:43

    回归算法哪些,常用回归算法(3种)详解

    。通常来说,事件可被表示为类别因变量。事件的概率 logit 函数(Sigmoid 函数)表示: 现在的目标是估计权重 W=(w1,w2,...,wn) 和偏置项 b。逻辑回归中,使用最大似然估计量或
    发表于 07-28 14:36

    如何对多总线自动化测试系统进行测试验证

    多总线自动化测试系统是由哪些部分组成的?怎样把遗传算法应用到SVM中去?如何对多总线自动化测试系统进行测试验证
    发表于 06-08 07:19

    HarmonyOS自动化测试框架—Hypium

    ,让开发者应用开发的过程中可以快速编写和执行测试用,实现应用的高效验证。本期,我们就带大家了解这个自动化测试框架——Hypium。一、Hypium简介“Hypium”是“Hyper
    发表于 08-10 17:13