NodeRock: uma abordagem para seleção de testes suscetíveis a event races em projetos Node.js

dc.contributor.advisor1Endo, André Takeshi
dc.contributor.advisor1Latteshttp://lattes.cnpq.br/4221336619791961
dc.contributor.advisor1orcidhttps://orcid.org/0000-0002-8737-1749
dc.contributor.authorVicente, Pedro Vinícius Guandalini
dc.contributor.authorlatteshttp://lattes.cnpq.br/7353430837546552
dc.contributor.authororcidhttps://orcid.org/0009-0000-3825-5082
dc.date.accessioned2025-12-12T13:07:52Z
dc.date.issued2025-12-08
dc.description.abstractThe Node.js platform is widely used for JavaScript applications, employing an asynchronous execution model that is essential for its performance. However, the non-determinism of this model can lead to event races, which are subtle and hard-to-reproduce concurrency bugs that compromise software reliability. Current approaches to detect event races often require exhaustive analyses on the entire test suite, resulting in high computational costs and a lack of effective mechanisms to select and prioritize automated tests that are more susceptible to event races. This work proposes and evaluates an approach called NodeRock, which uses dynamic analysis to identify and select tests susceptible to event races in Node.js projects. NodeRock collects detailed execution traces, extracts a set of 15 dynamic features that characterize asynchronous behavior, and uses machine learning to select the tests. The results provide evidence that the approach identifies tests susceptible to event races with 75% accuracy and recall exceeding 84%, suggesting that the analysis of dynamic metrics is a promising strategy for prioritizing the investigation of these tests.eng
dc.description.resumoA plataforma Node.js é amplamente utilizada para aplicações JavaScript, empregando um modelo de execução assíncrono que é essencial para o seu desempenho. Contudo, o não determinismo desse modelo pode levar a event races, que são bugs de concorrência sutis e difíceis de reproduzir que comprometem a confiabilidade do software. As abordagens atuais para detectar event races frequentemente exigem análises exaustivas em toda a suíte de testes, resultando em um alto custo computacional e na ausência de mecanismos eficazes para selecionar e priorizar testes automatizados que são mais suscetíveis a event races. Este trabalho propõe e avalia uma abordagem chamada NodeRock que usa análise dinâmica para identificar e selecionar testes em projetos Node.js suscetíveis a event races. NodeRock coleta traços de execução detalhados, extrai um conjunto de 15 features dinâmicas que caracterizam o comportamento assíncrono e utiliza aprendizado de máquina para selecionar os testes. Os resultados fornecem evidências de que a abordagem identifica testes suscetíveis a event races com acurácia de 75% e revocação superior a 84%, sugerindo que a análise de métricas dinâmicas é uma abordagem promissora para priorizar a investigação desses testes.
dc.identifier.citationVICENTE, Pedro Vinícius Guandalini. NodeRock: uma abordagem para seleção de testes suscetíveis a event races em projetos Node.js. 2025. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) – Universidade Federal de São Carlos, São Carlos, 2025. Disponível em: https://repositorio.ufscar.br/handle/20.500.14289/23191.por
dc.identifier.urihttps://hdl.handle.net/20.500.14289/23191
dc.identifier.urlhttps://github.com/PedroViniciusVicente/NodeRock
dc.language.isopor
dc.publisherUniversidade Federal de São Carlos
dc.publisher.addressCampus São Carlos
dc.publisher.courseCiência da Computação - CC
dc.publisher.initialsUFSCar
dc.rightsAttribution-NoDerivs 3.0 Brazilen
dc.rights.urihttp://creativecommons.org/licenses/by-nd/3.0/br/
dc.subjectJavaScript
dc.subjectNode.js
dc.subjectAprendizado de Máquina
dc.subject.cnpqCIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO
dc.subject.ods9. Indústria, Inovação e Infraestrutura
dc.titleNodeRock: uma abordagem para seleção de testes suscetíveis a event races em projetos Node.js
dc.title.alternativeNodeRock: an approach for selecting tests susceptible to event races in Node.js projectseng
dc.typeTCC

Arquivos

Pacote Original

Agora exibindo 1 - 1 de 1
Carregando...
Imagem de Miniatura
Nome:
Pedro_Vicente_TCC_BCC.pdf
Tamanho:
1.59 MB
Formato:
Adobe Portable Document Format

Coleções