A race-detection and flipping algorithm for automated testing of multi-threaded programs

被引:0
|
作者
Sen, Koushik [1 ]
Agha, Gul [2 ]
机构
[1] Univ Calif Berkeley, Berkeley, CA 94720 USA
[2] Univ Illinois, Urbana, IL USA
关键词
D O I
暂无
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Testing concurrent programs that accept data inputs is notoriously hard because, besides the large number of possible data inputs, nondeterminism results in an exponentially large number of interleavings of concurrent events. In order to efficiently test shared-memory multi-threaded programs, we develop an algorithm based on race-detection and flipping and illustrate how it can be combined with concolic execution (a simultaneous symbolic and concrete execution method) to test multi-threaded programs with data inputs. The goal of our algorithm is to minimize redundant executions while ensuring that all reachable statements in a program are executed. To achieve this, our algorithm explores all distinct causal structures of a multi-threaded program (i.e., the partial order among events generated during an execution). Because our algorithm is based on race-detection, it enables us to report potential data races and deadlocks. We have implemented our algorithm in a tool called jCUTE. We describe the results of applying jCUTE to real-world multi-threaded Java applications and libraries. In particular, we discovered several undocumented potential concurrency-related bugs in the widely used Java collection framework distributed with the Sun Microsystems' JDK 1.4.
引用
收藏
页码:166 / +
页数:3
相关论文
共 50 条
  • [1] On testing multi-threaded Java']Java programs
    Gong, Xufang
    Wang, Yanchen
    Zhou, Ying
    Li, Bixin
    [J]. SNPD 2007: EIGHTH ACIS INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, ARTIFICIAL INTELLIGENCE, NETWORKING, AND PARALLEL/DISTRIBUTED COMPUTING, VOL 1, PROCEEDINGS, 2007, : 702 - +
  • [2] Framework for testing multi-threaded Java']Java programs
    Edelstein, O
    Farchi, E
    Goldin, E
    Nir, Y
    Ratsaby, G
    Ur, S
    [J]. CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2003, 15 (3-5): : 485 - 499
  • [3] Data Race Detection and Replay of Multi-threaded Programs Based on Petri Net Unfolding
    Lu F.-M.
    Huang Y.
    Zeng Q.-T.
    Bao Y.-X.
    Tang M.-F.
    [J]. Ruan Jian Xue Bao/Journal of Software, 2023, 34 (08): : 3726 - 3744
  • [4] Input-driven Active Testing of Multi-threaded Programs
    Yue, Han
    Wu, Peng
    Chen, Tsong-Yueh
    Lv, Yi
    [J]. 2015 22ND ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC 2015), 2015, : 246 - 253
  • [5] Towards a framework and a benchmark for testing tools for multi-threaded programs
    Eytani, Yaniv
    Havelund, Klaus
    Stoller, Scott D.
    Ur, Shmuel
    [J]. CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2007, 19 (03): : 267 - 279
  • [6] Testing Multi-Threaded Programs by Transformation to Hoare's CSP
    Murthy, P.V.R.
    Rani, Naveeta
    [J]. MysuruCon 2022 - 2022 IEEE 2nd Mysore Sub Section International Conference, 2022,
  • [7] Security Check for Multi-threaded Programs
    Tri Minh Ngo
    Tuan Van Nguyen
    [J]. 2016 IEEE SIXTH INTERNATIONAL CONFERENCE ON COMMUNICATIONS AND ELECTRONICS (ICCE), 2016, : 465 - 470
  • [8] Plagiarism Detection of Multi-Threaded Programs by Mining Behavioral motifs
    Tian Z.
    Wang N.
    Wang Q.
    Gao C.
    Liu T.
    Zheng Q.
    [J]. Jisuanji Yanjiu yu Fazhan/Computer Research and Development, 2020, 57 (01): : 202 - 213
  • [9] Information Declassification for Multi-Threaded Programs
    Zhu, Hao
    Zhuang, Yi
    Chen, Xiang
    [J]. APPLIED MATHEMATICS & INFORMATION SCIENCES, 2014, 8 (04): : 1911 - 1916
  • [10] A Basis for Verifying Multi-threaded Programs
    Rustan, K.
    Leino, M.
    Mueller, Peter
    [J]. PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS, 2009, 5502 : 378 - 393