Framework for testing multi-threaded Java']Java programs

被引:51
|
作者
Edelstein, O [1 ]
Farchi, E [1 ]
Goldin, E [1 ]
Nir, Y [1 ]
Ratsaby, G [1 ]
Ur, S [1 ]
机构
[1] IBM Res Lab, Haifa, Israel
来源
关键词
D O I
10.1002/cpe.654
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Finding bugs due to race conditions in multi-threaded programs is difficult, mainly because there are many possible interleavings, any of which may contain a fault. In this work we present a methodology for testing multi-threaded programs which has minimal impact on the user and is likely to find interleaving bugs. Our method reruns existing tests in order to detect synchronization faults. We find that a single test executed a,number of times in a controlled environment may be as effective in finding synchronization faults as many different tests. A great deal of resources are saved since tests are very expensive to write and maintain. We observe that simply rerunning tests, without ensuring in some way that the interleaving will change, yields almost no benefits. We implement the methodology in our test generation tool-ConTest. ConTest combines the replay algorithm, which is essential for debugging, with our interleaving test generation heuristics. ConTest also contains an instrumentation engine, a coverage analyzer, and a race detector (not finished yet) that enhance bug detection capabilities. The greatest advantage of ConTest, besides finding bugs of course, is its minimal effect on the user. When ConTest is combined into the test harness, the user may not even be aware that ConTest is being used. Copyright (C) 2003 John Wiley Sons, Ltd.
引用
收藏
页码:485 / 499
页数:15
相关论文
共 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] An integrated regression testing framework to multi-threaded Java']Java programs
    Li, Bixin
    Wang, Yancheng
    Yang, LiLi
    [J]. SOFTWARE ENGINEERING TECHNIQUES: DESIGN FOR QUALITY, 2006, 227 : 237 - +
  • [3] MuTT: a Multi-Threaded Tracer for Java']Java Programs
    Liu, Dapeng
    Xu, Shaochun
    [J]. PROCEEDINGS OF THE 8TH IEEE/ACIS INTERNATIONAL CONFERENCE ON COMPUTER AND INFORMATION SCIENCE, 2009, : 949 - +
  • [4] Proposal of a Testing Method Using Similarity of Interleaving for Java']Java Multi-threaded Programs
    Katayama, Tetsuro
    Kitano, Shoichiro
    Kita, Yoshihiro
    Yamaba, Hisaaki
    Aburada, Kentaro
    Okazaki, Naonobu
    [J]. JOURNAL OF ROBOTICS NETWORKING AND ARTIFICIAL LIFE, 2015, 1 (04): : 299 - 302
  • [5] Proposal of a Testing Method Using Similarity of Interleaving for Java']Java Multi-threaded Programs
    Kitano, Shoichiro
    Katayama, Tetsuro
    Kita, Yoshihiro
    Yamaba, Hisaaki
    Aburada, Kentaro
    Okazaki, Naonobu
    [J]. PROCEEDINGS OF INTERNATIONAL CONFERENCE ON ARTIFICIAL LIFE AND ROBOTICS (ICAROB2015), 2015, : 380 - 383
  • [6] Model-checking multi-threaded distributed Java']Java programs
    Stoller, SD
    [J]. SPIN MODEL CHECKING AND SOFTWARE VERIFICATON, 2000, 1885 : 224 - 244
  • [7] A framework for advanced process control and portable multi-threaded implementation in Java']Java
    Jokinen, PA
    [J]. ADVANCES IN PROCESS CONTROL 5, 1998, : 79 - 86
  • [8] A scalable architecture for multi-threaded JAVA']JAVA applications
    Mrva, M
    Buchenrieder, K
    Kress, R
    [J]. DESIGN, AUTOMATION AND TEST IN EUROPE, PROCEEDINGS, 1998, : 868 - 874
  • [9] Safe locking for multi-threaded Java']Java with exceptions
    Johnsen, Einar Broch
    Thi Mai Thuong Tran
    Owe, Olaf
    Steffen, Martin
    [J]. JOURNAL OF LOGIC AND ALGEBRAIC PROGRAMMING, 2012, 81 (03): : 257 - 283
  • [10] Verifying a compiler optimization for multi-threaded Java']Java
    Reus, B
    Knapp, A
    Cenciarelli, P
    Wirsing, M
    [J]. RECENT TRENDS IN ALGEBRAIC DEVELOPMENT TECHNIQUES, 1998, 1376 : 402 - 417