当前位置: X-MOL 学术Softw. Test. Verif. Reliab. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Statically driven generation of concurrent tests for thread‐safe classes
Software Testing, Verification and Reliability ( IF 1.5 ) Pub Date : 2021-05-04 , DOI: 10.1002/stvr.1774
Valerio Terragni 1 , Mauro Pezzè 2, 3
Affiliation  

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.

中文翻译:

静态驱动的线程安全类并发测试的生成

并发测试是暴露线程安全类中的并发错误的重要活动。线程安全类的并发测试是一组方法调用序列,这些序列调用来自多个线程的类的公共接口。由于可能的并发测试的搜索空间巨大,因此难以在可承受的时间预算内自动生成用于揭示故障的并发测试。在本文中,我们提出了DepCon +,这是一种新颖的方法,可通过利用公共方法之间的静态计算依赖性来减少并发测试的搜索空间。DepCon +利用这样的直觉,即并行测试只有在行使某些特定的方法依赖性时,才可以暴露线程安全违规,这些异常会显示异常或死锁。DepCon +提供了一种通过静态分析代码来识别此类依赖关系的有效方法,并依靠所计算的依赖关系将测试生成引导至那些表现出所计算的依赖关系的并发测试。我们开发了Java的DepCon +原型实现,并评估了19种已知的线程安全类并发错误的方法,这些错误导致异常或死锁类型的线程安全违规。本文显示的结果表明,DepCon +在暴露并发故障方面比最新技术更有效。DepCon +的搜索空间修剪 大大减少了可能进行的并发测试的搜索空间,而不会遗漏任何线程安全违规行为。
更新日期:2021-05-11
down
wechat
bug