Mutation Operators for Concurrent Java ( J 2 SE 5 . 0 ) 1

Mutation Operators for Concurrent Java ( J 2 SE 5 . 0 ) 1
复制标题

并发 Java 的变异运算符 (J 2 SE 5 . 0 ) 1

DOI:
--
复制
发表时间:
2006
期刊:
影响因子:
--
通讯作者:
J. Dingel
J. Dingel
中科院分区:
--
文献类型:
--
作者:
Jeremy S. Bradbury;J. Cordy;J. Dingel

文献摘要

被引文献

相似文献

与以前的版本相比,Java的当前版本(J2SE 5.0)提供了高级别的并发支持。例如,使用J2SE 5.0的程序员现在可以使用显式锁、信号量、屏障、锁存器或交换器来实现并发线程之间的同步。此外,内置的并发数据结构(如哈希映射和队列)、内置的线程池和原子变量都由程序员处理。我们感兴趣的是使用变异分析来评估,比较和改进并发Java程序的质量保证技术。此外,我们认为,目前的一套方法突变运营商和类运营商在文献中提出的不足以评估并发Java源代码,因为大多数运营商不直接变异负责同步的部分代码。在本文中,我们将概述J2SE 5.0中的并发构造和一组新的并发变异操作符。我们将通过使用现有的并发错误模式分类法对操作符进行分类来证明这些操作符的合理性。分类法中的大多数错误模式已被用于对并发Java应用程序的基准测试中的真实的错误进行分类。
The current version of Java (J2SE 5.0) provides a high level of support for concurreny in comparison to previous versions. For example, programmers using J2SE 5.0 can now achieve synchronization between concurrent threads using explicit locks, semaphores, barriers, latches, or exchangers. Furthermore, built-in concurrent data structures such as hash maps and queues, built-in thread pools, and atomic variables are all at the programmer’s disposal. We are interested in using mutation analysis to evaluate, compare and improve quality assurance techniques for concurrent Java programs. Furthermore, we believe that the current set of method mutation operators and class operators proposed in the literature are insufficient to evaluate concurrent Java source code because the majority of operators do not directly mutate the portions of code responsible for synchronization. In this paper we will provide an overview of concurrency constructs in J2SE 5.0 and a new set of concurrent mutation operators. We will justify the operators by categorizing them with an existing bug pattern taxonomy for concurrency. Most of the bug patterns in the taxonomy have been used to classify real bugs in a benchmark of concurrent Java applications.