DiffMutAnalyze: uma ferramenta para auxiliar a análise dos mutantes equivalentes no ensino do teste de mutação
Resumo
O teste de mutação é uma técnica que visa avaliar os casos de teste e, consequentemente, ajudar a melhorar sua qualidade. O teste de mutação é uma técnica promissora para ajudar os alunos a desenvolverem habilidades em testes de software. Assim, este artigo apresenta a utilização da ferramenta DiffMutAnalyze no âmbito acadêmico. Ela fornece um ambiente que: (i) promove a geração de mutantes, (ii) promove a execução de casos de teste nos mutantes gerados, (iii) permite a identificação dos mutantes detectados e (iv) disponibiliza para análise dos possíveis mutantes equivalentes. A DiffMutAnalyze foi avaliada com 11 estudantes de Pós-Graduação em Ciência da Computação, para apoiar o ensino de testes de mutantes e para mostrar a aplicação prática de mutação e análise de mutantes. Foi realizado um estudo, junto aos estudantes, para verificar o custo da análise dos mutantes equivalentes, sendo comparado de duas maneiras: (i) pelo uso da DiffMutAnalyze; e (ii) por meio da análise manual, sem o uso da DiffMutAnalyze. Os resultados mostraram uma redução significativa de tempo em comparação com a análise manual.
Palavras-chave:
Teste de Software, Teste de Mutação, Mutantes Equivalentes, DiffMutAnalyze, Teste de Software na Educação
Referências
Aniche, M., Hermans, F., and van Deursen, A. (2019). Pragmatic software testing education. In 50th Proceedings of the ACM Technical Symposium on Computer Science Education (SIGCSE), pages 414–420.
Botelho, J., Pereira, C. H., Durelli, V. H. S., and Durelli, R. S. (2018). Diffmutanalyze: Uma abordagem para auxiliar a identificação de mutantes equivalentes. In VIWorkshop on Software Visualization, Evolution and Maintenance (VEM).
Cerf, V. G. (2014). Responsible programming. Communications of the ACM, 57(7):7–7.
Delamaro, M., Maldonado, J., and Jino, M. (2016). Introdução ao teste de software. Elsevier.
Grün, B. J., Schuler, D., and Zeller, A. (2009). The impact of equivalent mutants. In 2nd International Conference on Software Testing, Verification and Validation Workshops (ICSTW), pages 192–199.
Just, R. (2014). The major mutation framework: Efficient and scalable mutation analysis for Java. In Proceedings of the International Symposium on Software Testing and Analysis (ISSTA), pages 433–436.
Papadakis, M., Kintis, M., Zhang, J., Jia, Y., Traon, Y. L., and Harman, M. (2019). Mutation testing advances: an analysis and survey. In Advances in Computers, pages 275–378.
Radhakrishnan, P., Kanmani, S., and Nandhini, M. (2015). Xsoft: A generic software teaching and learning model. Computer Applications in Engineering Education, 23(3):432–442.
Spacco, J. and Pugh, W. (2006). Helping students appreciate test-driven development (tdd). In 21st Symposium on Object-oriented Programming Systems, Languages, and Applications (ACM SIGPLAN), pages 907–913.
Zheng, W., Bai, Y., and Che, H. (2018). A computer-assisted instructional method based on machine learning in software testing class. Computer Applications in Engineering Education, 26(5):1150–1158.
Botelho, J., Pereira, C. H., Durelli, V. H. S., and Durelli, R. S. (2018). Diffmutanalyze: Uma abordagem para auxiliar a identificação de mutantes equivalentes. In VIWorkshop on Software Visualization, Evolution and Maintenance (VEM).
Cerf, V. G. (2014). Responsible programming. Communications of the ACM, 57(7):7–7.
Delamaro, M., Maldonado, J., and Jino, M. (2016). Introdução ao teste de software. Elsevier.
Grün, B. J., Schuler, D., and Zeller, A. (2009). The impact of equivalent mutants. In 2nd International Conference on Software Testing, Verification and Validation Workshops (ICSTW), pages 192–199.
Just, R. (2014). The major mutation framework: Efficient and scalable mutation analysis for Java. In Proceedings of the International Symposium on Software Testing and Analysis (ISSTA), pages 433–436.
Papadakis, M., Kintis, M., Zhang, J., Jia, Y., Traon, Y. L., and Harman, M. (2019). Mutation testing advances: an analysis and survey. In Advances in Computers, pages 275–378.
Radhakrishnan, P., Kanmani, S., and Nandhini, M. (2015). Xsoft: A generic software teaching and learning model. Computer Applications in Engineering Education, 23(3):432–442.
Spacco, J. and Pugh, W. (2006). Helping students appreciate test-driven development (tdd). In 21st Symposium on Object-oriented Programming Systems, Languages, and Applications (ACM SIGPLAN), pages 907–913.
Zheng, W., Bai, Y., and Che, H. (2018). A computer-assisted instructional method based on machine learning in software testing class. Computer Applications in Engineering Education, 26(5):1150–1158.
Publicado
19/10/2020
Como Citar
BOTELHO, Juliana; SOUZA, Maurício; DURELLI, Vinicius H. S.; DURELLI, Rafael S..
DiffMutAnalyze: uma ferramenta para auxiliar a análise dos mutantes equivalentes no ensino do teste de mutação. In: WORKSHOP DE VISUALIZAÇÃO, EVOLUÇÃO E MANUTENÇÃO DE SOFTWARE (VEM), 8. , 2020, Evento Online.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2020
.
p. 57-64.
DOI: https://doi.org/10.5753/vem.2020.14529.