Skip to main content

Advertisement

Log in

Parallel program testing based on critical communication and branch transformation

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

Abstract

Software testing is an efficient way to guarantee the reliability and accuracy of parallel programs. Communication plays a substantial role in parallel program testing. The huge scale of communication within parallel programs poses a great challenge to coverage testing. How to reasonably select the communication to be tested and effectively generate test data to meet the requirements of coverage is a pressing problem. In this paper, a critical communication testing method based on branch transformation is proposed, which can reasonably select part of program communication and generate test data. To be specific, firstly, this paper analyzes the features which easily lead to defects in communication, and then proposes the evaluation method of critical communication based on the above features. Next, we select the critical communication and convert the communication coverage to the coverage of the branch where the communication statement resides. Finally, a method based on genetic algorithm is used to solve the communication coverage problem in different scenarios. The proposed method is applied to the testing of several representative parallel programs. Experimental results show that compared with other methods, this proposed method can effectively reduce the quantity of communication, significantly improve the coverage rate of communication coverage testing and increase the efficiency of test data generation.

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
Fig. 5
Fig. 6

Similar content being viewed by others

Data availability

Data sharing not applicable to this article as no datasets were generated or analysed during the current study.

References

  1. Souza SRS, Vergilio SR, Souza PSL, Simao AS, Hausen AC (2008) Structural testing criteria for message-passing parallel programs. Concurr Comput Pract Exp 20(16):1893–1916. https://doi.org/10.1002/cpe.1297

    Article  Google Scholar 

  2. Diaz SMD, Souza PSL, Souza SRS (2021) Structural testing for communication events into loops of message-passing parallel programs. Concurr Comput Pract Exp 33(18):6082. https://doi.org/10.1002/cpe.6082

    Article  Google Scholar 

  3. Rodrigues DS, Delamaro ME, Corrêa CG, Nunes FLS (2018) Using genetic algorithms in test data generation: a critical systematic mapping. ACM Comput Surv 51(2):1–23. https://doi.org/10.1145/3182659

    Article  Google Scholar 

  4. Derezińska A, Rudnik M (2017) Evaluation of mutant sampling criteria in object-oriented mutation testing. In: 2017 Federated Conference on Computer Science and Information Systems (FedCSIS), pp 1315–1324. https://doi.org/10.15439/2017F375

  5. Zhang C, Tian T, Yang XT, Gong DW (2021) Communication coverage reduction method of parallel programs based on dominant relation. J Comput Appl 41(6):1741–1747. https://doi.org/10.11772/j.issn.1001-9081.2020091369

    Article  Google Scholar 

  6. Sun CA, Fu A, Guo XL, Chen TY (2022) ReMuSSE: a redundant mutant identification technique based on selective symbolic execution. IEEE Trans Reliab 71(1):415–428. https://doi.org/10.1109/TR.2020.3011423

    Article  Google Scholar 

  7. Garg A, Ojdanic M, Degiovanni R, Chekam TT, Papadakis M, Le Traon Y (2023) Cerebro: static subsuming mutant selection. IEEE Trans Software Eng 49(1):24–43. https://doi.org/10.1109/TSE.2022.3140510

    Article  Google Scholar 

  8. Gao JX, Lumetta SS (2018) Loop path reduction by state pruning. In: 2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE), pp 838–843 https://doi.org/10.1145/3238147.3240731

  9. Kaufman SJ, Featherman R, Alvin J, Kurtz B, Ammann P, Just R (2022) Prioritizing mutants to guide mutation testing. In: Proceedings of the 44th International Conference on Software Engineering, pp 1743–1754. Association for Computing Machinery, New York, NY, USA (2022) https://doi.org/10.1145/3510003.3510187

  10. Jammalamadaka K, Parveen N (2022) Equivalent mutant identification using hybrid wavelet convolutional rain optimization. Softw Pract Exp 52(2):576–593. https://doi.org/10.1002/spe.3038

    Article  Google Scholar 

  11. Chin KC, Tsay RS, Wu HI (2020) A heuristic region-based concurrency bug testing approach. In: 2020 IEEE International Conference on Parallel & Distributed Processing with Applications, Big Data & Cloud Computing, Sustainable Computing & Communications, Social Computing & Networking (ISPA/BDCloud/SocialCom/SustainCom), pp 1126–1135 (2020). IEEE

  12. Bosch J, Lvarez C, Jiménez-González D, Martorell X, Ayguadé E (2020) Asynchronous runtime with distributed manager for task-based programming models. Parallel Comput. https://doi.org/10.1016/j.parco.2020.102664

    Article  Google Scholar 

  13. Shen YY, Peng MM, Wang SL, Wu Q (2021) Towards parallelism detection of sequential programs with graph neural network. Futur Gener Comput Syst 125:515–525. https://doi.org/10.1016/j.future.2021.07.001

    Article  Google Scholar 

  14. Wei HM, Gao J, Qing P, Yu K, Fang YF, Li ML (2020) MPIRCDD: a framework for MPI runtime communication deadlock detection. J Comput Sci Technol 35(2):395–411. https://doi.org/10.1007/s11390-020-9701-4

    Article  Google Scholar 

  15. Ouyang K, Si M, Hori A, Chen ZZ, Balaji P (2021) Daps: a dynamic asynchronous progress stealing model for MPI communication. In: 2021 IEEE International Conference on Cluster Computing (CLUSTER), pp 516–527 https://doi.org/10.1109/Cluster48925.2021.00027

  16. Alghamdi A, Alghamdi AM, Eassa FE, Khemakhem MA (2020) ACC_TEST: hybrid testing techniques for mpi-based programs. IEEE Access 8:91488–91500. https://doi.org/10.1109/ACCESS.2020.2994172

    Article  Google Scholar 

  17. Wang Z, Xu C, Agrawal K, Li J (2022) Adaptive scheduling of multiprogrammed dynamic-multithreading applications. J Parallel Distrib Comput 162:76–88. https://doi.org/10.1016/j.jpdc.2022.01.009

    Article  Google Scholar 

  18. Miwa S, Laguna I, Schultz M (2020) PredCom: a predictive approach to collecting approximated communication traces. IEEE Trans Parallel Distrib Syst 32(1):45–58. https://doi.org/10.1109/TPDS.2020.3011121

    Article  Google Scholar 

  19. Esnaashari M, Damia AH (2021) Automation of software test data generation using genetic algorithm and reinforcement learning. Expert Syst Appl 183(5):115446. https://doi.org/10.1016/j.eswa.2021.115446

    Article  Google Scholar 

  20. Sun BC, Wang JX, Gong DW, Tian T (2019) Scheduling sequence selection for generating test data to cover paths of MPI programs. Inf Softw Technol 114:190–203. https://doi.org/10.1016/j.infsof.2019.07.002

    Article  Google Scholar 

  21. Wang W, Wu S, Li Z, Zhao R (2023) Parallel evolutionary test case generation for web applications. Inf Softw Technol 155:107113. https://doi.org/10.1016/j.infsof.2022.107113

    Article  Google Scholar 

  22. Jaffari A, Yoo CJ, Lee J (2020) Automatic test data generation using the activity diagram and search-based technique. Appl Sci 10(10):3397. https://doi.org/10.3390/app10103397

    Article  Google Scholar 

  23. Mustafa S, Mohamad R, Deris S (2020) Optimal path test data generation based on hybrid negative selection algorithm and genetic algorithm. PLoS One. https://doi.org/10.1371/journal.pone.0242812

    Article  Google Scholar 

  24. Wang R, Sato Y, Liu SY (2021) Mutated specification-based test data generation with a genetic algorithm. Mathematics 9(4):331. https://doi.org/10.3390/math9040331

    Article  Google Scholar 

  25. Bansal A, Jain A, Anand A, Annk S (2021) Proposal of iterative genetic algorithm for test suite generation. Int J Inf Syst Modeling Des (IJISMD) 12(1):111–130. https://doi.org/10.4018/IJISMD.2021010106

    Article  Google Scholar 

  26. Sahoo RK, Derbali M, Jerbi H, Thang DV, Kumar PP, Sahoo S (2021) Test case generation from uml-diagrams using genetic algorithm. Cmc Tech Sci Press 67(2):2321–2336. https://doi.org/10.32604/CMC.2021.013014

    Article  Google Scholar 

  27. Block RJ, Sarukkai S, Mehra P (1995) Automated performance prediction of message-passing parallel programs. In: Proceedings of the 1995 ACM/IEEE Conference on Supercomputing, p 31

  28. MPI Forum. https://www.mpi-forum.org/

  29. Ramirez A, Romero JR, Simons C (2018) A systematic review of interaction in search-based software engineering. IEEE Trans Softw Eng 45(8):760–781. https://doi.org/10.1109/TSE.2018.2803055

    Article  Google Scholar 

  30. Rahmanian M, Nassiri R, Mohsenzadeh M, Ravanmehr R (2023) Test case generation for enterprise business services based on enterprise architecture design. J Supercomput 79(2):1877–1907. https://doi.org/10.1007/s11227-022-04742-7

    Article  Google Scholar 

  31. McMinn P (2004) Search-based software test data generation: a survey. Softw Test Verif Reliab 14(2):105–156. https://doi.org/10.1002/stvr.294

    Article  Google Scholar 

  32. Gupta A, Jalote P (2006) An experimental comparison of the effectiveness of control flow based testing approaches on seeded faults. IEEE Trans Softw Eng 15(8):977–993. https://doi.org/10.1007/11691372_24

    Article  Google Scholar 

  33. Wang XJ, Gan LS, Liu SL (2020) Research on intelligence analysis technology of financial industry data based on genetic algorithm. J Supercomput 76:3391–3401. https://doi.org/10.1007/s11227-018-2584-2

    Article  Google Scholar 

  34. Liao MX, Fan ZH (2008) Deadlock detection in basic models of mpi synchronization communication programs. ACTA Electonica Sinica 36(2):402. https://doi.org/10.1109/ROSE.2011.6058539

    Article  Google Scholar 

  35. Gong DW, Yao XJ (2010) Automatic detection of infeasible paths in software testing. IET Softw 4(5):361–370. https://doi.org/10.1049/iet-sen.2009.0092

    Article  Google Scholar 

  36. Fu X, Chen Z, Zhang Y, Huang C, Dong W, Wang J (2015) MPISE: symbolic execution of MPI programs. In: Proceedings of the IEEE 16th International Symposium on High Assurance Systems Engineering (HASE), pp 181–188 https://doi.org/10.1109/HASE.2015.35

  37. Gong DW, Zhang C, Tian T, Li Z (2016) Reducing scheduling sequences of message-passing parallel programs. Inf Softw Technol 80:217–230. https://doi.org/10.1016/j.infsof.2016.09.003

    Article  Google Scholar 

  38. Gong DW, Pan F, Tian T, Yang S, Meng FL (2020) A feedback-directed method of evolutionary test data generation for parallel programs. Inf Softw Technol 124(2):106138. https://doi.org/10.1016/j.infsof.2020.106318

    Article  Google Scholar 

  39. MPI Exercise. https://computing.llnl.gov/tutorials/mpi/

  40. NAS. https://www.nas.nasa.gov/publications/npb.html

  41. CORAL benchmarks. https://asc.llnl.gov/coral-2-benchmarks

  42. Sun BC, Gong DW, Tian T, Yao XJ (2020) Integrating an ensemble surrogate model’s estimation into test data generation. IEEE Trans Softw Eng 48(4):1336–1350. https://doi.org/10.1109/TSE.2020.3019406

    Article  Google Scholar 

  43. Gu H, Zhang J, Chen M, Wei T, Lei L, Xie F (2020) Specification-driven conformance checking for virtual/silicon devices using mutation testing. IEEE Trans Comput 70(3):400–413. https://doi.org/10.1109/TC.2020.2988906

    Article  Google Scholar 

  44. Silva RA, Souza SRS, Souza PSL (2012) Mutation operators for concurrent programs in MPI. In: Proceedings of the Latin American Test Workshop-Latw, pp 1–6

Download references

Funding

This article is jointly supported by Natural Science Foundation of Shandong Province, China with Grant No. ZR2020MF084, National Natural Science Foundation of China with Grant Nos. 61503220 and 61773384.

Author information

Authors and Affiliations

Authors

Contributions

TT contributed significantly to the conception of the study; AW performed the experiment and wrote the manuscript; XY performed the result analyses; DG and TH contributed significantly to analysis and manuscript preparation; XY helped perform the analysis with constructive discussions.

Corresponding author

Correspondence to Dunwei Gong.

Ethics declarations

Conflict of interest

No potential competing interests were reported by the authors.

Ethical approval

Ethical Approval not applicable to this article.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Tian, T., Wang, A., Yang, X. et al. Parallel program testing based on critical communication and branch transformation. J Supercomput 80, 519–548 (2024). https://doi.org/10.1007/s11227-023-05460-4

Download citation

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-023-05460-4

Keywords

Navigation