Uma abordagem visual para a evolução de test smells em software Java

Detalhes bibliográficos
Ano de defesa: 2022
Autor(a) principal: Cruz, Adriana Priscila Santos lattes
Orientador(a): Costa, Heitor Augustus Xavier
Banca de defesa: Machado, Ivan Do Carmo, Soares, Larissa Rocha
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Lavras
Programa de Pós-Graduação: Programa de Pós-Graduação em Ciência da Computação
Departamento: Departamento de Ciência da Computação
País: brasil
Palavras-chave em Português:
Área do conhecimento CNPq:
Link de acesso: https://repositorio.ufla.br/handle/1/50244
Resumo: O teste de software é parte do ciclo de desenvolvimento de software, sendo o processo de executar as tarefas do sistema cujo objetivo principal é identificar se o software se comporta conforme foi especificado. O teste também tem como objetivo identificar defeitos no código produzido. Durante esse processo, os desenvolvedores e testadores podem incluir más escolhas de projeto ou implementação do código de teste, levando a inserção dos denominados test smells. Test smells são más escolhas de design ou de implementação do código de teste e sua presença pode torna-lo ineficaz em encontrar bugs, gerando retrabalho e custos adicionais. Test smells também podem dificultar a compreensão e manutenibilidade do código. Além disso, assim como qualquer artefato de software, o código de teste requer a avaliação da qualidade e manutenção. A manutenção do código de teste pode ocorrer devido a identificação de problemas no código e a evolução do código de produção. Ao longo da evolução do código de teste alguns test smells podem ser removidos e outros podem ser inseridos. Para visualizar a evolução de sistemas de software, têm sido utilizadas técnicas de visualização de software, cujo objetivo é transformar o código de produção em uma representação visual para facilitar a sua compreensão. Apesar dessas técnicas contribuírem para visualizar a evolução de sistemas de software, essa abordagem não abrange o código de teste para visualização de test smells. Dessa forma, o objetivo desse trabalho foi propor uma abordagem para visualizar a evolução dos test smells no código de teste e seu comportamento, por exemplo, se houve aumento ou diminuição de test smells, e visualizar os possíveis autores pela sua inclusão. Foi proposta uma abordagem que definiu três estatrégias visuais (TSInstant, TSEvolution e TSAuthor) e uma ferramenta que implementa essa abordagem através de três técnicas de visualização de software (Graph View, Treemap View e Timeline View) para 21 test smells. Essa abordagem foi implementada em uma ferramenta denominada TSVizzEvolution e foi avaliada por meio de um experimento controlado. Essas visualizações podem ajudar os testadores e demais envolvidos nas atividades de teste de software a melhorar a qualidade do código de teste.
id UFLA_6d8d6b4598c60c3604469d4dfbd0647f
oai_identifier_str oai:repositorio.ufla.br:1/50244
network_acronym_str UFLA
network_name_str Repositório Institucional da UFLA
repository_id_str
spelling 2022-06-15T17:27:56Z2022-06-15T17:27:56Z2022-06-152022-03-28CRUZ, A. P. S. Uma abordagem visual para a evolução de test smells em software Java. 2022. 230 p. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de Lavras, Lavras, 2022.https://repositorio.ufla.br/handle/1/50244O teste de software é parte do ciclo de desenvolvimento de software, sendo o processo de executar as tarefas do sistema cujo objetivo principal é identificar se o software se comporta conforme foi especificado. O teste também tem como objetivo identificar defeitos no código produzido. Durante esse processo, os desenvolvedores e testadores podem incluir más escolhas de projeto ou implementação do código de teste, levando a inserção dos denominados test smells. Test smells são más escolhas de design ou de implementação do código de teste e sua presença pode torna-lo ineficaz em encontrar bugs, gerando retrabalho e custos adicionais. Test smells também podem dificultar a compreensão e manutenibilidade do código. Além disso, assim como qualquer artefato de software, o código de teste requer a avaliação da qualidade e manutenção. A manutenção do código de teste pode ocorrer devido a identificação de problemas no código e a evolução do código de produção. Ao longo da evolução do código de teste alguns test smells podem ser removidos e outros podem ser inseridos. Para visualizar a evolução de sistemas de software, têm sido utilizadas técnicas de visualização de software, cujo objetivo é transformar o código de produção em uma representação visual para facilitar a sua compreensão. Apesar dessas técnicas contribuírem para visualizar a evolução de sistemas de software, essa abordagem não abrange o código de teste para visualização de test smells. Dessa forma, o objetivo desse trabalho foi propor uma abordagem para visualizar a evolução dos test smells no código de teste e seu comportamento, por exemplo, se houve aumento ou diminuição de test smells, e visualizar os possíveis autores pela sua inclusão. Foi proposta uma abordagem que definiu três estatrégias visuais (TSInstant, TSEvolution e TSAuthor) e uma ferramenta que implementa essa abordagem através de três técnicas de visualização de software (Graph View, Treemap View e Timeline View) para 21 test smells. Essa abordagem foi implementada em uma ferramenta denominada TSVizzEvolution e foi avaliada por meio de um experimento controlado. Essas visualizações podem ajudar os testadores e demais envolvidos nas atividades de teste de software a melhorar a qualidade do código de teste.Software testing is part of the software development cycle, being the process of performing system tasks whose main objective is to identify whether the software behaves as specified. Testing also aims to identify defects in the code produced. During this process, developers and testers may include poor design or implementation choices in the test code, leading to the insertion of so-called test smells. Test smells are bad design or implementation choices for test code and their presence can make it ineffective at finding bugs, generating rework and additional costs. Test smells can also make code difficult to understand and maintain. Also, like any software artifact, test code requires quality and maintainability assessment. Test code maintenance can occur due to the identification of code problems and the evolution of the production code. As the test code evolves, some test smells may be removed and others may be inserted. To visualize the evolution of software systems, software visualization techniques have been used, whose objective is to transform the production code into a visual representation to facilitate its understanding. Although these techniques help to visualize the evolution of software systems, this approach does not cover test code to visualize test smells. Thus, the objective of this work was to propose an approach to visualize the evolution of test smells in the test code and its behavior, for example, if there was an increase or decrease of test smells, and visualize the possible authors for their inclusion. An approach was proposed that defined three visual strategies (TSInstant, TSEvolution and TSAuthor) and a tool that implements this approach through three software visualization techniques (Graph View, Treemap View and Timeline View) for 21 types of test smells. This approach was implemented in a tool called TSVizzEvolution and was evaluated through a controlled experiment. These views can help testers and others involved in software testing activities improve the quality of test code.Universidade Federal de LavrasPrograma de Pós-Graduação em Ciência da ComputaçãoUFLAbrasilDepartamento de Ciência da ComputaçãoCiência da ComputaçãoTest SmellsVisualização de softwareEvolução de softwareJava (Linguagem de programação de computador)Software visualizationSoftware evolutionUma abordagem visual para a evolução de test smells em software JavaA visual approach for evolution of test smells in java softwareinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisCosta, Heitor Augustus XavierMachado, Ivan Do CarmoSoares, Larissa Rochahttp://lattes.cnpq.br/9983008005648552Cruz, Adriana Priscila Santosinfo:eu-repo/semantics/openAccessporreponame:Repositório Institucional da UFLAinstname:Universidade Federal de Lavras (UFLA)instacron:UFLAORIGINALDISSERTAÇÃO_Uma abordagem visual para a evolução de test smells em software Java.pdfDISSERTAÇÃO_Uma abordagem visual para a evolução de test smells em software Java.pdfapplication/pdf3663605https://repositorio.ufla.br/bitstreams/8ec8265f-39e8-4a3c-946f-1fa7c52204da/downloade38c8c2e8e759afe68970ff63a8685ffMD51trueAnonymousREADLICENSElicense.txtlicense.txttext/plain; charset=utf-8953https://repositorio.ufla.br/bitstreams/80876812-dc47-41d5-9b09-e47062284061/download760884c1e72224de569e74f79eb87ce3MD52falseAnonymousREADTEXTDISSERTAÇÃO_Uma abordagem visual para a evolução de test smells em software Java.pdf.txtDISSERTAÇÃO_Uma abordagem visual para a evolução de test smells em software Java.pdf.txtExtracted texttext/plain102227https://repositorio.ufla.br/bitstreams/536e3e70-5fda-4356-b403-e70459f062bf/download4895bb61bf9ce94f67a20cd35d015c62MD53falseAnonymousREADTHUMBNAILDISSERTAÇÃO_Uma abordagem visual para a evolução de test smells em software Java.pdf.jpgDISSERTAÇÃO_Uma abordagem visual para a evolução de test smells em software Java.pdf.jpgGenerated Thumbnailimage/jpeg3101https://repositorio.ufla.br/bitstreams/ae1a28b8-bf0d-49ac-98f5-1c3f296a3836/downloadfe923bc0d642cface829bb78215ccb3cMD54falseAnonymousREAD1/502442025-08-11 17:29:05.442open.accessoai:repositorio.ufla.br:1/50244https://repositorio.ufla.brRepositório InstitucionalPUBhttps://repositorio.ufla.br/server/oai/requestnivaldo@ufla.br || repositorio.biblioteca@ufla.bropendoar:2025-08-11T20:29:05Repositório Institucional da UFLA - Universidade Federal de Lavras (UFLA)falseREVDTEFSQcOHw4NPIERFIERJU1RSSUJVScOHw4NPIE7Dg08tRVhDTFVTSVZBCk8gcmVmZXJpZG8gYXV0b3I6CmEpIERlY2xhcmEgcXVlIG8gZG9jdW1lbnRvIGVudHJlZ3VlIMOpIHNldSB0cmFiYWxobyBvcmlnaW5hbCwgZSBxdWUKZGV0w6ltIG8gZGlyZWl0byBkZSBjb25jZWRlciBvcyBkaXJlaXRvcyBjb250aWRvcyBuZXN0YSBsaWNlbsOnYS4KRGVjbGFyYSB0YW1iw6ltIHF1ZSBhIGVudHJlZ2EgZG8gZG9jdW1lbnRvIG7Do28gaW5mcmluZ2UsIHRhbnRvIHF1YW50bwpsaGUgw6kgcG9zc8OtdmVsIHNhYmVyLCBvcyBkaXJlaXRvcyBkZSBxdWFscXVlciBvdXRyYSBwZXNzb2Egb3UKZW50aWRhZGUuCmIpIFNlIG8gZG9jdW1lbnRvIGVudHJlZ3VlIGNvbnTDqW0gbWF0ZXJpYWwgZG8gcXVhbCBuw6NvIGRldMOpbSBvcwpkaXJlaXRvcyBkZSBhdXRvciwgZGVjbGFyYSBxdWUgb2J0ZXZlIGF1dG9yaXphw6fDo28gZG8gZGV0ZW50b3IgZG9zCmRpcmVpdG9zIGRlIGF1dG9yIHBhcmEgY29uY2VkZXIgw6AgVW5pdmVyc2lkYWRlIEZlZGVyYWwgZGUgTGF2cmFzIG9zCmRpcmVpdG9zIHJlcXVlcmlkb3MgcG9yIGVzdGEgbGljZW7Dp2EsIGUgcXVlIGVzc2UgbWF0ZXJpYWwgY3Vqb3MKZGlyZWl0b3Mgc8OjbyBkZSB0ZXJjZWlyb3MgZXN0w6EgY2xhcmFtZW50ZSBpZGVudGlmaWNhZG8gZSByZWNvbmhlY2lkbwpubyB0ZXh0byBvdSBjb250ZcO6ZG8gZG8gZG9jdW1lbnRvIGVudHJlZ3VlLiBTZSBvIGRvY3VtZW50byBlbnRyZWd1ZSDDqQpiYXNlYWRvIGVtIHRyYWJhbGhvIGZpbmFuY2lhZG8gb3UgYXBvaWFkbyBwb3Igb3V0cmEgaW5zdGl0dWnDp8OjbyBxdWUKbsOjbyBhIFVuaXZlcnNpZGFkZSBGZWRlcmFsIGRlIExhdnJhcywgZGVjbGFyYSBxdWUgY3VtcHJpdSBxdWFpc3F1ZXIKb2JyaWdhw6fDtWVzIGV4aWdpZGFzIHBlbG8gcmVzcGVjdGl2byBjb250cmF0byBvdSBhY29yZG8uCgo=
dc.title.pt_BR.fl_str_mv Uma abordagem visual para a evolução de test smells em software Java
dc.title.alternative.pt_BR.fl_str_mv A visual approach for evolution of test smells in java software
title Uma abordagem visual para a evolução de test smells em software Java
spellingShingle Uma abordagem visual para a evolução de test smells em software Java
Cruz, Adriana Priscila Santos
Ciência da Computação
Test Smells
Visualização de software
Evolução de software
Java (Linguagem de programação de computador)
Software visualization
Software evolution
title_short Uma abordagem visual para a evolução de test smells em software Java
title_full Uma abordagem visual para a evolução de test smells em software Java
title_fullStr Uma abordagem visual para a evolução de test smells em software Java
title_full_unstemmed Uma abordagem visual para a evolução de test smells em software Java
title_sort Uma abordagem visual para a evolução de test smells em software Java
author Cruz, Adriana Priscila Santos
author_facet Cruz, Adriana Priscila Santos
author_role author
dc.contributor.advisor1.fl_str_mv Costa, Heitor Augustus Xavier
dc.contributor.referee1.fl_str_mv Machado, Ivan Do Carmo
dc.contributor.referee2.fl_str_mv Soares, Larissa Rocha
dc.contributor.authorLattes.fl_str_mv http://lattes.cnpq.br/9983008005648552
dc.contributor.author.fl_str_mv Cruz, Adriana Priscila Santos
contributor_str_mv Costa, Heitor Augustus Xavier
Machado, Ivan Do Carmo
Soares, Larissa Rocha
dc.subject.cnpq.fl_str_mv Ciência da Computação
topic Ciência da Computação
Test Smells
Visualização de software
Evolução de software
Java (Linguagem de programação de computador)
Software visualization
Software evolution
dc.subject.por.fl_str_mv Test Smells
Visualização de software
Evolução de software
Java (Linguagem de programação de computador)
Software visualization
Software evolution
description O teste de software é parte do ciclo de desenvolvimento de software, sendo o processo de executar as tarefas do sistema cujo objetivo principal é identificar se o software se comporta conforme foi especificado. O teste também tem como objetivo identificar defeitos no código produzido. Durante esse processo, os desenvolvedores e testadores podem incluir más escolhas de projeto ou implementação do código de teste, levando a inserção dos denominados test smells. Test smells são más escolhas de design ou de implementação do código de teste e sua presença pode torna-lo ineficaz em encontrar bugs, gerando retrabalho e custos adicionais. Test smells também podem dificultar a compreensão e manutenibilidade do código. Além disso, assim como qualquer artefato de software, o código de teste requer a avaliação da qualidade e manutenção. A manutenção do código de teste pode ocorrer devido a identificação de problemas no código e a evolução do código de produção. Ao longo da evolução do código de teste alguns test smells podem ser removidos e outros podem ser inseridos. Para visualizar a evolução de sistemas de software, têm sido utilizadas técnicas de visualização de software, cujo objetivo é transformar o código de produção em uma representação visual para facilitar a sua compreensão. Apesar dessas técnicas contribuírem para visualizar a evolução de sistemas de software, essa abordagem não abrange o código de teste para visualização de test smells. Dessa forma, o objetivo desse trabalho foi propor uma abordagem para visualizar a evolução dos test smells no código de teste e seu comportamento, por exemplo, se houve aumento ou diminuição de test smells, e visualizar os possíveis autores pela sua inclusão. Foi proposta uma abordagem que definiu três estatrégias visuais (TSInstant, TSEvolution e TSAuthor) e uma ferramenta que implementa essa abordagem através de três técnicas de visualização de software (Graph View, Treemap View e Timeline View) para 21 test smells. Essa abordagem foi implementada em uma ferramenta denominada TSVizzEvolution e foi avaliada por meio de um experimento controlado. Essas visualizações podem ajudar os testadores e demais envolvidos nas atividades de teste de software a melhorar a qualidade do código de teste.
publishDate 2022
dc.date.submitted.none.fl_str_mv 2022-03-28
dc.date.accessioned.fl_str_mv 2022-06-15T17:27:56Z
dc.date.available.fl_str_mv 2022-06-15T17:27:56Z
dc.date.issued.fl_str_mv 2022-06-15
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.citation.fl_str_mv CRUZ, A. P. S. Uma abordagem visual para a evolução de test smells em software Java. 2022. 230 p. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de Lavras, Lavras, 2022.
dc.identifier.uri.fl_str_mv https://repositorio.ufla.br/handle/1/50244
identifier_str_mv CRUZ, A. P. S. Uma abordagem visual para a evolução de test smells em software Java. 2022. 230 p. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de Lavras, Lavras, 2022.
url https://repositorio.ufla.br/handle/1/50244
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Universidade Federal de Lavras
dc.publisher.program.fl_str_mv Programa de Pós-Graduação em Ciência da Computação
dc.publisher.initials.fl_str_mv UFLA
dc.publisher.country.fl_str_mv brasil
dc.publisher.department.fl_str_mv Departamento de Ciência da Computação
publisher.none.fl_str_mv Universidade Federal de Lavras
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFLA
instname:Universidade Federal de Lavras (UFLA)
instacron:UFLA
instname_str Universidade Federal de Lavras (UFLA)
instacron_str UFLA
institution UFLA
reponame_str Repositório Institucional da UFLA
collection Repositório Institucional da UFLA
bitstream.url.fl_str_mv https://repositorio.ufla.br/bitstreams/8ec8265f-39e8-4a3c-946f-1fa7c52204da/download
https://repositorio.ufla.br/bitstreams/80876812-dc47-41d5-9b09-e47062284061/download
https://repositorio.ufla.br/bitstreams/536e3e70-5fda-4356-b403-e70459f062bf/download
https://repositorio.ufla.br/bitstreams/ae1a28b8-bf0d-49ac-98f5-1c3f296a3836/download
bitstream.checksum.fl_str_mv e38c8c2e8e759afe68970ff63a8685ff
760884c1e72224de569e74f79eb87ce3
4895bb61bf9ce94f67a20cd35d015c62
fe923bc0d642cface829bb78215ccb3c
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFLA - Universidade Federal de Lavras (UFLA)
repository.mail.fl_str_mv nivaldo@ufla.br || repositorio.biblioteca@ufla.br
_version_ 1854947810284142592