Concurrency testing using symbolic path finder

 
 
 
  • Abstract
  • Keywords
  • References
  • PDF
  • Abstract


    Concurrent programs have specific features such as italic communication, synchronization and nondeterministic behavior that make the testing activity complex. The objective is to find various types of concurrent defects. In this paper, we have used a model checking tool called Symbolic Path Finder (SPF) which is the upgradation of Java Path Finder (JPF) for concurrent testing. SPF is used for generating the test cases to check concurrent defects such as deadlock, race condition etc. SPF generates symbolic execution tree of the given code which is used as an input for test case generation. The execution is done for finding the test cases in concurrent program where number of threads is operating together with the concurrent defects. The test cases show the type of concurrent defects in the respective line number of the source code.

     

     

  • Keywords


    Coverage Criteria; Java Path Finder; Model Checker; Symbolic Execution; Symbolic Path Finder.

  • References


      [1] Asadollah, Sara Abbaspour, Hans Hansson, Daniel Sundmark, and Sigrid Eldh., “Towards classification of concurrency bugs based on observable properties”, (2015) In Complex Faults and Failures in Large Software Systems (COUFLESS), IEEE/ACM 1st International Workshop on, pp. 41-47, IEEE.

      [2] Melo, Silvana M., Paulo SL Souza, and Simone RS Souza., “Towards an empirical study design for concurrent software testing”, (2016) In Software Engineering for High Performance Computing in Computational Science and Engineering (SE-HPCCSE), Fourth International Workshop on, pp. 49-49. IEEE.

      [3] Choudhary, Ankit, Shan Lu, and Michael Pradel., “Efficient detection of thread safety violations via coverage-guided generation of concurrent tests”, (2017) In Proceedings of the 39th International Conference on Software Engineering, pp. 266-277. IEEE Press.

      [4] Yu, Tingting, Wei Wen, Xue Han, and Jane Huffman Hayes., Predicting Testability of Concurrent Programs, (2016) In Software Testing, Verification and Validation (ICST), IEEE International Conference on, pp. 168-179. IEEE.

      [5] Chen, F., Rosu, G., “Parametric and sliced causality”, (2007) In: Computer Aided Verification, Springer, pp. 240–253, LNCS 4590.

      [6] Serbanuta, T.F., Chen, F., Rosu, G., “Maximal causal models for multithreaded systems”, (2008) Technical Report UIUCDCS-R-2008-3017, University of Illinois at Urbana-Champaign.

      [7] Bianchi, Francesco, Alessandro Margara, and Mauro Pezze., “A Survey of Recent Trends in Testing Concurrent Software Systems”, (2017) IEEE Transactions on Software Engineering.

      [8] Melo, Silvana M., Paulo SL Souza, and Simone RS Souza., “Towards an empirical study design for concurrent software testing”, (2016) In Software Engineering for High Performance Computing in Computational Science and Engineering (SE-HPCCSE), Fourth International Workshop on, pp. 49-49. IEEE.

      [9] Guo, Shengjian, Markus Kusano, and Chao Wang., “Conc-iSE: Incremental symbolic execution of concurrent software”, (2016) In Automated Software Engineering (ASE), 31st IEEE/ACM International Conference on, pp. 531-542. IEEE.

      [10] Lahiri, S., Qadeer, S., “Back to the future: revisiting precise program verification using SMT solvers”, (2008) In: Principles of Programming Languages, ACM, pp. 171–182.

      [11] Dutertre, B., de Moura, L., “A fast linear-arithmetic solver for dpll(t)”, (2006) In: Computer Aided Verification, Springer, pp. 81–94, LNCS 4144.

      [12] Metzler, Patrick, Habib Saissi, Péter Bokor, and Neeraj Suri., “Quick verification of concurrent programs by iteratively relaxed scheduling”, (2017) In Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering, pp. 776-781. IEEE Press.

      [13] Wang, C., Yang, Z., Kahlon, V., Gupta, A., “Peephole partial order reduction”, (2008) In: Tools and Algorithms for Construction and Analysis of Systems, Springer, pp. 382–396 LNCS 4963.

      [14] Terragni, Valerio, and Shing-Chi Cheung., “Coverage-driven test code generation for concurrent classes”, (2016) In Software Engineering (ICSE), IEEE/ACM 38th International Conference on, pp. 1121-1132. IEEE.

      [15] Musuvathi, M., Qadeer, S., “CHESS: Systematic stress testing of concurrent software”, (2006) In: Logic-Based Program Synthesis and Transformation, Springer, pp. 15–16 LNCS 4407.

      [16] Lal, A., Reps, T.W., “Reducing concurrent analysis under a context bound to sequential analysis”, (2008) In: Computer Aided Verification, Springer, pp. 37–53, LNCS 5123.

      [17] Wang, Jie, Wensheng Dou, Yu Gao, Chushu Gao, Feng Qin, Kang Yin, and Jun Wei., “A comprehensive study on real world concurrency bugs in Node. Js”, (2017) In Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering, pp. 520-531. IEEE Press.


 

View

Download

Article ID: 10782
 
DOI: 10.14419/ijet.v7i2.6.10782




Copyright © 2012-2015 Science Publishing Corporation Inc. All rights reserved.