International Journal of Parallel Programming

, Volume 44, Issue 3, pp 644–662

Automatic Generation of Unit Tests for Correlated Variables in Parallel Programs

Article

DOI: 10.1007/s10766-015-0363-8

Cite this article as:
Jannesari, A. & Wolf, F. Int J Parallel Prog (2016) 44: 644. doi:10.1007/s10766-015-0363-8

Abstract

A notorious class of concurrency bugs are race condition related to correlated variables, which make up about 30 % of all non-deadlock concurrency bugs. A solution to prevent this problem is the automatic generation of parallel unit tests. This paper presents an approach to generate parallel unit tests for variable correlations in multithreaded code. We introduce a hybrid approach for identifying correlated variables. Furthermore, we estimate the number of potentially violated correlations for methods executed in parallel. In this way, we are capable of creating unit tests that are suited for race detectors considering correlated variables. We were able to identify more than 85 % of all race conditions on correlated variables in eight applications after applying our parallel unit tests. At the same time, we reduced the number of unnecessary generated unit tests. In comparison to a test generator unaware of variable correlations, redundant unit tests are reduced by up to 50 %, while maintaining the same precision and accuracy in terms of the number of detected races.

Keywords

Unit tests Automatic testing Parallel programming Debugging Race detection Program analysis  Correlated variables 

Copyright information

© Springer Science+Business Media New York 2015

Authors and Affiliations

  1. 1.German Research School for Simulation SciencesAachenGermany
  2. 2.RWTH Aachen UniversityAachenGermany