期刊文献+

基于并发程序数据竞争故障的变异策略 被引量:4

Mutation strategy based on concurrent program data racing fault
下载PDF
导出
摘要 针对并发程序变异测试中并发变异算子触发数据竞争故障能力较低的问题,提出了基于数据竞争故障的变异策略。从并发变异算子设计的角度给出了面向锁对象的变异策略(LMS)和面向共享变量的变异策略(SMS),设计了重置同步锁(SLRO)和移出共享变量操作(MSVO)两个并发变异算子。从变异点选取的角度给出了一种同步关系对变异点选取策略(SMPSS)。在12个Java类库并发程序上,应用SLRO和MSVO算子针对SMPSS选取出的变异点植入故障,生成变异体,并使用JPF检测工具,检测生成的变异体引发数据竞争故障的能力。实验结果表明,新设计的SLRO和MSVO变异算子对12个被测程序分别生成了121和122个有效变异体,变异算子的有效性分别为95.28%和99.19%。由此可知,新设计的并发变异算子能有效触发数据竞争故障。 As the low ability of triggering the data racing fault of the existing mutation operators for concurrent program in mutation testing, some new mutation strategies based on data racing fault were proposed. From the viewpoint of mutation operator designing, Lock-oriented Mutation Strategy (LMS) and Shared-variable-oriented Mutation Strategy (SMS) were introduced, and two new mutation operators that named Synchronized Lock Resting Operator (SLRO) and Move Shared Variable Operator (MSVO) were designed. From the viewpoint of mutation point selection, also a new mutation point selection strategy named Synchronized relationship pair Mutation Point Selection Strategy (SMPSS) was proposed. SLRO and MSVO mutation operators were used to inject the faults which generated by SMPSS strategy on 12 Java current libraries, and then the ability of mutants to trigger the data racing fault was checked by using Java Path Finder ( JPF). The results show that the SLRO and MSVO for 12 Java libs can generate 121 and 122 effective mutants respectively, and effectiveness rates are 95.28% and 99.19% respectively. In summary, the new current mutation operators and mutation strategies can effectively trigger the data racing fauh.
出处 《计算机应用》 CSCD 北大核心 2016年第11期3170-3177,3195,共9页 journal of Computer Applications
基金 国家自然科学基金资助项目(61472025 61170082) 教育部新世纪优秀人才支持计划项目(NCET-12-0757)~~
关键词 并发程序变异测试 数据竞争故障 锁对象 共享变量 同步关系对 concurrent program mutation testing data racing fault lock object shared variable synchronized relationship pair
  • 相关文献

参考文献14

  • 1JIA Y, HARMAN M. An analysis and survey of the development of mutation testing[J]. IEEE Transactions on Software Engineering, 2011, 37(5):649-678.
  • 2SUN C A, XUE F F, LIU H, et al. A path-aware approach to mutant reduction in mutation testing[J]. Information and Software Technology, 2016(3):1-17.
  • 3BRADBURY J S, CORDY J R, DINGEL J. Mutation operators for concurrent Java (J2SE 5.0)[C]//Proceedings of the 2nd Workshop on Mutation Analysis. Piscataway, NJ:IEEE, 2006:11.
  • 4WU L, KAISER G. Empirical study of concurrency mutation operators for Java[EB/OL].[2016-04-21]. http://academiccommons.columbia.edu/item/ac:133611.
  • 5GLIGORIC M, ZHANG L, PEREIRA C, et al. Selective mutation testing for concurrent code[C]//Proceedings of the 2013 International Symposium on Software Testing and Analysis. New York:ACM, 2013:224-234.
  • 6NG N, YOSHIDA N. Static deadlock detection for concurrent go by global session graph synthesis[C]//Proceedings of the 25th International Conference on Compiler Construction. New York:ACM, 2016:174-184.
  • 7ZENG R, SUN Z, LIU S, et al. A method for improving the precision and coverage of atomicity violation predictions[C]//Proceedings of the 21st International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Berlin:Springer, 2015:116-130.
  • 8KAHLON V, SANKARANARAYANAN S, GUPTA A. Static analysis for concurrent programs with applications to data race detection[J]. International Journal on Software Tools for Technology Transfer, 2013, 15(4):321-336.
  • 9DI P, SUI Y. Accelerating dynamic data race detection using static thread interference analysis[C]//Proceedings of the 7th International Workshop on Programming Models and Applications for Multicores and Manycores. New York:ACM, 2016:88-99.
  • 10OTTO F, MOSCHNY T. Finding synchronization defects in Java programs:extended static analyses and code patterns[C]//Proceedings of the 1st International Workshop on Multicore Software Engineering. New York:ACM, 2008:41-46.

同被引文献14

引证文献4

二级引证文献9

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部