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

Synthesizing Tests for Detecting Atomicity Violations

Samak, Malavika and Ramanathan, Murali Krishna (2015) Synthesizing Tests for Detecting Atomicity Violations. In: 10th Joint Meeting of the European Software Engineering Conference (ESEC) / ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE), AUG 30-SEP 04, 2015, Bergamo, ITALY, pp. 131-142.

[img] PDF
ESEC-FSC_131_2015.pdf - Published Version
Restricted to Registered users only

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

Abstract

Using thread-safe libraries can help programmers avoid the complexities of multithreading. However, designing libraries that guarantee thread-safety can be challenging. Detecting and eliminating atomicity violations when methods in the libraries are invoked concurrently is vital in building reliable client applications that use the libraries. While there are dynamic analyses to detect atomicity violations, these techniques are critically dependent on effective multithreaded tests. Unfortunately, designing such tests is non-trivial. In this paper, we design a novel and scalable approach for synthesizing multithreaded tests that help detect atomicity violations. The input to the approach is the implementation of the library and a sequential seed testsuite that invokes every method in the library with random parameters. We analyze the execution of the sequential tests, generate variable lock dependencies and construct a set of three accesses which when interleaved suitably in a multithreaded execution can cause an atomicity violation. Subsequently, we identify pairs of method invocations that correspond to these accesses and invoke them concurrently from distinct threads with appropriate objects to help expose atomicity violations. We have incorporated these ideas in our tool, named INTRUDER, and applied it on multiple open-source Java multithreaded libraries. INTRUDER is able to synthesize 40 multithreaded tests across nine classes in less than two minutes to detect 79 harmful atomicity violations, including previously unknown violations in thread-safe classes. We also demonstrate the effectiveness of INTRUDER by comparing the results with other approaches designed for synthesizing multithreaded tests.

Item Type: Conference Proceedings
Additional Information: Copy right for this article belongs to the ASSOC COMPUTING MACHINERY, 1515 BROADWAY, NEW YORK, NY 10036-9998 USA
Department/Centre: Division of Electrical Sciences > Computer Science & Automation
Date Deposited: 22 Oct 2016 09:39
Last Modified: 22 Oct 2016 09:39
URI: http://eprints.iisc.ac.in/id/eprint/55061

Actions (login required)

View Item View Item