RAIDE: uma abordagem semi-automatizada para identificação e refatoração de test smells

Detalhes bibliográficos
Autor(a) principal: Santana, Railana dos Santos
Data de Publicação: 2020
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Institucional da UFBA
Texto Completo: http://repositorio.ufba.br/ri/handle/ri/33621
Resumo: Teste de unidade é um tipo específico de teste que lida com as menores unidades do sistema. Ele representa o primeiro teste após a implementação do componente. Quando a implementação dos testes de unidade não segue boas práticas, é provável que anti-padrões sejam introduzidos no código. Anti-padrões nos testes, também conhecidos como test smells, são más decisões para projetar e implementar código de teste. Os test smells prejudicam a qualidade do código de teste e reduzem a capacidade de os desenvolvedores interagirem com o código de teste, o que dificulta a compreensão, leitura e, consequentemente, a manutenibilidade e evolução do sistema. Uma estratégia para remover test smells é a refatoração do código de teste. Poucos estudos na literatura oferecem suporte automatizado para a detecção e refatoração de test smells em projetos Java com o framework JUnit. Assim, o presente estudo fornece uma abordagem semi-automatizada para auxiliar a identificação de test smells e sugerir refatorações para o código de teste em projetos que utilizam as tecnologias Java e JUnit. A abordagem proposta é apoiada pela ferramenta RAIDE, desenvolvida de modo integrado ao Eclipse IDE, para lidar com código de teste desenvolvido em Java. O RAIDE oferece suporte a dois test smells: Assertion Roulette e Duplicate Assert. Apesar de existir outras ferramentas capazes de identificar test smells, até onde sabemos, ainda não há evidências de ferramentas que forneçam suporte automatizado a refatoração de test smells. Além disso, as ferramentas existentes não fornecem interfaces amigáveis e integradas a uma IDE para a identificação de test smells. Para avaliar como a abordagem proposta pode contribuir com a melhoria na qualidade do código de teste, realizamos um estudo experimental. Comparamos nossa ferramenta com o estado da arte e verificamos que o uso da abordagem RAIDE possibilitou a identificação de test smells de forma mais fácil e rápida. Além disso, RAIDE também se mostrou eficiente na refatoração de métodos de teste. Como RAIDE é uma ferramenta integrada ao Eclipse IDE, os processos de identificação e refatoração são mais rápidos e intuitivos em comparação com o estado da arte e a refatoração manual,uma vez que com o RAIDE é possível realizar a identificação de test smells e a refatoração com alguns cliques em apenas alguns segundos.
id UFBA-2_370edbb7c240f9a07270ae8074ccca1b
oai_identifier_str oai:repositorio.ufba.br:ri/33621
network_acronym_str UFBA-2
network_name_str Repositório Institucional da UFBA
repository_id_str 1932
spelling Santana, Railana dos SantosSantana, Railana dos SantosMachado, Ivan do CarmoSoares, Larissa RochaNeves, Vânia de OliveriaSchobbens, Pierre-Yves2021-06-22T17:23:05Z2021-06-22T17:23:05Z2021-06-222020-07-03http://repositorio.ufba.br/ri/handle/ri/33621Teste de unidade é um tipo específico de teste que lida com as menores unidades do sistema. Ele representa o primeiro teste após a implementação do componente. Quando a implementação dos testes de unidade não segue boas práticas, é provável que anti-padrões sejam introduzidos no código. Anti-padrões nos testes, também conhecidos como test smells, são más decisões para projetar e implementar código de teste. Os test smells prejudicam a qualidade do código de teste e reduzem a capacidade de os desenvolvedores interagirem com o código de teste, o que dificulta a compreensão, leitura e, consequentemente, a manutenibilidade e evolução do sistema. Uma estratégia para remover test smells é a refatoração do código de teste. Poucos estudos na literatura oferecem suporte automatizado para a detecção e refatoração de test smells em projetos Java com o framework JUnit. Assim, o presente estudo fornece uma abordagem semi-automatizada para auxiliar a identificação de test smells e sugerir refatorações para o código de teste em projetos que utilizam as tecnologias Java e JUnit. A abordagem proposta é apoiada pela ferramenta RAIDE, desenvolvida de modo integrado ao Eclipse IDE, para lidar com código de teste desenvolvido em Java. O RAIDE oferece suporte a dois test smells: Assertion Roulette e Duplicate Assert. Apesar de existir outras ferramentas capazes de identificar test smells, até onde sabemos, ainda não há evidências de ferramentas que forneçam suporte automatizado a refatoração de test smells. Além disso, as ferramentas existentes não fornecem interfaces amigáveis e integradas a uma IDE para a identificação de test smells. Para avaliar como a abordagem proposta pode contribuir com a melhoria na qualidade do código de teste, realizamos um estudo experimental. Comparamos nossa ferramenta com o estado da arte e verificamos que o uso da abordagem RAIDE possibilitou a identificação de test smells de forma mais fácil e rápida. Além disso, RAIDE também se mostrou eficiente na refatoração de métodos de teste. Como RAIDE é uma ferramenta integrada ao Eclipse IDE, os processos de identificação e refatoração são mais rápidos e intuitivos em comparação com o estado da arte e a refatoração manual,uma vez que com o RAIDE é possível realizar a identificação de test smells e a refatoração com alguns cliques em apenas alguns segundos.Unit testing is a specific type of test that deals with the smallest units in the system. It represents the first test after the component is implemented. When the implementation of unit tests does not follow good practices, anti-patterns are likely to be introduced in the code. Anti-patterns in tests, also known as test smells, are poor decisions for designing and implementing test code. Test smells impair the quality of the test code and reduce the ability of developers to interact with the test code, making it difficult to understand, read, and, consequently, maintain and evolve the system. One strategy to remove test smells is to refactor the test code. Few studies in the literature offer automated support for the detection and refactoring of test smells in Java projects with the JUnit framework. Therefore, this study provides a semi-automated approach to assist the identification of test smells and suggest refactorings for the test code in projects using Java and JUnit technologies. The proposed approach is supported by the RefActorIng test Design Errors (RAIDE) tool, an Eclipse IDE plugin, to deal with Java test code. RAIDE supports two test smells, Assertion Roulette and Duplicate Assert. Although there are other tools capable of identifying test smells, as far as we know, there is no evidence of tools that provide automated support for test smells refactoring. In addition, we are unaware of a user-friendly and IDE-integrated tool to identify test smells. To assess how the proposed approach can improve the quality of the test code, we carried out an experimental study. We compared RAIDE with the state-of-the-art tool and found that when using RAIDE, test smells are easier and faster to be identified. Also, RAIDE proved to be efficient in refactoring test methods. The identification and refactoring processes are faster and more intuitive compared to the state-of-the-art tool and the manual refactoring. With RAIDE, it is possible to perform test smells identification and refactoring with a few clicks in a few seconds.Submitted by Railana Santana (railanassantana@gmail.com) on 2021-04-15T18:41:37Z No. of bitstreams: 1 Dissertacao_RailanaSantana_VersaoFinal.pdf: 15244135 bytes, checksum: 1889aba42d3a53095fcb894cb5644948 (MD5)Approved for entry into archive by Solange Rocha (soluny@gmail.com) on 2021-06-22T17:23:05Z (GMT) No. of bitstreams: 1 Dissertacao_RailanaSantana_VersaoFinal.pdf: 15244135 bytes, checksum: 1889aba42d3a53095fcb894cb5644948 (MD5)Made available in DSpace on 2021-06-22T17:23:05Z (GMT). No. of bitstreams: 1 Dissertacao_RailanaSantana_VersaoFinal.pdf: 15244135 bytes, checksum: 1889aba42d3a53095fcb894cb5644948 (MD5)Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES)Ciências Exatas e da TerraCiência da ComputaçãoMetodologia e Técnicas da ComputaçãoEngenharia de SoftwareTest SmellsTeste de UnidadeRefatoração de testeTeste de software automatizado.Software - RefatoraçãoSoftware - TestesRefActorIng test Design Errors (RAIDE)RAIDE: uma abordagem semi-automatizada para identificação e refatoração de test smellsinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisUniversidade Federal da BahiaInstituto de Matemática e EstatísticaDepartamento de Ciência da Computaçãoem Ciência da ComputaçãoUFBAbrasilinfo:eu-repo/semantics/openAccessporreponame:Repositório Institucional da UFBAinstname:Universidade Federal da Bahia (UFBA)instacron:UFBAORIGINALDissertacao_RailanaSantana_VersaoFinal.pdfDissertacao_RailanaSantana_VersaoFinal.pdfapplication/pdf15244135https://repositorio.ufba.br/bitstream/ri/33621/1/Dissertacao_RailanaSantana_VersaoFinal.pdf1889aba42d3a53095fcb894cb5644948MD51LICENSElicense.txtlicense.txttext/plain1442https://repositorio.ufba.br/bitstream/ri/33621/2/license.txt817035eff4c4c7dda1d546e170ee2a1aMD52TEXTDissertacao_RailanaSantana_VersaoFinal.pdf.txtDissertacao_RailanaSantana_VersaoFinal.pdf.txtExtracted texttext/plain325724https://repositorio.ufba.br/bitstream/ri/33621/3/Dissertacao_RailanaSantana_VersaoFinal.pdf.txt6becc93a16885b0750a82f5938f27850MD53ri/336212022-07-05 14:03:49.539oai:repositorio.ufba.br:ri/33621VGVybW8gZGUgTGljZW7vv71hLCBu77+9byBleGNsdXNpdm8sIHBhcmEgbyBkZXDvv71zaXRvIG5vIFJlcG9zaXTvv71yaW8gSW5zdGl0dWNpb25hbCBkYSBVRkJBLgoKIFBlbG8gcHJvY2Vzc28gZGUgc3VibWlzc8ODwqNvIGRlIGRvY3VtZW50b3MsIG8gYXV0b3Igb3Ugc2V1IHJlcHJlc2VudGFudGUgbGVnYWwsIGFvIGFjZWl0YXIgZXNzZSB0ZXJtbyBkZSBsaWNlbsODwqdhLCBjb25jZWRlIGFvIFJlcG9zaXTDg8KzcmlvIEluc3RpdHVjaW9uYWwgZGEgVW5pdmVyc2lkYWRlIEZlZGVyYWwgZGEgQmFoaWEgbyBkaXJlaXRvIGRlIG1hbnRlciB1bWEgY8ODwrNwaWEgZW0gc2V1IHJlcG9zaXTDg8KzcmlvIGNvbSBhIGZpbmFsaWRhZGUsIHByaW1laXJhLCBkZSBwcmVzZXJ2YcODwqfDg8Kjby4gCgpFc3NlcyB0ZXJtb3MsIG7Dg8KjbyBleGNsdXNpdm9zLCBtYW50w4PCqW0gb3MgZGlyZWl0b3MgZGUgYXV0b3IvY29weXJpZ2h0LCBtYXMgZW50ZW5kZSBvIGRvY3VtZW50byBjb21vIHBhcnRlIGRvIGFjZXJ2byBpbnRlbGVjdHVhbCBkZXNzYSBVbml2ZXJzaWRhZGUuCgogUGFyYSBvcyBkb2N1bWVudG9zIHB1YmxpY2Fkb3MgY29tIHJlcGFzc2UgZGUgZGlyZWl0b3MgZGUgZGlzdHJpYnVpw4PCp8ODwqNvLCBlc3NlIHRlcm1vIGRlIGxpY2Vuw4PCp2EgZW50ZW5kZSBxdWU6CgogTWFudGVuZG8gb3MgZGlyZWl0b3MgYXV0b3JhaXMsIHJlcGFzc2Fkb3MgYSB0ZXJjZWlyb3MsIGVtIGNhc28gZGUgcHVibGljYcODwqfDg8K1ZXMsIG8gcmVwb3NpdMODwrNyaW8gcG9kZSByZXN0cmluZ2lyIG8gYWNlc3NvIGFvIHRleHRvIGludGVncmFsLCBtYXMgbGliZXJhIGFzIGluZm9ybWHDg8Knw4PCtWVzIHNvYnJlIG8gZG9jdW1lbnRvIChNZXRhZGFkb3MgZGVzY3JpdGl2b3MpLgoKIERlc3RhIGZvcm1hLCBhdGVuZGVuZG8gYW9zIGFuc2Vpb3MgZGVzc2EgdW5pdmVyc2lkYWRlIGVtIG1hbnRlciBzdWEgcHJvZHXDg8Knw4PCo28gY2llbnTDg8KtZmljYSBjb20gYXMgcmVzdHJpw4PCp8ODwrVlcyBpbXBvc3RhcyBwZWxvcyBlZGl0b3JlcyBkZSBwZXJpw4PCs2RpY29zLgoKIFBhcmEgYXMgcHVibGljYcODwqfDg8K1ZXMgc2VtIGluaWNpYXRpdmFzIHF1ZSBzZWd1ZW0gYSBwb2zDg8KtdGljYSBkZSBBY2Vzc28gQWJlcnRvLCBvcyBkZXDDg8Kzc2l0b3MgY29tcHVsc8ODwrNyaW9zIG5lc3NlIHJlcG9zaXTDg8KzcmlvIG1hbnTDg8KpbSBvcyBkaXJlaXRvcyBhdXRvcmFpcywgbWFzIG1hbnTDg8KpbSBhY2Vzc28gaXJyZXN0cml0byBhb3MgbWV0YWRhZG9zIGUgdGV4dG8gY29tcGxldG8uIEFzc2ltLCBhIGFjZWl0YcODwqfDg8KjbyBkZXNzZSB0ZXJtbyBuw4PCo28gbmVjZXNzaXRhIGRlIGNvbnNlbnRpbWVudG8gcG9yIHBhcnRlIGRlIGF1dG9yZXMvZGV0ZW50b3JlcyBkb3MgZGlyZWl0b3MsIHBvciBlc3RhcmVtIGVtIGluaWNpYXRpdmFzIGRlIGFjZXNzbyBhYmVydG8uCg==Repositório InstitucionalPUBhttp://192.188.11.11:8080/oai/requestopendoar:19322022-07-05T17:03:49Repositório Institucional da UFBA - Universidade Federal da Bahia (UFBA)false
dc.title.pt_BR.fl_str_mv RAIDE: uma abordagem semi-automatizada para identificação e refatoração de test smells
title RAIDE: uma abordagem semi-automatizada para identificação e refatoração de test smells
spellingShingle RAIDE: uma abordagem semi-automatizada para identificação e refatoração de test smells
Santana, Railana dos Santos
Ciências Exatas e da Terra
Ciência da Computação
Metodologia e Técnicas da Computação
Engenharia de Software
Test Smells
Teste de Unidade
Refatoração de teste
Teste de software automatizado.
Software - Refatoração
Software - Testes
RefActorIng test Design Errors (RAIDE)
title_short RAIDE: uma abordagem semi-automatizada para identificação e refatoração de test smells
title_full RAIDE: uma abordagem semi-automatizada para identificação e refatoração de test smells
title_fullStr RAIDE: uma abordagem semi-automatizada para identificação e refatoração de test smells
title_full_unstemmed RAIDE: uma abordagem semi-automatizada para identificação e refatoração de test smells
title_sort RAIDE: uma abordagem semi-automatizada para identificação e refatoração de test smells
author Santana, Railana dos Santos
author_facet Santana, Railana dos Santos
author_role author
dc.contributor.author.fl_str_mv Santana, Railana dos Santos
Santana, Railana dos Santos
dc.contributor.advisor1.fl_str_mv Machado, Ivan do Carmo
dc.contributor.advisor-co1.fl_str_mv Soares, Larissa Rocha
dc.contributor.referee1.fl_str_mv Neves, Vânia de Oliveria
Schobbens, Pierre-Yves
contributor_str_mv Machado, Ivan do Carmo
Soares, Larissa Rocha
Neves, Vânia de Oliveria
Schobbens, Pierre-Yves
dc.subject.cnpq.fl_str_mv Ciências Exatas e da Terra
Ciência da Computação
Metodologia e Técnicas da Computação
Engenharia de Software
topic Ciências Exatas e da Terra
Ciência da Computação
Metodologia e Técnicas da Computação
Engenharia de Software
Test Smells
Teste de Unidade
Refatoração de teste
Teste de software automatizado.
Software - Refatoração
Software - Testes
RefActorIng test Design Errors (RAIDE)
dc.subject.por.fl_str_mv Test Smells
Teste de Unidade
Refatoração de teste
Teste de software automatizado.
Software - Refatoração
Software - Testes
RefActorIng test Design Errors (RAIDE)
description Teste de unidade é um tipo específico de teste que lida com as menores unidades do sistema. Ele representa o primeiro teste após a implementação do componente. Quando a implementação dos testes de unidade não segue boas práticas, é provável que anti-padrões sejam introduzidos no código. Anti-padrões nos testes, também conhecidos como test smells, são más decisões para projetar e implementar código de teste. Os test smells prejudicam a qualidade do código de teste e reduzem a capacidade de os desenvolvedores interagirem com o código de teste, o que dificulta a compreensão, leitura e, consequentemente, a manutenibilidade e evolução do sistema. Uma estratégia para remover test smells é a refatoração do código de teste. Poucos estudos na literatura oferecem suporte automatizado para a detecção e refatoração de test smells em projetos Java com o framework JUnit. Assim, o presente estudo fornece uma abordagem semi-automatizada para auxiliar a identificação de test smells e sugerir refatorações para o código de teste em projetos que utilizam as tecnologias Java e JUnit. A abordagem proposta é apoiada pela ferramenta RAIDE, desenvolvida de modo integrado ao Eclipse IDE, para lidar com código de teste desenvolvido em Java. O RAIDE oferece suporte a dois test smells: Assertion Roulette e Duplicate Assert. Apesar de existir outras ferramentas capazes de identificar test smells, até onde sabemos, ainda não há evidências de ferramentas que forneçam suporte automatizado a refatoração de test smells. Além disso, as ferramentas existentes não fornecem interfaces amigáveis e integradas a uma IDE para a identificação de test smells. Para avaliar como a abordagem proposta pode contribuir com a melhoria na qualidade do código de teste, realizamos um estudo experimental. Comparamos nossa ferramenta com o estado da arte e verificamos que o uso da abordagem RAIDE possibilitou a identificação de test smells de forma mais fácil e rápida. Além disso, RAIDE também se mostrou eficiente na refatoração de métodos de teste. Como RAIDE é uma ferramenta integrada ao Eclipse IDE, os processos de identificação e refatoração são mais rápidos e intuitivos em comparação com o estado da arte e a refatoração manual,uma vez que com o RAIDE é possível realizar a identificação de test smells e a refatoração com alguns cliques em apenas alguns segundos.
publishDate 2020
dc.date.submitted.none.fl_str_mv 2020-07-03
dc.date.accessioned.fl_str_mv 2021-06-22T17:23:05Z
dc.date.available.fl_str_mv 2021-06-22T17:23:05Z
dc.date.issued.fl_str_mv 2021-06-22
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.uri.fl_str_mv http://repositorio.ufba.br/ri/handle/ri/33621
url http://repositorio.ufba.br/ri/handle/ri/33621
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 da Bahia
Instituto de Matemática e Estatística
Departamento de Ciência da Computação
dc.publisher.program.fl_str_mv em Ciência da Computação
dc.publisher.initials.fl_str_mv UFBA
dc.publisher.country.fl_str_mv brasil
publisher.none.fl_str_mv Universidade Federal da Bahia
Instituto de Matemática e Estatística
Departamento de Ciência da Computação
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFBA
instname:Universidade Federal da Bahia (UFBA)
instacron:UFBA
instname_str Universidade Federal da Bahia (UFBA)
instacron_str UFBA
institution UFBA
reponame_str Repositório Institucional da UFBA
collection Repositório Institucional da UFBA
bitstream.url.fl_str_mv https://repositorio.ufba.br/bitstream/ri/33621/1/Dissertacao_RailanaSantana_VersaoFinal.pdf
https://repositorio.ufba.br/bitstream/ri/33621/2/license.txt
https://repositorio.ufba.br/bitstream/ri/33621/3/Dissertacao_RailanaSantana_VersaoFinal.pdf.txt
bitstream.checksum.fl_str_mv 1889aba42d3a53095fcb894cb5644948
817035eff4c4c7dda1d546e170ee2a1a
6becc93a16885b0750a82f5938f27850
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFBA - Universidade Federal da Bahia (UFBA)
repository.mail.fl_str_mv
_version_ 1808459626274881536