Publication Type
Conference Proceeding Article
Version
publishedVersion
Publication Date
11-2019
Abstract
Concurrent programs must be thoroughly tested, as concurrency bugs are notoriously hard to detect. Code coverage criteria can be used to quantify the richness of a test suite (e.g., whether a program has been tested sufficiently) or provide practical guidelines on test case generation (e.g., as objective functions used in program fuzzing engines). Traditional code coverage criteria are, however, designed for sequential programs and thus ineffective for concurrent programs. In this work, we introduce a novel code coverage criterion for testing thread-safe classes called MAP-coverage (short for memory-access patterns). The motivation is that concurrency bugs are often correlated with certain memory-access patterns, and thus it is desirable to comprehensively cover all memory-access patterns. Furthermore, we propose a testing method for maximizing MAP-coverage. Our method has been implemented as a self-contained toolkit, and the experimental results on 20 benchmark programs show that our toolkit outperforms existing testing methods. Lastly, we show empirically that there exists positive correlation between MAPcoverage and the effectiveness of a set of test executions.
Discipline
Software Engineering
Research Areas
Software and Cyber-Physical Systems
Publication
Proceedings of the 34th IEEE/ACM International Conference on Automated Software Engineering (ASE 2019), San Diego, California, United States, November 10-15
First Page
722
Last Page
734
Identifier
10.1109/ASE.2019.00073
City or Country
San Diego, California, United States
Citation
WANG, Zan; ZHAO, Yingquan; LIU, Shuang; SUN, Jun; CHEN, Xiang; and LIN, Huarui.
MAP-Coverage: A novel coverage criterion for testing thread-safe classes. (2019). Proceedings of the 34th IEEE/ACM International Conference on Automated Software Engineering (ASE 2019), San Diego, California, United States, November 10-15. 722-734.
Available at: https://ink.library.smu.edu.sg/sis_research/4964
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.
Additional URL
https://doi.org/10.1109/ASE.2019.00073