Parallel Reachability Testing Based on Hadoop MapReduce
Reachability testing is an important approach to testing concurrent programs. It generates and executes all the possible sequences of a concurrent program automatically with a given input while not saving any sequences that have already been executed. However, for a large and complex concurrent program, the number of synchronization sequences that are exercised is too large. It will take too long time to perform reachability testing, which limits its application. In this paper, we propose a parallel reachability testing approach based on Hadoop MapReduce called PRT, aiming to improve its performance. PRT adopts the framework of Hadoop MapReduce with a heuristic strategy to realize dynamic loading balance. We present the algorithms used in PRT, and reports the results of five concurrent Java programs that were conducted to evaluate the speed-up with respect to the sequential execution of reachability testing. Experimental results demonstrate that our PRT is an effective approach to parallelizing reachability testing.
KeywordsReachability testing Hadoop MapReduce Software testing Concurrent programming
This work is supported by the National Science Foundation of China under Grant No. 61472076 and No. 61472077.
- 6.Apache Hadoop. http://hadoop.apache.org/. Accessed 28 June 2018
- 8.Amazon Elastic Compute Cloud. http://aws.amazon.com/ec2/. Accessed 28 June 2018
- 10.White, T.: Hadoop: The Definitive Guide, 3rd edn. O’Reilly Media, Sebastopol (2012)Google Scholar
- 15.Souza, S.R.S., Souza, P.S.L., et al.: Using coverage and reachability testing to improve concurrent program testing quality. In: 23rd International Conference on Software Engineering and Knowledge Engineering (SEKE), pp. 207–212. Knowledge Systems Institute, Miami, U.S.A. (2011)Google Scholar
- 16.Geronimo, D., Ferrucci, F., Murolo, A., et al.: A parallel genetic algorithm based on hadoop mapreduce for the automatic generation of junit test suites. In: 5th IEEE International Conference on Software Testing, Verification and Validation (ICST), pp. 785–793. IEEE Computer Society, Montreal Canada (2012)Google Scholar
- 17.Parveen, T., Tilley, S., Daley, N., et al.: Towards a distributed execution framework for JUnit test cases. In: 25th IEEE International Conference on Software Maintenance (ICSM), pp. 425–428. IEEE Computer Society, Alberta (2009)Google Scholar