TERTS: Um tutor de ensino para refatoração de test smells
Resumo
O ensino de refatoração de test smells vem sendo uma prática desafiadora no contexto acadêmico. Este trabalho introduz o TERTS, um tutor de ensino e prática de refatoração de test smells desenvolvido para estudantes de tecnologia em uma plataforma web. O artigo descreve o desenvolvimento da plataforma e sua aceitação pelos estudantes. A validação da ferramenta incluiu a medição da (i) aceitação e uso, (ii) aquisição de habilidades pelos alunos durante e após o uso, e (iii) nível de conhecimento dos alunos sobre identificação e refatoração de test smells antes e após a utilização da ferramenta. Os resultados indicam que o TERTS é uma ferramenta eficaz e promissora para ser implementada no ambiente educacional.
Referências
Bai, G. R., Smith, J., and Stolee, K. T. (2021). How students unit test: Perceptions, practices, and pitfalls. In Proceedings of the 26th ACM Conference on Innovation and Technology in Computer Science Education V. 1, pages 248–254.
Bavota, G., Qusef, A., Oliveto, R., De Lucia, A., and Binkley, D. (2012). An empirical analysis of the distribution of unit test smells and their impact on software maintenance. In 2012 28th IEEE international conference on software maintenance (ICSM), pages 56–65. IEEE.
Damasceno, H. and Bezerra, C. (2023). Ensino da prática de refatoração de test smells. In Anais do XXXI Workshop sobre Educação em Computação, pages 293–304. SBC.
Davis, F. D., Bagozzi, R. P., and Warshaw, P. R. (1989). User acceptance of computer technology: A comparison of two theoretical models. Management science, 35(8).
Deursen, A., Moonen, L., Bergh, A., and Kok, G. (2001). Refactoring test code.
Durelli, V. H., Durelli, R. S., Borges, S. S., Endo, A. T., Eler, M. M., Dias, D. R., and Guimarães, M. P. (2019). Machine learning applied to software testing: A systematic mapping study. IEEE Transactions on Reliability, 68(3):1189–1212.
Garousi, V., Rainer, A., Lauvås Jr, P., and Arcuri, A. (2020). Software-testing education: A systematic literature mapping. Journal of Systems and Software, 165:110570.
Haendler, T., Neumann, G., and Smirnov, F. (2020). Refactutor: an interactive tutoring system for software refactoring. In Computer Supported Education: 11th International Conference, CSEDU 2019, Heraklion, Crete, Greece, May 2-4, 2019, Revised Selected Papers 11, pages 236–261. Springer.
Hofbauer, M., Bachhuber, C., Kuhn, C., and Steinbach, E. (2022). Teaching software engineering as programming over time. In 2022 IEEE/ACM 4th International Workshop on Software Engineering Education for the Next Generation (SEENG), pages 51–58. IEEE.
Ivers, J., Nord, R. L., Ozkaya, I., Seifried, C., Timperley, C. S., and Kessentini, M. (2022). Industry’s cry for tools that support large-scale refactoring. In Proceedings of the 44th International Conference on Software Engineering: Software Engineering in Practice, pages 163–164.
Kaur, S., Awasthi, L. K., and Sangal, A. (2021). A brief review on multi-objective software refactoring and a new method for its recommendation. Archives of Computational Methods in Engineering, 28:3087–3111.
Keuning, H., Heeren, B., and Jeuring, J. (2021). A tutoring system to learn code refactoring. In Proceedings of the 52nd ACM Technical Symposium on Computer Science Education, pages 562–568.
Kim, D. J. (2020). An empirical study on the evolution of test smell. In Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Companion Proceedings, pages 149–151.
Kim, D. J., Chen, T.-H., and Yang, J. (2021). The secret life of test smells-an empirical study on test smell evolution and maintenance. Empirical Software Engineering, 26.
Kumar, D. and Mishra, K. K. (2016). The impacts of test automation on software’s cost, quality and time to market. Procedia Computer Science, 79:8–15.
Likert, R. (1932). A technique for the measurement of attitudes. Archives of psychology.
Palomba, F., Zaidman, A., and De Lucia, A. (2018). Automatic test smell detection using information retrieval techniques. In 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME), pages 311–322. IEEE.
Peruma, A., Almalki, K. S., Newman, C. D., Mkaouer, M. W., Ouni, A., and Palomba, F. (2019). On the distribution of test smells in open source android applications: An exploratory study.
Prokic, S., Grujić, K.-G., Luburić, N., Slivka, J., Kovacevic, A., Vidaković, D., and Sladic, G. (2021). Clean code and design educational tool. pages 1601–1606.
Santana, R., Martins, L., Rocha, L., Virgínio, T., Cruz, A., Costa, H., and Machado, I. (2020). Raide: a tool for assertion roulette and duplicate assert identification and refactoring. In Proceedings of the XXXIV Brazilian Symposium on Software Engineering, pages 374–379.
Smith, S., Stoecklin, S., and Serino, C. (2006). An innovative approach to teaching refactoring. In Proceedings of the 37th SIGCSE technical symposium on Computer science education, pages 349–353.
Spadini, D., Palomba, F., Zaidman, A., Bruntink, M., and Bacchelli, A. (2018). On the relation of test smells to software code quality. In 2018 IEEE international conference on software maintenance and evolution (ICSME), pages 1–12. IEEE.
Sun, B., Shao, Y., and Chen, C. (2019). Study on the automated unit testing solution on the linux platform. In 2019 IEEE 19th International Conference on Software Quality, Reliability and Security Companion (QRS-C), pages 358–361. IEEE.
Van Deursen, A., Moonen, L., Van Den Bergh, A., and Kok, G. (2001). Refactoring test code. In Proceedings of the 2nd international conference on extreme programming and flexible processes in software engineering (XP2001), pages 92–95. Citeseer.
Virgínio, T., Martins, L., Rocha, L., Santana, R., Cruz, A., Costa, H., and Machado, I. (2020). Jnose: Java test smell detector. In Proceedings of the XXXIV Brazilian Symposium on Software Engineering, SBES ’20, page 564–569, New York, NY, USA. Association for Computing Machinery.
Winters, T., Manshreck, T., and Wright, H. (2020). Software engineering at google: Lessons learned from programming over time. O’Reilly Media.