首页> 外文期刊>Software Testing, Verification and Reliability >Statically driven generation of concurrent tests for thread-safe classes
【24h】

Statically driven generation of concurrent tests for thread-safe classes

机译:静态驱动的线程安全类同时测试

获取原文
获取原文并翻译 | 示例

摘要

Concurrency testing is an important activity to expose concurrency faults in thread-safe classes. A concurrent test for a thread-safe class is a set of method call sequences that exercise the public interface of the class from multiple threads. Automatically generating fault-revealing concurrent tests within an affordable time budget is difficult due to the huge search space of possible concurrent tests. In this paper, we present DepCon(+), a novel approach that reduces the search space of concurrent tests by leveraging statically computed dependencies among public methods. DepCon(+) exploits the intuition that concurrent tests can expose thread-safety violations that manifest exceptions or deadlocks, only if they exercise some specific method dependencies. DepCon(+) provides an efficient way to identify such dependencies by statically analysing the code and relies on the computed dependencies to steer the test generation towards those concurrent tests that exhibit the computed dependencies. We developed a prototype DepCon(+) implementation for Java and evaluated the approach on 19 known concurrency faults of thread-safe classes that lead to thread-safety violations of either exception or deadlock type. The results presented in this paper show that DepCon(+) is more effective than state-of-the-art approaches in exposing the concurrency faults. The search space pruning of DepCon(+) dramatically reduces the search space of possible concurrent tests, without missing any thread-safety violations.
机译:并发测试是在线程安全类中公开并发故障的重要活动。线程安全类的并发测试是一组方法调用序列,其锻炼来自多个线程的类的公共接口。由于可能的并发测试的巨大搜索空间,自动在经济实惠的时间预算中自动产生故障显示的并发测试。在本文中,我们呈现DeaCon(+),这是一种新的方法,它通过利用公共方法之间的静态计算依赖性来减少并发测试的搜索空间。 Depcon(+)利用并发测试可以暴露出显示出明显的例外或死锁的线程安全违规的直觉,只有它们锻炼某些特定的方法依赖性。 Depcon(+)提供了一种有效的方法来识别这些依赖性,通过静态分析代码并依赖于计算的依赖项来转向测试生成,以展示所计算的依赖性的并发测试。我们为Java开发了一个原型Depcon(+)实现,并评估了19个关于线程安全类的19个已知的并发故障的方法,导致线程安全违反异常或死锁类型。本文提出的结果表明,除了暴露并发故障的最新方法,Depcon(+)更有效。 Depcon(+)的搜索空间灌注显着减少了可能的并发测试的搜索空间,而不会缺少任何线程安全违规。

著录项

获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号