DSpace/Manakin Repository

Uma investigação sobre Test Smells em códigos de testes JavaScript.

Mostrar registro simples

dc.creator.ID JORGE, D. N. pt_BR
dc.creator.Lattes http://lattes.cnpq.br/2682324004823239 pt_BR
dc.contributor.advisor1 MACHADO, Patricia Duarte de Lima.
dc.contributor.advisor1ID MACHADO, P. D. L. pt_BR
dc.contributor.advisor1Lattes http://lattes.cnpq.br/2495918356675019 pt_BR
dc.contributor.advisor2 ANDRADE, Wilkerson de Lucena.
dc.contributor.advisor2ID ANDRADE, W. L. pt_BR
dc.contributor.advisor2Lattes http://lattes.cnpq.br/3697205933296303 pt_BR
dc.contributor.referee1 LIRA , Melina Mongiovi Brito.
dc.contributor.referee2 SOUTO, Sabrina de Figueirêdo.
dc.contributor.referee3 MACHADO, Ivan do Carmo.
dc.contributor.referee4 TEIXEIRA, Leopoldo Motta.
dc.description.resumo Teste de software é uma atividade imprescindível no desenvolvimento de sistemas, pois minimiza a possibilidade de manifestar problemas e maximiza as chances do código de produção estar conforme suas especificações. No entanto, assim como uma má escolha de design (bad smell) afeta o código de produção, os testes também estão suscetíveis ao mesmo tipo de problema. Sendo assim, um teste com indicação de possíveis defeitos no design (test smell) pode ocasionar adversidades que vão desde a legibilidade do código, dificultando a manutenção, até mesmo a estar suscetível a fornecer falsos positivos ou simplesmente parar de funcionar. De fato, test smells são anti-padrões adotados na implementação do código de teste. Esses smells podem ter variações ou desencadear o surgimento de novos tipos, dependendo da linguagem ou tecnologia utilizada para a escrita dos testes. Em paralelo, a linguagem JavaScript tem se desenvolvido ao longo de décadas desde sua criação e uma notável evolução desde 2015 com a especificação ECMAScript 6 (ES6). JavaScript é uma linguagem de alto nível, que inclui as seguintes particula ridades: ser multi-paradigma, interpretada, utilizar tipagem dinâmica, possuir uma orientação a objeto baseada em protótipos e até mesmo funções de primeira classe. Diante disso, focamos nosso estudo de smells em JavaScript, pelo fato dela ser uma linguagem em constante evolução e largamente utilizada para desenvolver software em diversas plataformas, tais como: servidores, desktop, linha de comando, sistemas móveis e internet das coisas. Em síntese, o objetivo deste trabalho é investigar a ocorrência e a severidade de test smells clássicos e específicos na linguagem JavaScript, e verificar se estes anti-padrões podem estar correlacionados e com as métricas de qualidade do código de teste. Para alcançar este objetivo, inicialmente selecionamos 15 smells clássicos da literatura e um inerente à linguagem, para avaliar a ocorrência no código de teste. Com o intuito de facilitar a detecção de smells e validar o nosso estudo, desenvolvemos uma ferramenta de detecção automática desses 16 smells através da técnica de análise estática de código e executamos um estudo exploratório com 65 projetos, sendo 61 de código-livre e 4 de 2 código-fechado. Como resultados, concluímos que as incidências de alguns destes test smells estão moderadamente correlacionadas entre si e com as métricas de qualidade em sentido positivo. Adicionalmente, realizamos um estudo complementar envolvendo desenvolvedores e testadores com o intuito de investigar o impacto da experiência no reconhecimento desses smells em JavaScript. Este estudo visou entender não apenas a prevalência de test smells específicos na percepção desses profissionais, mas também as estratégias e ferramentas utilizadas por eles para mitigar tais anti-padrões. Este aspecto do estudo nos permitiu avaliar a conscientização e as práticas adotadas no contexto real de desen volvimento e teste de software, enriquecendo a compreensão dos desafios enfrentados e das possíveis soluções aplicáveis. Com este trabalho esperamos ter contribuído para a formalização inicial dos estudos de test smells na linguagem JavaScript, tendo em vista que embora venha sendo cada vez mais utilizada nos mais diversos contextos de desenvolvimento, ainda é muito pouco investigada quanto as suas especificidades e desdobramentos no âmbito de test smells. pt_BR
dc.publisher.country Brasil pt_BR
dc.publisher.department Centro de Engenharia Elétrica e Informática - CEEI pt_BR
dc.publisher.program PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO pt_BR
dc.publisher.initials UFCG pt_BR
dc.subject.cnpq Ciência da Computação. pt_BR
dc.title Uma investigação sobre Test Smells em códigos de testes JavaScript. pt_BR
dc.date.issued 2023-09-15
dc.description.abstract Software testing is an essential activity in system development, as it minimizes the possibility of manifesting problems and maximizes the chances that the production code meets its specifications. However, just as a poor design choice (bad smell) affects the production code, tests are also susceptible to the same type of problem. Thus, a test indicating possible design defects (test smell) can lead to challenges ranging from code readability, making maintenance difficult, to being prone to giving false positives or simply ceasing to function. Indeed, test smells are anti-patterns adopted in the test code implementation. These smells can vary or trigger the emergence of new types, depending on the language or technology used for test writing. In parallel, the JavaScript language has developed over decades since its incep tion and a notable evolution since 2015 with the ECMAScript 6 (ES6) specification. JavaScript is a high-level language, which includes the following peculiarities: being multi-paradigm, interpreted, using dynamic typing, having prototype-based object ori entation, and even first-class functions. Given this, we focused our study on smells in JavaScript, because it is a constantly evolving language and widely used to develop software on various platforms, such as: servers, desktop, command line, mobile systems, and the internet of things. In summary, the aim of this study is to investigate the occurrence and severity of classic and specific test smells in the JavaScript language, and to check if these anti patterns might be correlated with each other and with the quality metrics of the test code. To achieve this goal, we initially selected 15 classic smells from the literature and one inherent to the language, to assess their occurrence in the test code. To facilitate the detection of smells and validate our study, we developed an automated detection tool for these 16 smells using the static code analysis technique and conducted an exploratory study with 65 projects, 61 open-source and 4 proprietary. As results, we concluded that the incidence of some of these test smells is moderately correlated with each other and with quality metrics in a positive sense. Additionally, we conducted a complementary study involving developers and testers with the aim of investigating the impact of experience on the recognition of these smells 1 2 in JavaScript. This study aimed to understand not only the prevalence of specific test smells in the perception of these professionals, but also the strategies and tools they used to mitigate such anti-patterns. This aspect of the study allowed us to assess the awareness and practices adopted in the real context of software development and testing, enriching the understanding of the challenges faced and the possible applicable solutions. With this study, we hope to have contributed to the initial formalization of test smell studies in the JavaScript language, considering that although it has been increas ingly used in various development contexts, it had not yet been academically explored regarding its specifics and ramifications in the realm of test smells. pt_BR
dc.identifier.uri http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/37717
dc.date.accessioned 2024-09-09T19:30:50Z
dc.date.available 2024-09-09
dc.date.available 2024-09-09T19:30:50Z
dc.type Tese pt_BR
dc.subject Engenharia de software pt_BR
dc.subject Teste de software – desenvolvimento de sistemas pt_BR
dc.subject Linguagem javascript pt_BR
dc.subject Estudos de test smells – linguagem javascript pt_BR
dc.subject Software engineering pt_BR
dc.subject Software testing – systems development pt_BR
dc.subject JavaScript language pt_BR
dc.subject Test smells studies – javascript language pt_BR
dc.rights Acesso Aberto pt_BR
dc.creator JORGE, Dalton Nicodemos.
dc.publisher Universidade Federal de Campina Grande pt_BR
dc.language por pt_BR
dc.title.alternative An investigation into Test Smells in JavaScript testing codes. pt_BR
dc.identifier.citation JORGE, Dalton Nicodemos. Uma investigação sobre Test Smells em códigos de testes JavaScript. 2023. 143 f. Tese (Doutorado em Ciência da Computação) – Programa de Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2024. pt_BR


Arquivos deste item

Este item aparece na(s) seguinte(s) coleção(s)

Mostrar registro simples

Buscar DSpace


Busca avançada

Navegar

Minha conta