[发明专利]一种针对分布式系统程序死锁缺陷的测试系统及方法有效
| 申请号: | 201810799683.X | 申请日: | 2018-07-20 |
| 公开(公告)号: | CN108959098B | 公开(公告)日: | 2021-11-05 |
| 发明(设计)人: | 赵靖;王延斌;吴卓霏;鲁华林;姚念民 | 申请(专利权)人: | 大连理工大学 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F9/52 |
| 代理公司: | 大连理工大学专利中心 21200 | 代理人: | 温福雪;侯明远 |
| 地址: | 116024 辽*** | 国省代码: | 辽宁;21 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 针对 分布式 系统 程序 死锁 缺陷 测试 方法 | ||
本发明提供了一种针对分布式系统程序死锁缺陷的测试系统及方法,通过对分布式系统网络事件进行模拟,将其与单机上待测试分布式系统软件执行的锁事件相结合,之后使用基于优先级的线程调度模块将线程并行逻辑转为串行逻辑并通过死锁检测模块判断死锁,实现了在单机上对分布式系统死锁缺陷的有概率保证的检测,有效降低了针对分布式系统的死锁检测成本,提高了程序测试效率。
技术领域
本发明属于软件测试技术领域,具体涉及一种针对分布式系统程序死锁缺陷的测试系统及方法。
背景技术
软件测试是保障计算机系统可靠性的重要技术,它可以提前暴露出计算机程序中的缺陷,避免其在生产环境中造成意外损失。死锁缺陷是计算机系统中常见的程序缺陷类型之一,它的发生会使并发程序陷入循环等待状态,造成程序服务不可用或程序崩溃,具有难检测、难处理、危害性大等特点。
死锁缺陷存在于具有并发性的计算机系统中,其中程序锁用于维护并发程序中共享数据的一致性状态,当程序进入锁的循环等待状态时就会形成死锁。多线程程序中的并发性主要来自于不同线程共享内存的操作;而分布式系统的并发性不仅包括多线程程序的并发,更多地来自于分布式系统不同节点之间的网络通信交互。
现有技术方案只针对单机多线程程序进行死锁缺陷检测,而未考虑网络消息事件对待检测程序的影响,这造成现有技术在应用于分布式系统上时,产生大量的漏检现象。
发明内容
本发明主要解决的技术问题是提供一种针对分布式系统程序死锁缺陷的测试系统。能够降低针对分布式系统死锁缺陷测试的漏检率,减少测试开销,保证分布式系统的可靠性。
本发明的技术方案:
一种针对分布式系统程序死锁缺陷的测试系统,包括待测试分布式系统软件、自定义网络事件模拟器、二进制插桩模块、时间序列维护模块、基于优先级的线程调度模块和死锁检测模块;
自定义网络事件模拟器用来模拟分布式系统中其他主机上产生的网络锁事件,并将产生的网络锁事件以JSON格式发送至时间序列维护模块,其中网络锁事件包括时间戳、网络事件线程ID、锁ID和锁事件内存地址;
二进制插桩模块用来对待测试分布式系统软件进行动态插桩,获取待测试分布式系统软件在一次运行过程中各个线程执行的所有锁事件,并通过JSON格式以时间顺序发送给时间序列维护模块,锁事件包括时间戳、线程ID、锁ID和锁事件内存地址;
时间序列维护模块从自定义网络事件模拟器和二进制插桩模块接收JSON格式的锁事件,并将接收到的锁事件按时间顺序和线程ID进行维护,之后将收集到的全部信息通过JSON格式发送给基于优先级的线程调度模块;
基于优先级的线程调度模块从时间序列维护模块中接收JSON格式的数据,使用概率保证调度算法并根据死锁检测模块反馈的结果,对并发的线程进行调度,将其并行逻辑转为串行逻辑,之后将执行结果以锁事件为单位,通过JSON格式发送给死锁检测模块;
死锁检测模块从基于优先级的线程调度模块中接收JSON格式的锁事件,并采用死锁检测算法判断当前线程是否被阻塞,并将结果反馈至基于优先级的线程调度模块,若当前未执行完成的线程均被阻塞,则将其判定为死锁。
一种针对分布式系统程序死锁缺陷的测试方法,步骤如下:
步骤1.自定义网络事件模拟器模拟分布式系统中其他主机上的软件产生的网络锁事件,并将产生的网络锁事件以JSON格式发送至时间序列维护模块,其中网络锁事件包括的内容有:时间戳、网络事件线程ID、锁ID、锁事件内存地址等;
步骤2.二进制插桩模块对待测试分布式系统软件进行动态插桩,获取待测试分布式系统软件在一次运行过程中各个线程执行的所有锁事件,并通过JSON格式以时间顺序发送给时间序列维护模块,其中锁事件包括的内容有:时间戳、线程ID、锁ID、锁事件内存地址等;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大连理工大学,未经大连理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810799683.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种自动提交bug的系统及方法
- 下一篇:一种获取固件的方法及装置





