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.pdf | 438.58 kB | Adobe PDF | ![]() Visualizar/Abrir |
Este ítem está protegido por copyright original |
Este ítem está sujeto a una licencia Creative Commons Licencia Creative Commons

