Abstract
Continuous integration (CI) software development practice has become more and more popular. Regression testing occurs very frequently in CI. Test case suites constantly change since new test cases are inserted and obsolete test case are removed in each cycle. The software developer hunts for quick-feedback of faults because of time constraint. An embedded software usually includes the spatial–temporal data in CI. The efficiency of regression testing for the embedded software is related to the space–time. To achieve ideal regression testing goals for the embedded software in CI, this paper proposes a novel test case prioritization approach using LSTM-Based (Long short-term memory) deep learning. LSTM is a time series prediction model. It can predict the probability of each test case detection fault in the next cycle according to the testing history information of all the previous CI cycles. The priority of test case can be obtained dynamically under the guidance of the probability. The experiments are conducted on two industrial data sets. The results verify that compared with some exiting test case prioritization approaches, our approach has better performance for embedded software as follows: (1) improve the prioritization effectiveness, (2) increase the fault detection rate in CI environment, and (3) decrease the testing execution time through automatic reduction the obsolete test cases.
Similar content being viewed by others
References
http: //martinfowler.com/articles/continuousIntegration.html
Orso, A., Rothermel, G.: Software testing: a research travelogue (2000–2014). In Proc. Future Softw. Eng. 117–132 (2014)
Stolberg S.: Enabling agile testing through continuous integration. In Agile Conf.360–374 (2009)
Rothermel, G., Untch, R., Chu, C., et al.: Prioritizing test cases for regression testing. IEEE Transact. Softw. Eng. 27(10), 929–948 (2001)
Rothermel, G., Harrold, M.: A safe, efficient regression test selection technique. ACM Trans. Softw. Eng. Method. 6(2), 173–210 (1997)
Wong, W., Hogan. J., London S., et al.: A study of effective regression testing in practice. Proceedings of IEEE international symposium on software reliability engineering. 264–274 (1997)
Yoo, S., Harman, M.: Regression testing minimization, selection and prioritization: a survey. Softw.Test. Verif. Reliab. 22(2), 67–120 (2015)
Regehr, J., Chen, Y., Cuoq, P., et al.: Test-case reduction for c compiler bugs. ACM SIGPLAN Notices 47(6), 335–346 (2012)
Rothermel, G., Untch, R.H., Chu, C., Harrold, M.J.: Test case prioritization: an empirical study. In: Proc. Int. Conf. Softw. Maint. 179–188 (1999)
Spieker, H., Gotlieb, A, et al.: Reinforcement learning for automatic test case prioritization and selection in continuous integration. ACM Sigsoft Int. Symp. Softw. Test. Anal. 12–22 (2017)
Jones, J., Harrold, M.: Test-Suite reduction and prioritization for modified condition/decision coverage. IEEE Trans. on Softw. Eng. 29(3), 195–209 (2003)
Kim, J., Porter, A.: A history-based test prioritization technique for regression testing in resource constrained environments. Int. Conf. Softw. Eng. IEEE, 119–129 (2002)
Marijan, D., Gotlieb, A., Sen, S.: Test case prioritization for continuous regression testing: an industrial case study. IEEE Int. Conf. Soft. Maint. 540–543 (2103)
Carlson, R., Do, H., Denton, A.: A clustering approach to improving test case prioritization: an industrial case study. IEEE Int. Conf. Softw. Maint. 382–391 (2011)
Busjaeger, B., Xie, T.: Learning for test prioritization: an industrial case study. ACM Sigsoft Int. Symp. Foundat Softw. Eng. 975–980 (2016).
Li, Z., Huang, J., Zhou, Z., et al.: LSTM-based deep learning models for answer ranking. IEEE Int. Conf. Data Sci. Cyberspace. 90–97 (2017)
Tao, Y., Chen, H., Qiu, C.: Wind power prediction and pattern feature based on deep learning method. IEEE Pes Asia-Pacific Power Energy Eng. Conf. 1–4 (2014)
Wang, X., Xu, L.: Short-term traffic flow prediction based on deep learning. J. Transport Syst Eng. Informat. Technol. 18(1), 81–88 (2018)
Pham, T., Tran, T., Phung, D., et al.: Predicting healthcare trajectories from medical records: a deep learning approach. J. Biomed. Inform. 69, 218–229 (2017)
Tahat, L., Korel, B., Harman, M., et al.: Regression test suite prioritization using system models [J]. Softw. Test. Verif. Reliab. 22(7), 481–506 (2012)
Korel, B., Tahat, L., Harman, M.: Test prioritization using system models. IEEE Int. Conf. Softw. Maint. 559−568 (2005)
Noor, T., Bin, T., Hemmati, H.: A similarity-based approach for test case prioritization using historical failure data, pp. 58–68. Int. Symp. Softw. Reliab. Eng. IEEE Comput. Soc., IEEE (2015)
Strandberg, P., Afzal, W., Ostrand, T., et al.: Automated system-level regression test prioritization in a nutshell. IEEE Softw. 34(4), 30–37 (2017)
Srikanth, H., Williams, L., Osborne, J.: System test case prioritization of new and regression test cases. Int. Sym. Empir Softw. Eng.1–10 (2005)
Wang, X., Zeng, H., Lin, W.: Techniques for regression testing in agile development environment. Chin. J. Comput. 43(2), 1–16 (2019)
Catal, C., Mishra, D.: Test case prioritization: a systematic mapping study. Softw. Qual. J. 21(3), 445–478 (2013)
Bian, Y., Li, Z., Zhao, R., et al.: Epistasis based ACO for regression test case prioritization [J]. IEEE Trans. Emerg. Top. Comput. Intell. 1(3), 213–223 (2017)
Noguchi, T., Washizaki, H., Fukazawa, Y.: History-based test case prioritization for black box testing using ant colony optimization. IEEE 8th Int. Conf. Softw. Test. Verif. Validat. 1–2 (2015)
De, S., Luciano, S., et al.: Search based constrained test case selection using execution effort. Expert Syst. Appl. 40(12), 4887–4896 (2013)
Zhang, L., Hou, S., Guo, C., et al.: Time-aware test-case prioritization using integer linear programming. Eighteenth Int. Sym. Softw. Test. Anal. 213–224 (2009)
Walcott, K.R. et al.: Time aware test suite prioritization. Acm/sigsoft International Symposium on Software Test. Anal. 1–12 (2006)
Elbaum, S., Rothermel, G., Penix, J.: Techniques for improving regression testing in continuous integration development environments, pp. 235–245. ACM Sigsoft Int. Symp., The (2014)
Gensler, A., Henze, J., Sick, B., et al.: Deep learning for solar power forecasting -an approach using autoencoder and LSTM neural networks. IEEE Int. Conf. Syst. Man Cybernet. 002858–002865 (2016)
Zhao, Z., Chen, W., Wu, X., et al.: LSTM network: a deep learning approach for short-term traffic forecast. Intell. Trans. Syst. 1(2), 68–75 (2017)
Wang, X., Wu, J., Liu, C., et al.: Exploring LSTM based recurrent neural network for failure time series prediction. J. Beijing Univ. Aeronaut. Astronaut. (4):772–784 (2018)
Elbaum, S., Malishevsky, A., Rothermel, G.: Test case prioritization: a family of empirical studies. IEEE Trans. Softw. Eng. 28(2), 159–182 (2002)
Elbaum, S., Malishevsky, A., Rothermel, G.: Incorporating varying test costs and fault severities into test case prioritization. Int. Conf. Softw. Eng. 329–338 (2001)
Abadi, M., Barham, P., Chen, J., et al.: Tensorflow: a system for large-scale machine learning.12th Symp. Operat. Syst. Des. Implement. 2016: 265–283
https://github.com/tgjeon/TensorFlow-Tutorials-for-Time-Series
Kingma, D, Ba J.A.: A method for stochastic optimization. Int. Conf. Learn. Represent. 1–15 (2015)
Acknowledgements
This research work is supported by National Natural Science Foundation of China (61572306).
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Xiao, L., Miao, H., Shi, T. et al. LSTM-based deep learning for spatial–temporal software testing. Distrib Parallel Databases 38, 687–712 (2020). https://doi.org/10.1007/s10619-020-07291-1
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10619-020-07291-1