Intrathread Method Orders Based Adaptive Testing of Concurrent Objects

Published: 01 Jan 2024, Last Modified: 27 Sept 2024TASE 2024EveryoneRevisionsBibTeXCC BY-SA 4.0
Abstract: Concurrent data structures or classes are designed to provide secure access and simultaneous updates by multiple threads to shared objects in a concurrent environment, with the goal of enhancing parallelism and throughput. However, testing concurrent data structures poses significant challenges due to the potential explosions of concurrent test spaces, the variety of programming vulnerabilities, and the inherent nondeterminism of concurrent test executions. In this paper, we propose an Intrathread Method Orders based Adaptive Concurrency Testing (IMOACT) framework for testing concurrent data structures. IMOACT can capture diverse behaviors of interthread method pairs through characterizing concurrent execution contexts with intrathread method orders. Moreover, IMOACT can adaptively optimize concurrent test executions by generating scheduling sequences based on key scheduling points visited so far, streamlining test generation and execution organically across multiple tests. Experimental case studies with typical C/C++ concurrent data structures demonstrate that IMOACT outperforms baseline approaches. On average, IMOACT promotes the effectiveness of detecting concurrency bugs by 65%, and achieves a speedup of 2.43\(\times \) compared to the underlying state-of-the-art concurrency testing approach.
Loading