Abstract
The increasing deployment of the Internet of Things (IoT) leads to the diversified development of IoT-based applications. However, due to the fast updates and the growing scale of IoT applications, IoT developers mainly focus on the production code but overlook the co-evolution of the corresponding test code. To facilitate the maintenance of IoT applications, this paper proposes an NLP-based approach to predict whether the test code needs to be co-changed when its production code is updated. We collected data from the most popular projects on GitHub (top 1,000 with the highest stars). Three neural encoders were employed to capture semantic features of commit messages, production code changes, and related test code. We then generated our training samples, in which the features of each sample consist of < Commit Message, Production Code Change, Test Unit Code >. Finally, a neural network model was built by learning the correlations among these features to determine the possibility of test co-evolution. We evaluated the effectiveness of our NLP-based approach on 15 widely used Python projects in the IoT domain. The evaluation result shows that the prediction accuracy of our model achieves 93%, highlighting the practical significance of our approach in the maintenance of IoT applications.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Kour, V.P., Arora, S.: Recent developments of the internet of things in agriculture: a survey. IEEE Access 8, 129924–129957 (2020)
Dang, L.M., Piran, M.J., Han, D., et al.: A survey on internet of things and cloud computing for healthcare. Electronics 8(7), 768 (2019)
Zhou, I., Makhdoom, I., Shariati, N., et al.: Internet of things 2.0: concepts, applications, and future directions. IEEE Access 9, 70961–71012 (2021)
Kouicem, D.E., Bouabdallah, A., Lakhlef, H.: Internet of things security: a top-down survey. Comput. Netw. 141, 199–221 (2018)
Atlam, H.F., Wills, G.B.: IoT security, privacy, safety and ethics. Digit. Twin Technol. Smart Cities, 123–149 (2020)
Taivalsaari, A., Mikkonen, T.: On the development of IoT systems. In: 2018 Third International Conference on Fog and Mobile Edge Computing (FMEC), pp. 13–19. IEEE (2018)
Taivalsaari, A., Mikkonen, T.: A taxonomy of IoT client architectures. IEEE Softw. 35(3), 83–88 (2018)
Chen, T.Y., Cheung, S.C., You, S.M.: Metamorphic testing: a new approach for generating next test cases. arXiv Preprint arXiv:2002.12543 (2020)
Li, W., Le Gall, F., Spaseski, N.: A survey on model-based testing tools for test case generation. In: Itsykson, V., Scedrov, A., Zakharov, V. (eds.) TMPA 2017. CCIS, vol. 779, pp. 77–89. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-71734-0_7
Palomba, F., Panichella, A., Zaidman, A., et al.: Automatic test case generation: what if test code quality matters?. In: The 25th International Symposium on Software Testing and Analysis, pp. 130–141 (2016)
Lyu, H., Sha, N., Qin, S., et al.: Advances in neural information processing systems. In: Advances in Neural Information Processing Systems, vol. 32 (2019)
Taud, H., Mas, J.F.: Multilayer perceptron (MLP). Geomatic Approach. Model. Land Change Scenarios, 451–455 (2018)
Noor, T.B., Hemmati, H.: Studying test case failure prediction for test case prioritization. In: The 13th International Conference on Predictive Models and Data Analytics in Software Engineering, pp. 2–11 (2017)
Paterson, D., Campos, J., Abreu, R., et al.: An empirical study on the use of defect prediction for test case prioritization. In: 2019 12th IEEE Conference on Software Testing, Validation and Verification (ICST), pp. 346–357. IEEE (2019)
Shao, Y., Liu, B., Wang, S., et al.: A novel test case prioritization method based on problems of numerical software code statement defect prediction. Eksploatacja i Niezawodność 22(3) (2020)
Kraut, R.E., Streeter, L.A.: Coordination in software development. Commun. ACM 38(3), 69–82 (1995)
Jiang, Y., Adams, B.: Co-evolution of infrastructure and source code-an empirical study. In: 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories, pp. 45–55. IEEE (2015)
Eilertsen, A.M., Bagge, A.H.: Exploring API: client co-evolution. In: The 2nd International Workshop on API Usage and Evolution, pp. 10–13 (2018)
Um, S.Y., Yoo, Y.: The co-evolution of digital ecosystems (2016)
Zaidman, A., Rompaey, B.V., Deursen, A.V., et al.: Studying the co-evolution of production and test code in open source and industrial developer test processes through repository mining. Empir. Softw. Eng. 16(3), 325–364 (2011). https://doi.org/10.1007/s10664-010-9143-7
Lubsen, Z.A.: Studying Co-evolution of production and test code using association rule mining. Delft Univ. Technol. Softw. Eng. Res. Group (2008). ISSN 1872-5392
Lubsen, Z., Zaidman, A., Pinzger, M.: Using association rules to study the co-evolution of production & test code. In: IEEE International Working Conference on Mining Software Repositories. IEEE (2009). https://doi.org/10.1109/MSR.2009.5069493
Zaidman, A., Rompaey, B.V., Demeyer, D.S.: Studying the co-evolution of production and test code in open source and industrial developer test processes through repository mining. Empir. Softw. Eng. (2011). https://doi.org/10.1007/s10664-010-9143-7
Ploennigs, J., Cohn, J., Stanford-Clark, A.: The future of IoT. IEEE Internet Things Mag. 1(1), 28–33 (2018)
Lee, S.K., Bae, M., Kim, H.: Future of IoT networks: a survey. Appl. Sci. 7(10), 1072 (2017)
Zaidman, A., Rompaey, B.V., Demeyer, S., et al.: Mining software repositories to study co-evolution of production & test code. In: 2008 1st International Conference on Software Testing, Verification, and Validation. IEEE (2008). https://doi.org/10.1109/ICST.2008.47
Marsavina, C., Romano, D., Zaidman, A.: Studying fine-grained co-evolution patterns of production and test code. In: 2014 IEEE 14th International Working Conference on Source Code Analysis and Manipulation, pp. 195–204. IEEE (2014)
Wang, S., Wen, M., Liu, Y., et al.: Understanding and facilitating the co-evolution of production and test code. In: 2021 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER), pp. 272–283. IEEE (2021)
Vidács, L., Pinzger, M.: Co-evolution analysis of production and test code by learning association rules of changes. In: 2018 IEEE Workshop on Machine Learning Techniques for Software Quality Evaluation (MaLTeSQuE), pp. 31–36. IEEE (2018)
Shimmi, S., Rahimi, M.: Patterns of code-to-test co-evolution for automated test suite maintenance. In: 2022 IEEE Conference on Software Testing, Verification and Validation (ICST), pp. 116–127. IEEE (2022)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2024 The Author(s), under exclusive license to Springer Nature Singapore Pte Ltd.
About this paper
Cite this paper
Liu, Y., Chen, Z. (2024). NLP-Based Test Co-evolution Prediction for IoT Application Maintenance. In: Jin, H., Yu, Z., Yu, C., Zhou, X., Lu, Z., Song, X. (eds) Green, Pervasive, and Cloud Computing. GPC 2023. Lecture Notes in Computer Science, vol 14504. Springer, Singapore. https://doi.org/10.1007/978-981-99-9896-8_11
Download citation
DOI: https://doi.org/10.1007/978-981-99-9896-8_11
Published:
Publisher Name: Springer, Singapore
Print ISBN: 978-981-99-9895-1
Online ISBN: 978-981-99-9896-8
eBook Packages: Computer ScienceComputer Science (R0)