Reachability testing of concurrent programs | IEEE Journals & Magazine | IEEE Xplore

Reachability testing of concurrent programs


Abstract:

One approach to testing concurrent programs, called reachability testing, generates synchronization sequences automatically and on-the-fly, without constructing any stati...Show More

Abstract:

One approach to testing concurrent programs, called reachability testing, generates synchronization sequences automatically and on-the-fly, without constructing any static models. In this paper, we present a general execution model for concurrent programs that allows reachability testing to be applied to several commonly used synchronization constructs. We also present a new method for performing reachability testing. This new method guarantees that every partially ordered synchronization sequence will be exercised exactly once without having to save any sequences that have already been exercised. We describe a prototype reachability testing tool called RichTest and report some empirical results, including a comparison between RichTest and a partial order reduction-based tool called VeriSoft. RichTest performed significantly better for the programs in our study
Published in: IEEE Transactions on Software Engineering ( Volume: 32, Issue: 6, June 2006)
Page(s): 382 - 403
Date of Publication: 05 July 2006

ISSN Information:

Citations are not available for this document.

1 Introduction

A concurrent program contains two or more threads that execute concurrently and work together to perform some task. Using multiple threads, a.k.a. multithreading, can increase computational efficiency. For instance, while one thread is waiting for user input, another thread can perform computational tasks in the background. In addition, many problem domains are, by nature, concurrent and can be solved more naturally by creating multiple threads. As an example, a Web server typically creates separate threads to service incoming client requests. Some languages, such as Java and Ada, provide built-in support for concurrent programming. The POSIX Pthreads library can be used to write concurrent programs in other languages such as C and C++.

Cites in Papers - |

Cites in Papers - IEEE (21)

Select All
1.
Dhriti Khanna, Subodh Sharma, Rahul Purandare, "Verifying Exception-Handling Code in Concurrent Libraries", 2023 30th Asia-Pacific Software Engineering Conference (APSEC), pp.405-414, 2023.
2.
Minxue Pan, Shouyu Chen, Yu Pei, Tian Zhang, Xuandong Li, "Easy Modelling and Verification of Unpredictable and Preemptive Interrupt-Driven Systems", 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE), pp.212-222, 2019.
3.
Xiaofang Qi, Huayang Zhou, "A Splitting Strategy for Testing Concurrent Programs", 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER), pp.388-398, 2019.
4.
Jing Xu, Yu Lei, Richard Carver, "Using Delta Debugging to Minimize Stress Tests for Concurrent Data Structures", 2017 IEEE International Conference on Software Testing, Verification and Validation (ICST), pp.35-46, 2017.
5.
Sara Abbaspour Asadollah, Hans Hansson, Daniel Sundmark, Sigrid Eldh, "Towards Classification of Concurrency Bugs Based on Observable Properties", 2015 IEEE/ACM 1st International Workshop on Complex Faults and Failures in Large Software Systems (COUFLESS), pp.41-47, 2015.
6.
Anneliese Andrews, Mahmoud Abdelgawad, Ahmed Gario, "Towards world model-based test generation in autonomous systems", 2015 3rd International Conference on Model-Driven Engineering and Software Development (MODELSWARD), pp.1-12, 2015.
7.
Luo Hai-Ying, Wang Zheng, "Optimization Design of Wireless Routing in Embedded Condition", 2014 Fifth International Conference on Intelligent Systems Design and Engineering Applications, pp.693-697, 2014.
8.
Tian Tian, Dunwei Gong, "Evolutionary Generation Approach of Test Data for Multiple Paths Coverage of Message-Passing Parallel Programs", Chinese Journal of Electronics, vol.23, no.2, pp.291-296, 2014.
9.
Maria Christakis, Alkis Gotovos, Konstantinos Sagonas, "Systematic Testing for Detecting Concurrency Errors in Erlang Programs", 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation, pp.154-163, 2013.
10.
Shan Lu, Soyeon Park, Yuanyuan Zhou, "Finding Atomicity-Violation Bugs through Unserializable Interleaving Testing", IEEE Transactions on Software Engineering, vol.38, no.4, pp.844-860, 2012.
11.
Fevzi Belli, Andre Takeshi Endo, Michael Linschulte, Adenilso Simao, "Model-based testing of web service compositions", Proceedings of 2011 IEEE 6th International Symposium on Service Oriented System (SOSE), pp.181-192, 2011.
12.
Z. H. Zhang, T. Fei, X. D. Chai, "A framework for parallel simulation application performance evaluation and optimization", 2011 International Conference on Multimedia Technology, pp.5692-5695, 2011.
13.
Ahyoung Sung, Witawas Srisa-an, Gregg Rothermel, Tingting Yu, "Testing Inter-layer and Inter-task Interactions in RTES Applications", 2010 Asia Pacific Software Engineering Conference, pp.260-269, 2010.
14.
Richard H. Carver, Jeff Lei, "A Stateful Approach to Testing Monitors in Multithreaded Programs", 2010 IEEE 12th International Symposium on High Assurance Systems Engineering, pp.54-63, 2010.
15.
Yangfan Zhou, Xinyu Chen, Michael R. Lyu, Jiangchuan Liu, "Sentomist: Unveiling Transient Sensor Network Bugs via Symptom Mining", 2010 IEEE 30th International Conference on Distributed Computing Systems, pp.784-794, 2010.
16.
Xiaoan Bao, Na Zhang, Zuohua Ding, "Test Case Generation of Concurrent Programs Based on Event Graph", 2009 Fifth International Joint Conference on INC, IMS and IDC, pp.143-149, 2009.
17.
Yan Chen, Yann-Hang Lee, Xiaofeng Xu, W. Eric Wong, Donghui Guo, "A Genetic Algorithm Based Approach for Event Synchronization Analysis in Real-Time Embedded Systems", 2009 International Conference on Embedded Software and Systems, pp.201-208, 2009.
18.
Yan Chen, Yann-Hang Lee, W.Eric Wong, Donghui Guo, "A race condition graph for concurrent program behavior", 2008 3rd International Conference on Intelligent System and Knowledge Engineering, vol.1, pp.662-667, 2008.
19.
Supaporn Kansomkeat, Jeff Offutt, Aynur Abdurazik, Andrea Baldini, "A Comparative Evaluation of Tests Generated from Different UML Diagrams", 2008 Ninth ACIS International Conference on Software Engineering, Artificial Intelligence, Networking, and Parallel/Distributed Computing, pp.867-872, 2008.
20.
Fangli Pu, Hai-Yin Xu, "A Feasible Strategy for Reachability Testing of Internet-Based Concurrent Programs", 2008 IEEE International Conference on Networking, Sensing and Control, pp.1559-1564, 2008.
21.
Li Wang, Zhi-Tang Li, Jie Ma, Yang-Ming Ma, Ai-Fang Zhang, "Automatic attack plan recognition from intrusion alerts", Eighth ACIS International Conference on Software Engineering, Artificial Intelligence, Networking, and Parallel/Distributed Computing (SNPD 2007), vol.3, pp.1170-1175, 2007.

Cites in Papers - Other Publishers (46)

1.
Germán Vidal, "Computing Race Variants in Message-Passing Concurrent Programming with Selective Receives", Formal Techniques for Distributed Objects, Components, and Systems, vol.13273, pp.188, 2022.
2.
Juan José González-Abril, Germán Vidal, "Prefix-Based Tracing in Message-Passing Concurrency", Logic-Based Program Synthesis and Transformation, vol.13290, pp.157, 2022.
3.
Dunwei Gong, Feng Pan, Tian Tian, Su Yang, Fanlin Meng, "A feedback-directed method of evolutionary test data generation for parallel programs", Information and Software Technology, vol.124, pp.106318, 2020.
4.
Vijay K. Garg, Rohan Garg, "Parallel algorithms for predicate detection", Proceedings of the 20th International Conference on Distributed Computing and Networking, pp.51, 2019.
5.
Xiaofang Qi, Yueran Li, "Parallel Reachability Testing Based on Hadoop MapReduce", Software Analysis, Testing, and Evolution, vol.11293, pp.173, 2018.
6.
Silvana M. Melo, Jeffrey C. Carver, Paulo S.L. Souza, Simone R.S. Souza, "Empirical Research on Concurrent Software Testing: A Systematic Mapping Study", Information and Software Technology, 2018.
7.
Silvana Morita Melo, Simone do Rocio Senger de Souza, Felipe Santos Sarmanho, Paulo Sergio Lopes de Souza, "Contributions for the structural testing of multithreaded programs: coverage criteria, testing tool, and experimental evaluation", Software Quality Journal, vol.26, no.3, pp.921, 2018.
8.
Parosh Aziz Abdulla, Stavros Aronis, Bengt Jonsson, Konstantinos Sagonas, "Source Sets", Journal of the ACM, vol.64, no.4, pp.1, 2017.
9.
R. Carver, Yu Lei, "Stateless Techniques for Generating Global and Local Test Oracles for Message-Passing Concurrent Programs", Journal of Systems and Software, 2017.
10.
Vinay Arora, Rajesh Bhatia, Maninder Singh, "A systematic review of approaches for testing concurrent programs", Concurrency and Computation: Practice and Experience, vol.28, no.5, pp.1572, 2016.
11.
Xiaofang Qi, Jun He, Peng Wang, Huayang Zhou, "Variable strength combinatorial testing of concurrent programs", Frontiers of Computer Science, vol.10, no.4, pp.631, 2016.
12.
Yu Kang, Yangfan Zhou, Hui Xu, Michael R. Lyu, "DiagDroid: Android performance diagnosis via anatomizing asynchronous executions", Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp.410, 2016.
13.
Dunwei Gong, Chen Zhang, Tian Tian, Zheng Li, "Reducing scheduling sequences of message-passing parallel programs", Information and Software Technology, 2016.
14.
Parosh Aziz Abdulla, Stavros Aronis, Mohamed Faouzi Atig, Bengt Jonsson, Carl Leonardsson, Konstantinos Sagonas, "Stateless model checking for TSO and PSO", Acta Informatica, 2016.
15.
Bidush Kumar Sahoo, Mitrabinda Ray, "A Comparative Study on Test Case Generation of Concurrent Programs", World Journal of Engineering and Technology, vol.04, no.02, pp.273, 2016.
16.
S. R. S. Souza, P. S. L. Souza, M. A. S. Brito, A. S. Simao, E. J. Zaluska, "Empirical evaluation of a new composite approach to the coverage criteria and reachability testing of concurrent programs", Software Testing, Verification and Reliability, vol.25, no.3, pp.310, 2015.
17.
Yen-Jung Chang, Vijay K. Garg, "A parallel algorithm for global states enumeration in concurrent systems", Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming - PPoPP 2015, pp.140, 2015.
18.
Parosh Aziz Abdulla, Stavros Aronis, Mohamed Faouzi Atig, Bengt Jonsson, Carl Leonardsson, Konstantinos Sagonas, Tools and Algorithms for the Construction and Analysis of Systems, vol.9035, pp.353, 2015.
19.
Yen-Jung Chang, Vijay K. Garg, "A parallel algorithm for global states enumeration in concurrent systems", ACM SIGPLAN Notices, vol.50, no.8, pp.140, 2015.
20.
Silvana M. Melo, Simone R. S. Souza, Rodolfo A. Silva, Paulo S. L. Souza, "Concurrent software testing in practice: a catalog of tools", Proceedings of the 6th International Workshop on Automating Test Case Design, Selection and Evaluation - A-TEST 2015, pp.31, 2015.
21.
Ana Cavalcanti, Marie-Claude Gaudel, "Test selection for traces refinement", Theoretical Computer Science, vol.563, pp.1, 2015.
22.
Fevzi Belli, Andre Takeshi Endo, Michael Linschulte, Adenilso Simao, "A holistic approach to model‐based testing of Web service compositions", Software: Practice and Experience, vol.44, no.2, pp.201, 2014.
23.
Gwan-Hwan Hwang, Che-Sheng Lin, Teng-Shuo Lee, Chi Wu-Lee, "A model-free and state-cover testing scheme for semaphore-based and shared-memory concurrent programs", Software Testing, Verification and Reliability, vol.24, no.8, pp.706, 2014.
24.
Paulo S.L. Souza, Simone R.S. Souza, Ed Zaluska, "Structural testing for message-passing concurrent programs: an extended test model", Concurrency and Computation: Practice and Experience, vol.26, no.1, pp.21, 2014.
25.
Parosh Abdulla, Stavros Aronis, Bengt Jonsson, Konstantinos Sagonas, "Optimal dynamic partial order reduction", Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp.373, 2014.
26.
Parosh Abdulla, Stavros Aronis, Bengt Jonsson, Konstantinos Sagonas, "Optimal dynamic partial order reduction", ACM SIGPLAN Notices, vol.49, no.1, pp.373, 2014.
27.
Tingting Yu, Ahyoung Sung, Witawas Srisa-an, Gregg Rothermel, "An approach to testing commercial embedded systems", Journal of Systems and Software, vol.88, pp.207, 2014.
28.
He Li, Jie Luo, Wei Li, "A formal semantics for debugging synchronous message passing-based concurrent programs", Science China Information Sciences, vol.57, no.12, pp.1, 2014.
29.
Che-Sheng Lin, Gwan-Hwan Hwang, "State-cover testing for nondeterministic terminating concurrent programs with an infinite number of synchronization sequences", Science of Computer Programming, vol.78, no.9, pp.1294, 2013.
30.
Richard Carver, Yu Lei, Multicore Software Engineering, Performance, and Tools, vol.8063, pp.85, 2013.
Contact IEEE to Subscribe

References

References is not available for this document.