ePrints@IIScePrints@IISc Home | About | Browse | Latest Additions | Advanced Search | Contact | Help

Synthesizing Racy Tests

Samak, Malavika and Ramanathan, Murali Krishna and Jagannathan, Suresh (2015) Synthesizing Racy Tests. In: ACM SIGPLAN NOTICES, 50 (6). pp. 175-185.

[img] PDF
ACM_Sig_Not_50-6_175_2015.pdf - Published Version
Restricted to Registered users only

Download (289kB) | Request a copy
Official URL: http://dx.doi.org/10.1145/2737924.2737998


Subtle concurrency errors in multithreaded libraries that arise because of incorrect or inadequate synchronization are often difficult to pinpoint precisely using only static techniques. On the other hand, the effectiveness of dynamic race detectors is critically dependent on multithreaded test suites whose execution can be used to identify and trigger races. Usually, such multithreaded tests need to invoke a specific combination of methods with objects involved in the invocations being shared appropriately to expose a race. Without a priori knowledge of the race, construction of such tests can be challenging. In this paper, we present a lightweight and scalable technique for synthesizing precisely these kinds of tests. Given a multithreaded library and a sequential test suite, we describe a fully automated analysis that examines sequential execution traces, and produces as its output a concurrent client program that drives shared objects via library method calls to states conducive for triggering a race. Experimental results on a variety of well-tested Java libraries yield 101 synthesized multithreaded tests in less than four minutes. Analyzing the execution of these tests using an off-the-shelf race detector reveals 187 harmful races, including several previously unreported ones.

Item Type: Journal Article
Additional Information: Copy right for this article belongs to the ASSOC COMPUTING MACHINERY, 2 PENN PLAZA, STE 701, NEW YORK, NY 10121-0701 USA
Keywords: Design; Reliability; Verification; Race detection; dynamic analysis; concurrency
Department/Centre: Division of Electrical Sciences > Computer Science & Automation
Depositing User: Id for Latest eprints
Date Deposited: 15 Oct 2015 06:39
Last Modified: 15 Oct 2015 06:39
URI: http://eprints.iisc.ac.in/id/eprint/52560

Actions (login required)

View Item View Item