MAP-Coverage: a Novel Coverage Criterion for Testing Thread-Safe Classes
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 criteria for testing thread-safe classes called MAP (short for memory-access patterns) coverage. 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 experiment results on 20 benchmark programs show that our toolkit outperforms existing testing methods. Lastly, we show empirically that there exists positive correlation between MAP-coverage and the effectiveness of a set of test executions.
Thu 14 Nov
10:40 - 11:00 Talk | MAP-Coverage: a Novel Coverage Criterion for Testing Thread-Safe Classes Zan WangCollege of Intelligence and Computing, Tianjin University, Yingquan ZhaoCollege of Intelligence and Computing, Tianjin University, Shuang LiuCollege of Intelligence and Computing, Tianjin University, Jun SunSingapore Management University, Singapore, Xiang ChenSchool of Information Science and Technology, Nantong University, Huarui LinCollege of Intelligence and Computing, Tianjin University | |||||||||||||||||||||||||||||||||||||||||
11:00 - 11:20 Talk | Automating Non-Blocking Synchronization In Concurrent Data Abstractions Jiange ZhangUniversity of Colorado Colorado Springs, Qing YiUniversity of Colorado Colorado Springs, Damian DechevUniversity of Central Florida Pre-print | |||||||||||||||||||||||||||||||||||||||||
11:20 - 11:40 Talk | Automating CUDA Synchronization via Program Transformation Mingyuan WuSouthern University of Science and Technology, Lingming ZhangThe University of Texas at Dallas, Cong LiuEindhoven University of Technology, Shin Hwei TanSouthern University of Science and Technology, Yuqun ZhangSouthern University of Science and Technology | |||||||||||||||||||||||||||||||||||||||||
11:40 - 12:00 Talk | Efficient Transaction-Based Deterministic Replay for Multi-threaded Programs Ernest Bota PobeeCity University of Hong Kong, Xiupei MeiCity University of Hong Kong, Wing-Kwong ChanCity University of Hong Kong, Hong Kong | |||||||||||||||||||||||||||||||||||||||||
12:00 - 12:10 Demonstration | VeriSmart 2.0: Swarm-Based Bug-Finding for Multi-Threaded Programs with Lazy-CSeq Bernd FischerStellenbosch University, Salvatore La TorreUniversità degli Studi di Salerno, Gennaro ParlatoUniversity of Molise | |||||||||||||||||||||||||||||||||||||||||
12:10 - 12:20 Demonstration | ConVul: An Effective Tool for Detecting Concurrency Vulnerabilities Ruijie MengUniversity of Chinese Academy of Sciences, Biyun ZhuUniversity of Chinese Academy of Sciences, Hao YunUniversity of Chinese Academy of Sciences, Haicheng LiUniversity of Chinese Academy of Sciences, Yan CaiInstitute of Software, Chinese Academy of Sciences, Zijiang YangWestern Michigan University |