Skip to main content

Advertisement

Log in

Test data generation for path coverage of message-passing parallel programs based on co-evolutionary genetic algorithms

  • Published:
Automated Software Engineering Aims and scope Submit manuscript

Abstract

Employing genetic algorithms to generate test data for path coverage has been an important method in software testing. Previous work, however, is suitable mainly for serial programs. Automatic test data generation for path coverage of message-passing parallel programs without non-determinacy is investigated in this study by using co-evolutionary genetic algorithms. This problem is first formulated as a single-objective optimization problem, and then a novel co-evolutionary genetic algorithm is proposed to tackle the formulated optimization problem. This method employs the alternate co-evolution of two kinds of populations to generate test data that meet path coverage. The proposed method is applied to seven parallel programs, and compared with the other three methods. The experimental results show that the proposed method has the best success rate and the least number of evaluated individuals and time consumption.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4

Similar content being viewed by others

References

  • Ahmed, M.A., Hermadi, I.: GA-based multiple paths test data generator. Comput. Oper. Res. 35(10), 3107–3127 (2008)

    Article  Google Scholar 

  • Alba, E., Chicano, F., Ferreira, M., Gomez-Pulido, J.: Finding deadlocks in large concurrent java programs using genetic algorithms. Proceedings of 10th Annual Conference on Genetic and Evolutionary Computation. ACM, pp. 1735–1742 (2008)

  • Arcuri, A., Yao, X.: Coevolving programs and unit tests from their specification. Proceedings of 22nd IEEE/ACM International Conference on Automated Software Engineering. ACM, pp. 397–400 (2007)

  • Arcuri, A., Yao, X.: A novel co-evolutionary approach to automatic software bug fixing. Proceedings of IEEE Congress on Evolutionary Computation, pp. 162–168 (2008)

  • Arcuri, A., Yao, X.: Co-evolutionary automatic programming for software development. Inf. Sci. 259, 412–432 (2014)

    Article  Google Scholar 

  • Arcuri, A., White, D.R., Clark, J., Yao, X.: Multi-Objective Improvement of Software Using Co-evolution and Smart Seeding. Simulated Evolution and Learning, pp. 61–70. Springer, Berlin (2008)

    Google Scholar 

  • Bueno, P., Jino, M.: Automatic test data generation for program path using genetic algorithms. Int. J. Softw. Eng. Knowl. Eng. 12(6), 691–709 (2002)

    Article  Google Scholar 

  • Chen, G.L.: Parallel Computing: Structures, Algorithms, Programming, 1st edn. Higher Education Press, Beijing (2003)

    Google Scholar 

  • Chen, G.L., An, H., Chen, L., Zheng, Q., Shan, J.L.: Parallel Algorithm Practice, pp. 59–60. Higher Education Press, Beijing (2004)

    Google Scholar 

  • Chen, T.Y., Kuo, F.C., Merkel, R.G.: Adaptive random testing: the ART of test case diversity. J. Syst. Softw. 83(1), 60–66 (2010)

    Article  Google Scholar 

  • Ding, Z., Zhang, K., Hu, J.: Test case generation of concurrent programs based on event graph. Proceedings of 23rd International Technical Conference on Circuits/Systems, Computers and Communications, pp. 1117–1120 (2008)

  • Dominguez-Jimenez, J., Estero-Botaro, A., Garcia-Domnguez, A., Medina-Bulo, I.: Evolutionary mutation testing. Inf. Softw. Technol. 53(10), 1108–1123 (2011)

    Article  Google Scholar 

  • Edelstein, O., Farchi, E., Nir, Y., Ratsaby, G., Ur, S.: Multithreaded java program test generation. IBM Syst. J. 41(1), 111–125 (2002)

    Article  Google Scholar 

  • Eytani, Y.: Concurrent Java test generation as a search problem. Electron. Notes Theor. Comput. Sci. 144(4), 57–72 (2006)

    Article  Google Scholar 

  • Ferguson, R., Korel, B.: Generating test data for distributed software using the chaining approach. Inf. Softw. Technol. 38(5), 343–353 (1996)

    Article  Google Scholar 

  • Geist, G.A., Kohl, J.A., Papadopoulos, P.M., Scott, S.L.: Beyond PVM 3.4: what we’ve learned, what’s next, and why. Lect. Notes Comput. Sci. 1332, 116–126 (1997)

    Article  Google Scholar 

  • Godefroid, P., Khurshid, S.: Exploring very large state spaces using genetic algorithms. Int. J. Softw. Tools Technol. Transf. 6(2), 117–127 (2004)

    Article  MATH  Google Scholar 

  • Gong, D.W., Yao, X.J.: Automatic detection of infeasible paths in software testing. IET Softw. 4(5), 361–370 (2010)

    Article  Google Scholar 

  • Gong, D.W., Zhang, Y.: Novel evolutionary generation approach of test data for multiple paths. Acta Electron. Sin. 38(6), 1299–1304 (2010)

    MathSciNet  Google Scholar 

  • Gong, D.W., Zhang, W.Q., Yao, X.J.: Evolutionary generation of test data for many paths coverage based on grouping. J. Syst. Softw. 84(12), 2222–2233 (2011)

    Article  Google Scholar 

  • Gupta, A.: Verifying concurrent programs: tutorial talk. Proceedings of the Formal Methods in Computer-Aided Design, pp. 1–1 (2011)

  • Gupta, N., Mathur, A.P., Soffa, M.L.: Automated test data generation using an iterative relaxation method. ACM SIGSOFT Softw. Eng. Notes 23, 231–244 (1998)

    Article  Google Scholar 

  • Hruba, V., Krena, B., Letko, Z., Ur, S., Vojnar, T.: Testing of Concurrent Programs Using Genetic Algorithms,Search Based Software Engineering. Springer, Berlin (2012)

    Google Scholar 

  • Husband, P., Mill, F.: Simulated co-evolution as the mechanism for emergent planning and scheduling. Proceedings of 4th International Conference on Genetic Algorithms, pp. 264–270 (1991)

  • Katayama, T., Furukawa, Z., Ushijima, K.: A test-case generation method for concurrent programs including task-types. Proceedings of Joint Asia Pacific Software Engineering Conference and International Computer Science Conference, pp. 485–494 (1997)

  • Korel, B.: Automated software test data generation. IEEE Trans. Softw. Eng. 16(8), 870–879 (1990)

    Article  Google Scholar 

  • Krammer, B., Resch, M.: Correctness checking of MPI one-sided communication using Marmot. Lect. Notes Comput. Sci. 4192, 105–114 (2006)

    Article  Google Scholar 

  • Krawczyk, H., Wiszniewski, B.: Classification of Software Defects in Parallel Programs. Technical Report 2, Faculty of Electronics, Technical University of Gdansk, Poland (1994)

  • Krena, B., Letko, Z., Vojnar, T., Ur, S.: A platform for search-based testing of concurrent software. Proceedings of 8th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging, ACM, pp. 48–58 (2010)

  • Lei, Y., Tai, K.C.: Efficient reachability testing of asynchronous message-passing programs. Proceedings of the 8th IEEE international Conference on Engineering of Complex Computer Systems, pp. 34–44. Greenbelt, MD, USA (2002)

  • McMinn, P., Harman, M., Binkley, D., Tonella, P.: The species per path approach to search-based test data generation. Proceedings of International Symposium on Software Testing and Analysis, pp. 13–24. ITCirst, Trento, Italy (2006)

  • Meuleau, N., Lattaud, C.: The artificial evolution of cooperation. Artif. Evol. 1063, 159–180 (1995)

    Article  Google Scholar 

  • Oliveira, A.L., Camilo-Junior, C.G., Vincenzi, A.M.R.: A coevolutionary algorithm to automatic test case selection and mutant in Mutation Testing. Proceedings of IEEE Congress on Evolutionary Computation, pp. 829–836 (2013)

  • Potter, M.A.: The Design and Analysis of a Computational Model of Cooperative Co-evolution. George Mason University, Fairfax (1997)

    Google Scholar 

  • Ren, J., Harman, M., Penta, M.D.: Cooperative co-evolutionary optimization of software project staff assignments and job scheduling. Lect. Notes Comput. Sci. 6956, 127–141 (2011)

    Article  Google Scholar 

  • Sair, M., Otto, S., Steven, H., Walker, D., Araponga, J.: MPI: The Complete Reference. MIT Press, Cambridge, MA, Technical Report (1996)

  • Shan, J.H., Jiang, Y., Sun, P.: Research progress of software testing. Acta Scient. Nat. Univ. Pekin. 41(1), 134–145 (2005)

    Google Scholar 

  • SIR, A Repository of Software-Related Artifacts Meant to Support Rigorous Controlled Experimentation. Available from: http://sir.unl.edu/portal/index.html (2011)

  • SKaMPI: http://liinwww.ira.uka.de/skampi/ (2013)

  • Souza, S.R.S., Souza, P.S.L., Machado, M.C.C.: Using coverage and reachability testing to improve concurrent program testing quality. Proceedings of 23rd International Conference on Software Engineering and Knowledge Engineering, pp. 207–212 (2011)

  • Souza, P.S.L., Souza, S.R.S., Zaluska, E.: Structural testing for message-passing concurrent programs an extended test model. Concurr. Comput. Pract. Exp. 25(18), 149–158 (2013)

    Google Scholar 

  • Souza, S.R.S., Vergilio, S.R., Souza, P.S.L.: Structural testing criteria for message-passing parallel programs. Concurr. Comput. Pract. Exp. 20(16), 1893–1916 (2008)

    Article  Google Scholar 

  • Steenbuck, S., Fraser, G.: Generating unit tests for concurrent classes. Proceedings of 6th International Conference on Software Testing, Verification and Validation (2013)

  • Vakkalanka, S., DeLisi, M., Gopalakrishnan, G., Kirby, R.M., Thakur, R., Gropp, W.: Implementing efficient dynamic formal verification methods for MPI programs. Lect. Notes Comput. Sci. 5205, 248–256 (2008)

    Article  Google Scholar 

  • Vetter, J.S., Supinski, B.R.: Dynamic software testing of MPI applications with umpire. Proceedings of Supercomputing ACM/IEEE Conference, Dallas, Texas, pp. 70–79 (2000)

  • Wang, Z.Y., Liu, C.N.: The application of interval computation in software testing. J. Softw. 9(6), 438–443 (1998)

    Google Scholar 

  • Watkins, A.: The automatic generation of test data using genetic algorithms. Proceedings of 4th Software Quality Conference, pp. 300–309 (1995)

  • Wiegand R. P., Liles W. C., De Jong K. A.: An empirical analysis of collaboration methods in cooperative coevolutionary algorithms. Proceedings of the Genetic and Evolutionary Computation Conference (GECCO), pp. 1235–1245 (2001)

  • Wohlin, C., Runeson, P., HMost, M., Ohlsson, C., Regnell, B., Wesslen, A.: Experimentation in Software Engineering: An Introduction. Kluwer Academic Publishers, Norwell (2000)

    Book  MATH  Google Scholar 

  • Wong, W.E., Lei, Y., Ma, X.: Effective generation of test sequences for structural testing of concurrent programs. Proceedings of 10th IEEE International Conference on Engineering of Complex Computer Systems, p. 539–548 (2005)

  • Xanthakis, S., Ellis, C., Skourlas, C.: Application of genetic algorithms to software testing. Proceedings of 5th International Conference on Software Engineering and Its Applications, pp. 625–636 (1992)

  • Xie, X.Y., Xu, B.W., Shi, L., Nie, C.H.: Genetic test case generation for path-oriented testing. J. Softw. 20(12), 3117–3136 (2009)

    Article  Google Scholar 

  • Yang, R.D., Chung, C.G.: A path analysis approach to concurrent program testing. Inf. Softw. Technol. 34(1), 43–56 (1992)

    Article  MathSciNet  Google Scholar 

  • Yang, C.S.D., Souter, A.L., Pollock, L.L.: All-du-path coverage for parallel programs. ACM SIGSOFT Softw. Eng. Notes 23(2), 153–162 (1998)

    Article  Google Scholar 

Download references

Acknowledgments

This work is jointly supported by National Natural Science Foundation of China with Grant No. 61375067 and 61203304, Natural Science Foundation of Jiangsu Province with Grant No. BK2012566, and Fundamental Research Funds for Central Universities with Grant No. 2012LWB72 and 2012QNA58. Thank to Dr. Edward C. Mignot, Shandong University, for linguistic advice.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Dunwei Gong.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Tian, T., Gong, D. Test data generation for path coverage of message-passing parallel programs based on co-evolutionary genetic algorithms. Autom Softw Eng 23, 469–500 (2016). https://doi.org/10.1007/s10515-014-0173-z

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10515-014-0173-z

Keywords

Navigation