当前位置: 首页 > 专利查询>清华大学专利>正文

数据竞争检测工具的检测效果评估方法及装置制造方法及图纸

技术编号:19009075 阅读:61 留言:0更新日期:2018-09-22 08:57
本发明专利技术实施例提供一种数据竞争检测工具的检测效果评估方法及装置,该方法包括:运行待评估的数据竞争检测工具,分别对各测试程序进行检测,获得数据竞争检测工具输出的实际数据竞争信息;将实际数据竞争信息与真实数据竞争信息进行比较,获得数据竞争检测工具的检测效果评估结果。本发明专利技术实施例通过将实际数据竞争信息与真实数据竞争信息进行比较,获得数据竞争检测工具检测效果评估结果。由于采用数据竞争检测工具输出的实际数据竞争信息与作为标准的真实数据竞争信息进行比较,能够采用统一标准评估不同数据竞争检测工具的检测效果,具有很强的客观性,能够帮助测试人员选择合适的数据竞争检测工具。

Evaluation method and device for detecting effect of data competition detection tool

The embodiment of the invention provides a method and device for evaluating the detection effect of a data competition detection tool. The method comprises running a data competition detection tool to be evaluated, detecting each test program separately, obtaining the actual data competition information output by the data competition detection tool, and matching the actual data competition information with the real data. Data competition information is compared, and the results of the test results of data competition detection tools are obtained. The embodiment of the invention obtains the evaluation result of the detection effect of the data competition detection tool by comparing the actual data competition information with the real data competition information. Because the actual data competition information output by the data competition detection tool is compared with the real data competition information as the standard, the unified standard can be used to evaluate the detection effect of different data competition detection tools. It has strong objectivity and can help the tester to select the appropriate data competition detection tool.

【技术实现步骤摘要】
数据竞争检测工具的检测效果评估方法及装置
本专利技术实施例涉及软件分析领域,更具体地,涉及一种数据竞争检测工具的检测效果评估方法及装置。
技术介绍
随着计算机硬件并行计算能力的提升,越来越多的软件采用多线程的实现方式来提高计算效率。伴随计算效率的提升,并发缺陷也可能在不经意间被引入。并发缺陷可以分为以下三类:数据竞争缺陷、原子性违反缺陷和死锁缺陷。其中,数据竞争缺陷是指同一程序内的不同线程以非正确同步的方式在共享的内存位置上执行两个写操作或者一写一读的操作。数据竞争缺陷可能导致变量值不一致,进而导致程序崩溃,严重的可能造成财产损失。相关技术中,存在多种数据竞争检测工具,由于各种数据竞争检测工具采用不同的数据竞争检测算法,导致各种数据竞争检测工具的检测效果并不相同。为了对检测效果进行评估,通常由用户针对数据竞争检测工具进行人工评估,具有很强的主观性。
技术实现思路
为了解决上述问题,本专利技术实施例提供一种克服上述问题或者至少部分地解决上述问题的数据竞争检测工具的检测效果评估方法及装置。根据本专利技术实施例的第一方面,提供一种数据竞争检测工具的检测效果评估方法,该方法包括:运行待评估的数据竞争检测工具,分别对各测试程序进行检测,获得数据竞争检测工具输出的实际数据竞争信息;将实际数据竞争信息与真实数据竞争信息进行比较,获得数据竞争检测工具的检测效果评估结果;真实数据竞争信息由测试程序中包含的真实数据竞争获得。本专利技术实施例提供的方法,通过运行待评估的数据竞争检测工具,分别对各测试程序进行检测,获得数据竞争检测工具输出的实际数据竞争信息;将实际数据竞争信息与真实数据竞争信息进行比较,获得数据竞争检测工具的检测效果评估结果。由于采用数据竞争检测工具输出的实际数据竞争信息与作为标准的真实数据竞争信息进行比较,能够采用统一标准对不同数据竞争检测工具的检测效果进行评估,具有很强的客观性,能够帮助测试人员选择合适的数据竞争检测工具。根据本专利技术实施例第二方面,提供了一种数据竞争检测工具的检测效果评估装置,该装置包括:运行模块,用于运行待评估的数据竞争检测工具,分别对各测试程序进行检测,获得数据竞争检测工具输出的实际数据竞争信息;比较模块,用于将实际数据竞争信息与真实数据竞争信息进行比较,获得数据竞争检测工具的检测效果评估结果;真实数据竞争信息由测试程序中包含的真实数据竞争获得。根据本专利技术实施例的第三方面,提供了一种数据竞争检测工具的检测效果评估设备,包括:至少一个处理器;以及与处理器通信连接的至少一个存储器,其中:存储器存储有可被处理器执行的程序指令,处理器调用程序指令能够执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的数据竞争检测工具的检测效果评估方法。根据本专利技术实施例的第四方面,提供了一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的数据竞争检测工具的检测效果评估方法。应当理解的是,以上的一般描述和后文的细节描述是示例性和解释性的,并不能限制本专利技术实施例。附图说明图1为本专利技术实施例的一种数据竞争检测工具的检测效果评估方法的流程示意图;图2为本专利技术实施例的XML格式基线文件的结构示意图;图3为本专利技术实施例的一种数据竞争检测工具的检测效果评估装置的结构示意图;图4为本专利技术另一实施例的一种数据竞争检测工具的检测效果评估装置的结构示意图;图5为本专利技术实施例的一种数据竞争检测工具的检测效果评估装置的运行流程示意图;图6为本专利技术实施例的一种数据竞争检测工具的检测效果评估设备的结构示意图。具体实施方式下面结合附图和实施例,对本专利技术实施例的具体实施方式作进一步详细描述。以下实施例用于说明本专利技术实施例,但不用来限制本专利技术实施例的范围。数据竞争检测工具用于对程序运行过程中的数据竞争缺陷进行检测。不同的数据竞争检测工具基于不同的数据竞争检测算法。相关技术中,数据竞争检测算法包括基于happen-before的数据竞争检测算法,该算法以检测的精确率高而出名,但是由于有限的可见程序轨迹,导致它的漏报率较高。基于lockset的数据竞争检测算法以低开销的方式计算不同线程在同一共享内存位置拥有锁的集合,通过不一致的锁集合报告数据竞争缺陷,这种检测算法原理简单但是误报率较高。轨迹预测的数据竞争检测算法根据程序的实际运行轨迹,基于顺序一致系统的最大因果模型理论,预测可行的其他程序运行轨迹,借助约束求解器报告数据竞争缺陷。基于上述数据竞争检测工具,由于没有统一的对各类数据竞争检测工具的检测效果进行评估的方法,使得不同检测工具的评估存在主观性。为了对不同数据竞争检测工具的检测效果进行统一评估,本专利技术实施例提供一种数据竞争检测工具的检测效果评估方法。参见图1,包括:101、运行待评估的数据竞争检测工具,分别对各测试程序进行检测,获得数据竞争检测工具输出的实际数据竞争信息。分别对测试程序进行检测,具体可以同时对一个或多个测试程序进行检测,本专利技术实施例对此不作限定。实际数据竞争信息用于表示数据竞争检测工具实际检测到的测试程序中含有的数据竞争,具体可通过数据竞争发生的位置信息表示,例如数据竞争的行号信息,数据竞争发生的变量名及数据竞争发生的包名和类名等。数据竞争检测工具输出数据竞争信息可以通过错误流或标准流的形式输出,错误流或标准流两类输出的实际数据竞争信息可统一记录在一个日志文件中,本专利技术实施例对此不作限定。102、将实际数据竞争信息与真实数据竞争信息进行比较,获得数据竞争检测工具的检测效果评估结果;真实数据竞争信息由测试程序中包含的真实数据竞争获得。真实数据竞争信息用于表示测试程序中真实存在的数据竞争,表示的数据竞争方式与实际数据竞争信息相同,在此不再赘述。换言之,真实数据竞争信息表示数据竞争检测工具应当检测到的数据竞争情况。因此,可以将真实数据竞争信息作为标准,通过将实际数据竞争信息与作为标准的真实数据竞争信息进行比较,能够评估检测效果。真实数据竞争信息可预先由人工标记测试程序中的真实数据竞争得到。检测效果评估结果可以为CSV格式的检测效果评估报告,本专利技术实施例对此不作限定。本专利技术实施例提供的方法,通过运行待评估的数据竞争检测工具,分别对各测试程序进行检测,获得数据竞争检测工具输出的实际数据竞争信息;将实际数据竞争信息与真实数据竞争信息进行比较,获得数据竞争检测工具的检测效果评估结果。由于采用数据竞争检测工具输出的实际数据竞争信息与作为标准的真实数据竞争信息进行比较,能够采用统一标准对不同数据竞争检测工具的检测效果进行评估,具有很强的客观性,能够帮助测试人员选择合适的数据竞争检测工具。为了实现数据竞争检测工具的评估,需要一个精确的、含有各种类型数据竞争实例的数据集。常用的数据集有IBMContestbenchmarksuite、JavaGrandebenchmarksuite等,但是这些数据集是用于性能计算评测,含有较少的包含数据竞争的程序,且不包含大型开源程序。为了保证数据竞争工具检测效果评估的可信性,需要收集数据竞争检测专用的数据集。因此,基于上述实施例的内容,作为一种可选实施例,在将实际数据竞争信息与真实数据竞争信息进行比较之前,提供一种获本文档来自技高网...
数据竞争检测工具的检测效果评估方法及装置

【技术保护点】
1.一种数据竞争检测工具的检测效果评估方法,其特征在于,包括:运行待评估的数据竞争检测工具,分别对各测试程序进行检测,获得所述数据竞争检测工具输出的实际数据竞争信息;将所述实际数据竞争信息与真实数据竞争信息进行比较,获得所述数据竞争检测工具的检测效果评估结果;所述真实数据竞争信息由所述测试程序中包含的真实数据竞争获得。

【技术特征摘要】
1.一种数据竞争检测工具的检测效果评估方法,其特征在于,包括:运行待评估的数据竞争检测工具,分别对各测试程序进行检测,获得所述数据竞争检测工具输出的实际数据竞争信息;将所述实际数据竞争信息与真实数据竞争信息进行比较,获得所述数据竞争检测工具的检测效果评估结果;所述真实数据竞争信息由所述测试程序中包含的真实数据竞争获得。2.根据权利要求1所述的方法,其特征在于,所述将所述实际数据竞争信息与真实数据竞争信息进行比较之前,还包括:对所述测试程序进行数据竞争检测,基于检测到的所述测试程序中包含的真实数据竞争获得对应的所述真实数据竞争信息,并删除所述测试程序中不包含所述真实数据竞争的所述测试程序;对所述测试程序及所述真实数据竞争信息进行统一化组织,获得数据集;所述数据集包括采用设定存储格式存储的所述测试程序以及用于存储所述真实数据竞争信息的基线文件。3.根据权利要求2所述的方法,其特征在于,所述对所述测试程序进行数据竞争检测之前,还包括:收集所述测试程序,删除所述测试程序中重复的所述测试程序以及不能正常运行的所述测试程序。4.根据权利要求1所述的方法,其特征在于,所述运行待评估的数据竞争检测工具,分别对各测试程序进行检测,包括:根据所述数据竞争检测工具的检测命令及所述测试程序的输入参数要求,获取与所述测试程序对应的测试脚本;分别运行与各所述测试程序对应的所述测试脚本,对各所述测试程序进行检测。5.根据权利要求2所述的方法,其特征在于,所述获得所述数据竞争检测工具输出的实际数据竞争信息,包括:采用正则表达式提取所述数据竞争检测工具输出的日志文件中的所述实际数据竞争信息,所述正则表达式由所述数据竞争检测工具输出所述日志文件的方式确定;或者,对所述数据竞争检测工具输出的日志文件进行格式化处理后,采用所述基线文件存储所述真实数据竞争信息的方式输出所述实际数据竞争信息。6.根据权利要求1或2所述的方法,其特征在于,所述将所述实际数据竞争信息与真实数据竞争信息进...

【专利技术属性】
技术研发人员:姜宇高健杨鑫顾明孙家广
申请(专利权)人:清华大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1