Skip to main content

Does PageRank apply to service ranking in microservice regression testing?

Abstract

Regression testing is required in each development iteration of microservice systems. Test case prioritization, which improves the fault detection rate by optimizing the execution order of test cases, is one of the main techniques to optimize regression testing. Existing test case prioritization techniques mainly rely on artifacts such as codes and system models, which are limited to microservice systems with service autonomy, development method diversity, and large service scale. This paper proposes a test case prioritization approach based on service ranking referred to as TCP-SR. TCP-SR ranks the services based on API gateway logs. The weights of test cases are calculated with the result of service ranking, which could be used to order test cases with single-objective and multi-objective strategies. To evaluate the effectiveness of TCP-SR, the empirical study based on four microservice systems is presented. The results show that the fault detection rate of TCP-SR is almost twice as high as that of the random prioritization technique, and almost the same as the prioritization technique based on WS-BPEL but requires much less prioritization time cost.

This is a preview of subscription content, access via your institution.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7

References

  • Abele, S., & Göhner, P. (2014). Improving proceeding test case prioritization with learning software agents. In: Proceedings of 6th International Conference on Agents and Artificial IntelligenceICAART, (2), 293-298.

  • Al-Hajjaji, M., Thüm, T., Lochau, M., Meinicke, J., & Saake, G. (2019). Effective product-line testing using similarity-based product prioritization. Software and Systems Modeling, 18(1), 499–521. https://doi.org/10.1007/s10270-016-0569-2

    Article  Google Scholar 

  • Azizi, M., & Do, H. (2018a). A collaborative filtering recommender system for test case prioritization in web applications. In Proceedings of the 33rd annual ACM symposium on applied computing, (pp. 1560-1567). https://doi.org/10.1145/3167132.3167299

  • Azizi, M., & Do, H. (2018b). Graphite: a greedy graph-based technique for regression test case prioritization. In 2018 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW) (pp. 245-251).

  • Canfora, G., & Di Penta, M. (2009). Service-oriented architectures testing: A survey Software Engineering. Springer, 78–105. https://doi.org/10.1007/978-3-540-95888-84

  • Catal, C., & Mishra, D. (2013). Test case prioritization: A systematic mapping study. Software Quality Journal, 21(3), 445–478. https://doi.org/10.1007/s11219-012-9181-z

    Article  Google Scholar 

  • Chen, L., Wang, Z., Xu, L., Lu, H., & Xu, B. (2010). Test case prioritization for web service regression testing. In 2010 Fifth IEEE International Symposium on Service Oriented System Engineering, (pp. 173-178). IEEE.

  • de S. Campos Junior, H., Araújo, M. A. P., David, J. M. N., Braga, R., Campos, F., & Ströele, V. (2017). Test case prioritization: a systematic review and mapping of the literature. In Proceedings of the 31st Brazilian Symposium on Software Engineering (pp. 34-43).

  • Diefenbach, D., & Thalhammer, A. (2018). PageRank and generic entity summarization for RDF knowledge bases. In: Proceedings of European Semantic Web Conference. Springer.

  • Fan, C. Y., & Ma, S. P. (2017). Migrating monolithic mobile application to microservice architecture: An experiment report. In 2017 IEEE International Conference on AI & Mobile Services (AIMS) (pp. 109-112). IEEE. https://doi.org/10.1109/AIMS.2017.23

  • Gao, C., Zheng, W., Deng, Y., & Lo, D., (2019). Emerging app issue identification from user feedback: Experience on wechat. In 2019 IEEE/ACM 41st International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP) (pp. 279-288). IEEE.

  • Gökçe, N., & Eminli, M. (2014). Model-based test case prioritization using neural network classification. Computer Science & Engineering: An International Journal (CSEIJ)., 4(1), 15–25. https://doi.org/10.5121/cseij.2014.4102

    Article  Google Scholar 

  • Horváth, F., Gergely, T., Beszédes, Á., Tengeri, D., Balogh, G., & Gyimóthy, T. (2019). Code coverage differences of Java bytecode and source code instrumentation tools. Software Quality Journal, 27(1), 79–123. https://doi.org/10.1007/s11219-017-9389-z

    Article  Google Scholar 

  • Kaczanowski, T. (2013). Practical Unit Testing with JUnit and Mockito. In: https://site.mockito.org/

  • Khan, T. A., & Heckel, R. (2011). On model-based regression testing of web-services using dependency analysis of visual contracts. In International Conference on Fundamental Approaches to Software Engineering, (pp. 341-355).

  • Kim, M., Sumbaly, R., & Shah, S. (2013). Root cause detection in a service-oriented architecture. In ACM SIGMETRICS Performance Evaluation Review, ACM, 41, 93–104.

    Article  Google Scholar 

  • Konsaard, P., & Ramingwong, L. (2015). Total coverage based regression test case prioritization using genetic algorithm. Proceedings of 12th International Conference on Electrical Engineering/Electronics, Computer, Telecommunications and Information Technology.

  • Korel, B., Koutsogiannakis, G., & Tahat, L. H. (2008). Application of system models in regression test suite prioritization. Proceedings of International Conference on Software Maintenance, 247–256.

  • Korel, B., Tahat, L. H., & Harman, M. (2005). Test prioritization using system models. Proceedings of 21st IEEE International Conference on Software Maintenance (ICSM'05), 559–568.

  • Larrucea, X., Santamaria, I., Colomo-Palacios, R., & Ebert, C. (2018). Microservices. IEEE Software, 35(3), 96–100.

    Article  Google Scholar 

  • Lewis, J., & Fowler, M. (2014). Microservices: a definition of this new architectural term. In: http://martinfowler.com/articles/microservices.html

  • Li, B., Qiu, D., Leung, H., & Wang, D. (2012). Automatic test case selection for regression testing of composite service based on extensible BPEL flow graph. Journal of Systems and Software85(6), 1300-1324. https://doi.org/10.1016/j.jss.2012.01.036

    Article  Google Scholar 

  • Li, Z. J., Tan, H. F., Liu, H. H., Zhu, J. M., & N. M. (2008). Business-process-driven gray-box SOA testing. IBM. System, 47(3), 457–472. https://doi.org/10.1147/sj.473.0457

    Article  Google Scholar 

  • Liu, H., Li, Z., Zhu, J., & Tan, H. (2007). Business process regression testing. Proceedings of the 5th International Conference on Service-Oriented Computing, 157–168.

  • Mahdian, A., Andrews, A. A., & Pilskalns, O. J. (2009). Regression testing with UML software designs: A survey. Journal of Software Maintenance and Evolution: Research and Practice, 21(4), 253–286. https://doi.org/10.1002/smr.v21:4

    Article  Google Scholar 

  • Mece, E. K., Binjaku, K., & Paci, H. (2020). The application of machine learning in test case prioritization - a review. European Journal of Electrical and Computer Engineering, 4(1), 1–9. https://doi.org/10.24018/ejece.2020.4.1.128

  • Meszaros, G. (2007). xUnit: Test Patterns Refactoring Test Code. Boston, Addison-Wesley.

    Google Scholar 

  • Mohd Shafie, M. L., & Wan Kadir, W. M. N. (2018). Model-based test case prioritization: a systematic literature review. Journal of Theoretical and Applied Information Technology (JATIT & LLS), 96(14), 4548–4573.

  • Mirshokraie, S., Mesbah, A., & PaŠabiraman, K. (2015). Guided mutation testing for javascript web applications. IEEE Transactions on Software Engineering, 41(5), 429–444. https://doi.org/10.1109/TSE.2014.2371458

    Article  Google Scholar 

  • Naik, A., Maeda, H., Kanojia, V., & Fujita, S. (2018). Scalable Twitter user clustering approach boosted by Personalized PageRank. International Journal of Data Science and Analytics6(4), 297-309. https://doi.org/10.1007/s41060-017-0089-3

  • Newman, S. (2015). Building microservices: designing fine-grained systems. O’Reilly Media.

  • Ouriques, J. F. S., Cartaxo, E. G., & Machado, P. D. L. (2018). Test case prioritization techniques for model based testing: A replicated study. Software Quality Journal, 26(4), 1451–1482.

    Article  Google Scholar 

  • Prado, J. A., Lima, S. R., & Vergilio. (2020). Test case prioritization in continuous integration environments: A systematic mapping study. Information and Software Technology. https://doi.org/10.1016/j.infsof.2020.106268

    Article  Google Scholar 

  • Qiu, D., Li, B., Ji, S., & Leung, H. (2014). Regression testing of web service: a systematic mapping study. ACM Computing Surveys (CSUR)47(2), 1-46.

  • Richardson, M., & Domingos, P. (2002). The intelligent surfer: Probabilistic combination of link and content information. PageRank Advances in Neural Information Processing Systems, 14, 673–680.

    Google Scholar 

  • Roberto, P. (2020). On the testing resource allocation problem: Research trends and perspectives. Journal of Systems and Software. https://doi.org/10.1016/j.jss.2019.110462

    Article  Google Scholar 

  • Spieker, H., Gotlieb, A., Marijan, D., & Mossige, M. (2017). Reinforcement learning for automatic test case prioritization and selection in continuous integration. Proceedings of 26th ACM SIGSOFT International Symposium on Software Testing and Analysis, 12–22.

  • Wang, X., Zeng, H., Gao, H., Miao H., & Lin, W. (2019) Location-based test case prioritization for software embedded in mobile devices using the law of gravitation. Mobile Information Systems, 1–14. https://doi.org/10.1155/2019/9083956

  • Wu, G., & Wei, Y. (2007). A power-arnold algorithm for computing PageRank. Numerical Linear Algebra with Applications, 14(7), 521–546. https://doi.org/10.1002/nla.531

    MathSciNet  Article  MATH  Google Scholar 

  • Yoo, S., & Harman, M. (2012). Regression testing minimization, selection and prioritization: A survey. Software Testing, Verification and Reliability, 22(2), 67–120. https://doi.org/10.1002/stv.430

    Article  Google Scholar 

  • Zhang, M., Li, X., Zhang, L., & Khurshid, S. (2017). Boosting spectrum-based fault localization using pagerank. In Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis, (pp. 261-272).

  • Zhao, X., Wang, Z., Fan, X., Wang, Z. (2015). A clustering-bayesian network based approach for test case prioritization. Proceedings of IEEE 39th Annual Computer Software and Applications Conference, Taichung.

  • Zhongsheng, Q. (2010). Test case generation and optimization for user session-based web application testing. Journal of Computers5(11), 1655-1662. https://doi.org/10.4304/jcp.5.11.1655-1662

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ji Wu.

Additional information

Publisher's Note

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

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Chen, L., Wu, J., Yang, H. et al. Does PageRank apply to service ranking in microservice regression testing?. Software Qual J 30, 757–779 (2022). https://doi.org/10.1007/s11219-021-09579-6

Download citation

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11219-021-09579-6

Keywords

  • Microservice
  • Regression testing
  • Test case prioritization
  • PageRank
  • API gateway