Neural Network Embeddings for Test Case Prioritization.

作者: Miguel Ribeiro , João Lousada

DOI:

关键词: Software developmentTest caseArtificial neural networkComponent (UML)Space (commercial competition)Software qualityVisualizationComputer scienceData miningPipeline (software)

摘要: In modern software engineering, Continuous Integration (CI) has become an indispensable step towards systematically managing the life cycles of development. Large companies struggle with keeping pipeline updated and operational, in useful time, due to large amount changes addition features, that build on top each other have several developers, working different platforms. Associated such changes, there is always a strong component Testing. As teams projects grow, exhaustive testing quickly becomes inhibitive, becoming adamant select most relevant test cases earlier, without compromising quality. We developed new tool called Neural Network Embeeding for Test Case Prioritization (NNE-TCP) novel Machine-Learning (ML) framework analyses which files were modified when was status transition learns relationships between these tests by mapping them into multidimensional vectors grouping similarity. When are made, more likely be linked prioritized, reducing resources needed find newly introduced faults. Furthermore, NNE-TCP enables entity visualization low-dimensional space, allowing manners similarity reduce redundancies. By applying NNE-TCP, we show first time connection competitive relative traditional methods.

参考文章(16)
Xinli Yang, David Lo, Xin Xia, Yun Zhang, Jianling Sun, Deep Learning for Just-in-Time Defect Prediction 2015 IEEE International Conference on Software Quality, Reliability and Security. pp. 17- 26 ,(2015) , 10.1109/QRS.2015.14
Fabian Pedregosa, Gaël Varoquaux, Alexandre Gramfort, Vincent Michel, Bertrand Thirion, Olivier Grisel, Mathieu Blondel, Andreas Müller, Joel Nothman, Gilles Louppe, Peter Prettenhofer, Ron Weiss, Vincent Dubourg, Jake Vanderplas, Alexandre Passos, David Cournapeau, Matthieu Brucher, Matthieu Perrot, Édouard Duchesnay, Scikit-learn: Machine Learning in Python Journal of Machine Learning Research. ,vol. 12, pp. 2825- 2830 ,(2011)
Bertrand Meyer, Seven Principles of Software Testing IEEE Computer. ,vol. 41, pp. 99- 101 ,(2008) , 10.1109/MC.2008.306
G. Rothermel, R.H. Untch, Chengyun Chu, M.J. Harrold, Prioritizing test cases for regression testing IEEE Transactions on Software Engineering. ,vol. 27, pp. 929- 948 ,(2001) , 10.1109/32.962562
Shin Yoo, Mark Harman, Shmuel Ur, Measuring and Improving Latency to Avoid Test Suite Wear Out international conference on software testing, verification and validation workshops. pp. 101- 110 ,(2009) , 10.1109/ICSTW.2009.10
Benjamin Busjaeger, Tao Xie, Learning for test prioritization: an industrial case study foundations of software engineering. pp. 975- 980 ,(2016) , 10.1145/2950290.2983954
Celal Ziftci, Jim Reardon, Who broke the build?: automatically identifying changes that induce test failures in continuous integration at Google scale international conference on software engineering. pp. 113- 122 ,(2017) , 10.1109/ICSE-SEIP.2017.13
Helge Spieker, Arnaud Gotlieb, Dusica Marijan, Morten Mossige, Reinforcement learning for automatic test case prioritization and selection in continuous integration international symposium on software testing and analysis. pp. 12- 22 ,(2017) , 10.1145/3092703.3092709
Heleno de S. Campos Junior, Marco Antônio P. Araújo, José Maria N. David, Regina Braga, Fernanda Campos, Victor Ströele, Test case prioritization: a systematic review and mapping of the literature brazilian symposium on software engineering. pp. 34- 43 ,(2017) , 10.1145/3131151.3131170