Advertisement

Parallel Reachability Testing Based on Hadoop MapReduce

  • Xiaofang QiEmail author
  • Yueran Li
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11293)

Abstract

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.

Keywords

Reachability testing Hadoop MapReduce Software testing Concurrent programming 

Notes

Acknowledgements

This work is supported by the National Science Foundation of China under Grant No. 61472076 and No. 61472077.

References

  1. 1.
    Burns, A., Wellings, A.: Real-Time Systems and Programming Languages, 3rd edn. Addison Wesley Longman, Boston (2001)zbMATHGoogle Scholar
  2. 2.
    Edelstein, O., Farchi, E., et al.: Multithread Java program test generation. J. IBM Syst. 41(1), 111–125 (2002)CrossRefGoogle Scholar
  3. 3.
    Taylor, R.N., Levine, D.L., Kelly, C.D.: Structural testing of concurrent programs. IEEE Trans. Softw. Eng. 18(3), 206–214 (1992)CrossRefGoogle Scholar
  4. 4.
    Lei, Y., Carver, R.H.: Reachability testing of concurrent programs. IEEE Trans. Softw. Eng. 32(6), 382–403 (2006)CrossRefGoogle Scholar
  5. 5.
    Carver, R.H., Lei, Y.: Distributed reachability testing of concurrent programs. Concurrency Comput.: Practice Exp. 22(18), 2445–2466 (2010)CrossRefGoogle Scholar
  6. 6.
    Apache Hadoop. http://hadoop.apache.org/. Accessed 28 June 2018
  7. 7.
    Li, R., Hu, H., et al.: MapReduce parallel programming model: a state-of-the-art survey. Int. J. Parallel Program. 44(4), 832–866 (2016)CrossRefGoogle Scholar
  8. 8.
    Amazon Elastic Compute Cloud. http://aws.amazon.com/ec2/. Accessed 28 June 2018
  9. 9.
    Carver, R.H., Lei, Y.: A general model for reachability testing of concurrent programs. In: Davies, J., Schulte, W., Barnett, M. (eds.) ICFEM 2004. LNCS, vol. 3308, pp. 76–98. Springer, Heidelberg (2004).  https://doi.org/10.1007/978-3-540-30482-1_14CrossRefGoogle Scholar
  10. 10.
    White, T.: Hadoop: The Definitive Guide, 3rd edn. O’Reilly Media, Sebastopol (2012)Google Scholar
  11. 11.
    Carver, R.H., Tai, K.C.: Modern Multithreading. Wiley, New Jersey (2005)CrossRefGoogle Scholar
  12. 12.
    Edelstein, Y., Havelund, K., et al.: Towards a multi-threaded programs. Concurrency Comput.: Practice Exp. 19(3), 267–279 (2007)CrossRefGoogle Scholar
  13. 13.
    Lei, Y., Carver, R.H., Kacker, R., et al.: A combinatorial testing strategy for concurrent programs. Softw. Test. Verif. Reliab. 17(4), 207–225 (2007)CrossRefGoogle Scholar
  14. 14.
    Qi, X., He, J., et al.: Variable strength combinatorial testing of concurrent programs. Front. Comput. Sci. 10(4), 631–643 (2016)CrossRefGoogle Scholar
  15. 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. 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. 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

Copyright information

© Springer Nature Switzerland AG 2018

Authors and Affiliations

  1. 1.School of Computer Science and EngineeringSoutheast UniversityNanjingChina

Personalised recommendations