Use este identificador para citar ou linkar para este item:
https://repositorio.ufpe.br/handle/123456789/68412
Compartilhe esta página
| Título: | Vocabulário de testes instáveis em Swift |
| Autor(es): | MEDEIROS, João Pedro Campos de |
| Palavras-chave: | Engenharia de software; Testes de software; Testes flaky |
| Data do documento: | 12-Dez-2025 |
| Citação: | 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. |
| Abstract: | 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 nas coleções: | (TCC) - Engenharia da Computação |
Arquivos associados a este item:
| Arquivo | Descrição | Tamanho | Formato | |
|---|---|---|---|---|
| TCC João Pedro Campos de Medeiros.pdf | 438.58 kB | Adobe PDF | ![]() Visualizar/Abrir |
Este arquivo é protegido por direitos autorais |
Este item está licenciada sob uma Licença Creative Commons

