Skip navigation
Por favor, use este identificador para citar o enlazar este ítem: https://repositorio.ufpe.br/handle/123456789/68412

Comparte esta pagina

Título : Vocabulário de testes instáveis em Swift
Autor : MEDEIROS, João Pedro Campos de
Palabras clave : Engenharia de software; Testes de software; Testes flaky
Fecha de publicación : 12-dic-2025
Citación : MEDEIROS, João Pedro Campos de. Vocabulário de testes instáveis em Swift. 2026. Trabalho de Conclusão de Curso (Engenharia da computação) - Universidade Federal de Pernambuco, Recife, 2025.
Resumen : Testes instáveis, ou flaky tests, são um desafio recorrente no desenvolvimento de software, pois apresentam resultados não determinísticos (ora passam, ora falham) sem qualquer alteração no código-fonte, minando a confiança nas suites de teste e atrasando as entregas de software. Este trabalho propõe uma abordagem para previsão estática de testes instáveis na linguagem Swift utilizando técnicas de aprendizado de máquina aplicadas ao vocabulário extraído do código-fonte dos testes. A metodologia combinou a coleta de testes instáveis a partir da reexecução sistemática e da análise de commits e pull requests em 14 projetos Swift open source. Após o pré-processamento do código para extração de tokens, treinamos e avaliamos cinco modelos de classificação (Random Forest, Decision Tree, Naive Bayes, SVM e K-Nearest Neighbours) usando vetores TF-IDF e validação cruzada estratificada K-Fold. Os resultados demonstram a eficácia da abordagem estática: o classificador Random Forest obteve o melhor desempenho, com F1-Score de 0.87, Precisão de 0.92 e AUC de 0.97, seguido de perto pelo SVM (F1-Score de 0.87 e AUC de 0.93), indicando que é possível prever a instabilidade com alta acurácia com base apenas no código do teste. A análise de ganho de informação revelou que os tokens mais fortemente associados à instabilidade em Swift estão relacionados a: concorrência e assincronismo (e.g., async, await, in observer), dependência de estado/persistência (e.g., in commit, writefilecontents), dependência temporal (e.g., now, timespec) e interação com interface gráfica (e.g., accessibilityidentifiers). Esses achados corroboram pesquisas anteriores em outras linguagens e fornecem evidências empíricas inéditas para o ecossistema Swift, consolidando a validade da detecção estática e do vocabulário como preditores eficazes de flakiness, e auxiliando desenvolvedores na identificação e mitigação proativa dessas fontes de não-determinismo.
URI : https://repositorio.ufpe.br/handle/123456789/68412
Aparece en las colecciones: (TCC) - Engenharia da Computação

Ficheros en este ítem:
Fichero Descripción Tamaño Formato  
TCC João Pedro Campos de Medeiros.pdf438.58 kBAdobe PDFVista previa
Visualizar/Abrir


Este ítem está protegido por copyright original



Este ítem está sujeto a una licencia Creative Commons Licencia Creative Commons Creative Commons