首页> 外文会议>Hardware and Software, Verification and Testing; Lecture Notes in Computer Science; 4383 >A Race-Detection and Flipping Algorithm for Automated Testing of Multi-threaded Programs
【24h】

A Race-Detection and Flipping Algorithm for Automated Testing of Multi-threaded Programs

机译:一种用于多线程程序自动测试的种族检测和翻转算法

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

摘要

Testing concurrent programs that accept data inputs is notoriously hard because, besides the large number of possible data inputs, nondeterminism results in an exponentially large number of interleavings of concurrent events. In order to efficiently test shared-memory multithreaded programs, we develop an algorithm based on race-detection and flipping and illustrate how it can be combined with concolic execution (a simultaneous symbolic and concrete execution method) to test multi-threaded programs with data inputs. The goal of our algorithm is to minimize redundant executions while ensuring that all reachable statements in a program are executed. To achieve this, our algorithm explores all distinct causal structures of a multi-threaded program (i.e., the partial order among events generated during an execution). Because our algorithm is based on race-detection, it enables us to report potential data races and deadlocks. We have implemented our algorithm in a tool called jCUTE. We describe the results of applying jCUTE to real-world multi-threaded Java applications and libraries. In particular, we discovered several undocumented potential concurrency-related bugs in the widely used Java collection framework distributed with the Sun Microsystems' JDK 1.4.
机译:众所周知,测试接受数据输入的并发程序非常困难,因为除了大量可能的数据输入外,不确定性还会导致并发事件的交织成指数级增长。为了有效地测试共享内存的多线程程序,我们开发了一种基于竞争检测和翻转的算法,并说明了如何将其与主观执行(同时执行符号和具体执行方法)结合使用,以测试具有数据输入的多线程程序。我们算法的目标是最大程度地减少冗余执行,同时确保执行程序中所有可访问的语句。为了实现这一点,我们的算法探索了多线程程序的所有不同因果结构(即执行过程中产生的事件之间的部分顺序)。因为我们的算法基于竞争检测,所以它使我们能够报告潜在的数据竞争和死锁。我们已经在名为jCUTE的工具中实现了算法。我们描述了将jCUTE应用于实际的多线程Java应用程序和库的结果。特别是,我们在随Sun Microsystems的JDK 1.4分发的,广泛使用的Java收集框架中发现了一些未记录的,潜在的与并发相关的错误。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号