[发明专利]基于启发式规则的并发式自适应随机测试方法有效
申请号: | 202110674680.5 | 申请日: | 2021-06-17 |
公开(公告)号: | CN113468047B | 公开(公告)日: | 2022-05-17 |
发明(设计)人: | 沐燕舟;王赞;刘爽 | 申请(专利权)人: | 天津大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 天津市北洋有限责任专利代理事务所 12201 | 代理人: | 李素兰 |
地址: | 300072*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 启发式 规则 发式 自适应 随机 测试 方法 | ||
本发明公开了一种基于启发式规则的自适应随机并发测试方法,步骤1、随机执行待测试并发程序作为输入;步骤2、从初始状态开始探索程序状态空间;步骤3、进行启发式规则排序选择,三种启发规则分别为线程切换频率、写操作占比和共享变量个数;步骤4、在基于距离度量以及启发式规则排序之后,控制存储所有可行子状态的队列Q的长度,利用超参数N进行调整,直至到达程序的终止状态;步骤5、进行错误报告,即能够检测出为给定的待测并发程序其包含的错误,最终输出检测到的错误的详细信息报告。与现有技术相比,本发明利用启发式规则提高了加速检测并发程序的效率,从而解决了利用内存访问模式检测出现的“冷启动”问题;通过不断积累之前探索的信息,矫正之后的检测方向,大幅提高了检测并发程序错误的效率。
技术领域
本发明涉及软件测试领域,特别是涉及一种并发式自适应随机测试方法。
背景技术
随着多核处理器的发展,并发编程得到了广泛的应用;但其同时极有可能会引入难以检测的并发错误。与顺序程序中的错误不同,并发错误属于heisenbugs错误类型,这意味着并发错误可能只在给定的错误诱导输入上以特定的调度方式显示,只有当开发人员多次执行相同信息的程序时,才有可能能够观察到这些错误。这无疑增大了检测并发错误的难度。为了暴露程序中可能蕴含的大量并发错误,研究人员提出了许多方法来探索引起并发错误的程序调度执行路径,主要包括穷举搜索方法和随机调度方法两大类。由于调度的不可预知性,并发错误的重现具有很大的挑战性,而调度的随机性给并发错误的检测和定位带来了困难。
自适应随机测试(ART)是一系列自适应生成序列程序随机测试用例的算法。该算法模型用于模拟可能导致错误的测试用例在输入域中分布不均匀。由于这种分布的偏向性,错误可能会密集分布在输入域的某些部分。基于此,研究人员认为具有统一分布的测试用例更容易暴露程序中的错误。自适应随机测试的思想是一开始采用随机搜索对程序的状态空间进行探索,之后应该将搜索的方向逐渐集中于之前没有探索过的方向。
发明内容
通过采用基于程序运行信息设计的启发式规则,缓解自适应随机调度方法ARS由于运行初期信息不足而造成的“冷启动”问题,以及在基于内存访问模式的距离度量失效时,帮助算法快速定位到可疑的程序调度点,提升检测并发缺陷的效率。
一种基于启发式规则的自适应随机并发测试方法,该方法包括以下步骤:
步骤1、随机执行待测试并发程序,作为本流程的输入:首先随机执行一次待测程序,得到结果;如果本次执行已经触发了程序中包含的错误,则直接将检测到的错误信息输出,退出运行;否则,将本次随机运行成功的程序调度路径的信息且包含的内存访问模式记录下来存储在集合T中,作为积累信息,为之后的搜索检测提供指导来矫正之后的检测方向;
步骤2、从初始状态开始探索程序状态空间,具体处理包括:随机执行完待测程序没有遇到错误后,重新回到程序状态空间的最初始状态,从上往下重新探索程序的状态空间;每次探索首先获取到待测试并发程序当前状态下所有可行的直接子状态,将其全部存入队列Q中,然后计算队列Q中所有子状态和目前探索过的并行程序状态组成的调度路径与队列T中已经探索过的程序调度路径的距离度量;接下来,将队列Q按降序排序,选出队首元素即与集合T相比距离最大的子状态出队列,然后继续执行;如果排序之后的队列Q中的队首元素的距离度量和第二个元素取值一样,则认为此次排序无效,进入启发式规则排序阶段;
计算基于内存访问模式的距离度量,表达式如下:
其中,dist(tracea,traceb)表示它们对应的内存访问模式集合之间包含的内存访问模式个数,tracea,traceb分别表示两条不同的程序调度路径,分别表示两条程序调度路径包含的内存访问模式集合,两条程序调度路径之间的距离;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津大学,未经天津大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110674680.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种无运放带隙基准源
- 下一篇:电池健康状态测算方法以及相关设备