A framework for test case prioritization in the continuous software engineering

Detalhes bibliográficos
Autor(a) principal: Campos Junior, Heleno de Souza
Data de Publicação: 2018
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Institucional da UFJF
Texto Completo: https://repositorio.ufjf.br/jspui/handle/ufjf/8026
Resumo: Testes de regressão são executados após cada mudança no software. Em ambientes de desenvolvimento de software que adotam práticas da Engenharia de Software Contínua, como a Integração contínua, por exemplo, software é modificado, e testado diversas vezes em curtos prazos. Cada execução dos testes pode levar horas para terminar, gerando atraso em relação à descoberta de falhas no projeto. Para prevenir esse atraso, técnicas de otimização são utilizadas. Uma delas é a priorização de casos de testes (TCP). Nessa técnica, a execução dos testes é reordenada de acordo com um objetivo, que normalmente é a detecção de falhas. Dessa forma, testes que têm maior probabilidade de falhas são executados primeiro. Um problema com essa abordagem é que existem diversas técnicas na literatura, mas pouca evidência em relação ao seu uso. Além disso, quase não existe infra estrutura para apoiar a adoção dessas técnicas no contexto industrial. O objetivo deste trabalho é planejar e implementar um framework que permita o uso, experimentação e implementação de técnicas de TCP. Esperamos que isso ajude praticantes a adotar essas técnicas no contexto industrial, principalmente da engenharia de software continua. Esperamos também que a criação dessa infra estrutura ajude pesquisadores a executar mais estudos experimentais sobre a eficiência do uso dessas técnicas. Para mostrar a viabilidade do framework proposto, é executado um estudo experimental com 16 técnicas de priorização diferentes, executadas em um total de 22 versões de 2 projetos open source. Os resultados coletados sugerem que o uso das técnicas de priorização resultam em retornos mais rápidos em relação à existência de falhas nos projetos, possivelmente resultando em ciclos mais rápidos de desenvolvimento.
id UFJF_6ad675fd35826a87b1fefd768e5040ef
oai_identifier_str oai:hermes.cpd.ufjf.br:ufjf/8026
network_acronym_str UFJF
network_name_str Repositório Institucional da UFJF
repository_id_str
spelling Araújo, Marco Antônio Pereirahttp://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4763431J6Spínola, Rodrigo Oliveirahttp://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4773436Z2Menezes, Victor Ströele de Andradehttp://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4735686P8http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4369386J8Campos Junior, Heleno de Souza2018-11-23T12:26:30Z2018-10-302018-11-23T12:26:30Z2018-09-19https://repositorio.ufjf.br/jspui/handle/ufjf/8026Testes de regressão são executados após cada mudança no software. Em ambientes de desenvolvimento de software que adotam práticas da Engenharia de Software Contínua, como a Integração contínua, por exemplo, software é modificado, e testado diversas vezes em curtos prazos. Cada execução dos testes pode levar horas para terminar, gerando atraso em relação à descoberta de falhas no projeto. Para prevenir esse atraso, técnicas de otimização são utilizadas. Uma delas é a priorização de casos de testes (TCP). Nessa técnica, a execução dos testes é reordenada de acordo com um objetivo, que normalmente é a detecção de falhas. Dessa forma, testes que têm maior probabilidade de falhas são executados primeiro. Um problema com essa abordagem é que existem diversas técnicas na literatura, mas pouca evidência em relação ao seu uso. Além disso, quase não existe infra estrutura para apoiar a adoção dessas técnicas no contexto industrial. O objetivo deste trabalho é planejar e implementar um framework que permita o uso, experimentação e implementação de técnicas de TCP. Esperamos que isso ajude praticantes a adotar essas técnicas no contexto industrial, principalmente da engenharia de software continua. Esperamos também que a criação dessa infra estrutura ajude pesquisadores a executar mais estudos experimentais sobre a eficiência do uso dessas técnicas. Para mostrar a viabilidade do framework proposto, é executado um estudo experimental com 16 técnicas de priorização diferentes, executadas em um total de 22 versões de 2 projetos open source. Os resultados coletados sugerem que o uso das técnicas de priorização resultam em retornos mais rápidos em relação à existência de falhas nos projetos, possivelmente resultando em ciclos mais rápidos de desenvolvimento.Regression tests are executed after every change in software. In a software development environment that adopts Continuous Software Engineering practices such as Continuous Integration, software is changed, built and tested many times in a short period. Each execution can take hours to finish, delaying feedback about failures to the developer. To prevent this, regression test optimization techniques are used. One such technique is test case prioritization (TCP), which reorder the execution of the test cases according to some goal. The most common goal is fault detection, in which test cases are ordered so that those that have higher probability of detecting faults are executed first. One problem with this approach is that there are lots of different available techniques in the literature, but the amount of evidence of its use is low. Furthermore, there is almost no infrastructure support to adopt those techniques at the industry context. The goal of this work is to design and implement a framework that allows the use, experimentation and implementation of TCP techniques. We hope that this will help practitioners on adopting these techniques at the industry context, more specifically, in the continuous software engineering environment. We also hope that creating this infrastructure will encourage researchers on performing more empirical studies regarding test case prioritization techniques effectiveness. In order to show the feasibility of the proposed framework, we perform an empirical study with 16 different TCP techniques executed on a total of 22 versions of 2 different open source projects. Results suggest that using those TCP techniques result in faster feedback about the existence of failures in the projects, possibly resulting in shorter development cycles.CAPES - Coordenação de Aperfeiçoamento de Pessoal de Nível SuperiorengUniversidade Federal de Juiz de Fora (UFJF)Programa de Pós-graduação em Ciência da ComputaçãoUFJFBrasilICE – Instituto de Ciências ExatasCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOManutenção de softwareEngenharia de softwareTeste de softwareIntegração contínuaSoftware maintenanceSoftware engineeringSoftware testingContinuous integrationA framework for test case prioritization in the continuous software engineeringinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFJFinstname:Universidade Federal de Juiz de Fora (UFJF)instacron:UFJFTHUMBNAILhelenodesouzacamposjunior.pdf.jpghelenodesouzacamposjunior.pdf.jpgGenerated Thumbnailimage/jpeg1241https://repositorio.ufjf.br/jspui/bitstream/ufjf/8026/4/helenodesouzacamposjunior.pdf.jpgc2c4e8aa587a107260b10080ede0fb35MD54ORIGINALhelenodesouzacamposjunior.pdfhelenodesouzacamposjunior.pdfapplication/pdf1434985https://repositorio.ufjf.br/jspui/bitstream/ufjf/8026/1/helenodesouzacamposjunior.pdf4307be9bfd2ca9825bcd2ce10bfc824eMD51LICENSElicense.txtlicense.txttext/plain; charset=utf-82197https://repositorio.ufjf.br/jspui/bitstream/ufjf/8026/2/license.txt000e18a5aee6ca21bb5811ddf55fc37bMD52TEXThelenodesouzacamposjunior.pdf.txthelenodesouzacamposjunior.pdf.txtExtracted texttext/plain209570https://repositorio.ufjf.br/jspui/bitstream/ufjf/8026/3/helenodesouzacamposjunior.pdf.txt21db71009de7aa9c5d4df2299d72a0dfMD53ufjf/80262019-06-16 11:11:55.152oai:hermes.cpd.ufjf.br:ufjf/8026TElDRU7vv71BIERFIERJU1RSSUJVSe+/ve+/vU8gTu+/vU8tRVhDTFVTSVZBCgpDb20gYSBhcHJlc2VudGHvv73vv71vIGRlc3RhIGxpY2Vu77+9YSwgdm9j77+9IChvIGF1dG9yIChlcykgb3UgbyB0aXR1bGFyIGRvcyBkaXJlaXRvcyBkZSBhdXRvcikgY29uY2VkZSBhbyBSZXBvc2l077+9cmlvIApJbnN0aXR1Y2lvbmFsIGRhIFVuaXZlcnNpZGFkZSBGZWRlcmFsIGRlIEp1aXogZGUgRm9yYSBvIGRpcmVpdG8gbu+/vW8tZXhjbHVzaXZvIGRlIHJlcHJvZHV6aXIsIHRyYWR1emlyIChjb25mb3JtZSBkZWZpbmlkbyBhYmFpeG8pLCBlL291IGRpc3RyaWJ1aXIgYSBzdWEgcHVibGljYe+/ve+/vW8gKGluY2x1aW5kbyBvIHJlc3VtbykgcG9yIHRvZG8gbyBtdW5kbyBubyBmb3JtYXRvIGltcHJlc3NvIGUgZWxldHLvv71uaWNvIGUgZW0gcXVhbHF1ZXIgbWVpbywgaW5jbHVpbmRvIG9zIGZvcm1hdG9zIO+/vXVkaW8gb3Ugdu+/vWRlby4KClZvY++/vSBjb25jb3JkYSBxdWUgbyBSZXBvc2l077+9cmlvIEluc3RpdHVjaW9uYWwgZGEgVW5pdmVyc2lkYWRlIEZlZGVyYWwgZGUgSnVpeiBkZSBGb3JhIHBvZGUsIHNlbSBhbHRlcmFyIG8gY29udGXvv71kbywgdHJhbnNwb3IgYSBzdWEgcHVibGljYe+/ve+/vW8gcGFyYSBxdWFscXVlciBtZWlvIG91IGZvcm1hdG8gcGFyYSBmaW5zIGRlIHByZXNlcnZh77+977+9by4gVm9j77+9IHRhbWLvv71tIGNvbmNvcmRhIHF1ZSBvIFJlcG9zaXTvv71yaW8gSW5zdGl0dWNpb25hbCBkYSBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkZSBKdWl6IGRlIEZvcmEgcG9kZSBtYW50ZXIgbWFpcyBkZSB1bWEgY++/vXBpYSBkZSBzdWEgcHVibGljYe+/ve+/vW8gcGFyYSBmaW5zIGRlIHNlZ3VyYW7vv71hLCBiYWNrLXVwIGUgcHJlc2VydmHvv73vv71vLiBWb2Pvv70gZGVjbGFyYSBxdWUgYSBzdWEgcHVibGljYe+/ve+/vW8g77+9IG9yaWdpbmFsIGUgcXVlIHZvY++/vSB0ZW0gbyBwb2RlciBkZSBjb25jZWRlciBvcyBkaXJlaXRvcyBjb250aWRvcyBuZXN0YSBsaWNlbu+/vWEuIFZvY++/vSB0YW1i77+9bSBkZWNsYXJhIHF1ZSBvIGRlcO+/vXNpdG8gZGEgc3VhIHB1YmxpY2Hvv73vv71vIG7vv71vLCBxdWUgc2VqYSBkZSBzZXUgY29uaGVjaW1lbnRvLCBpbmZyaW5nZSBkaXJlaXRvcyBhdXRvcmFpcyBkZSBuaW5nde+/vW0uCgpDYXNvIGEgc3VhIHB1YmxpY2Hvv73vv71vIGNvbnRlbmhhIG1hdGVyaWFsIHF1ZSB2b2Pvv70gbu+/vW8gcG9zc3VpIGEgdGl0dWxhcmlkYWRlIGRvcyBkaXJlaXRvcyBhdXRvcmFpcywgdm9j77+9IGRlY2xhcmEgcXVlIG9idGV2ZSBhIHBlcm1pc3Pvv71vIGlycmVzdHJpdGEgZG8gZGV0ZW50b3IgZG9zIGRpcmVpdG9zIGF1dG9yYWlzIHBhcmEgY29uY2VkZXIgYW8gUmVwb3NpdO+/vXJpbyBJbnN0aXR1Y2lvbmFsIGRhIFVuaXZlcnNpZGFkZSBGZWRlcmFsIGRlIEp1aXogZGUgRm9yYSBvcyBkaXJlaXRvcyBhcHJlc2VudGFkb3MgbmVzdGEgbGljZW7vv71hLCBlIHF1ZSBlc3NlIG1hdGVyaWFsIGRlIHByb3ByaWVkYWRlIGRlIHRlcmNlaXJvcyBlc3Tvv70gY2xhcmFtZW50ZSBpZGVudGlmaWNhZG8gZSByZWNvbmhlY2lkbyBubyB0ZXh0byBvdSBubyBjb250Ze+/vWRvIGRhIHB1YmxpY2Hvv73vv71vIG9yYSBkZXBvc2l0YWRhLgoKQ0FTTyBBIFBVQkxJQ0Hvv73vv71PIE9SQSBERVBPU0lUQURBIFRFTkhBIFNJRE8gUkVTVUxUQURPIERFIFVNIFBBVFJPQ++/vU5JTyBPVSBBUE9JTyBERSBVTUEgQUfvv71OQ0lBIERFIEZPTUVOVE8gT1UgT1VUUk8gT1JHQU5JU01PLCBWT0Pvv70gREVDTEFSQSBRVUUgUkVTUEVJVE9VIFRPRE9TIEUgUVVBSVNRVUVSIERJUkVJVE9TIERFIFJFVklT77+9TyBDT01PIFRBTULvv71NIEFTIERFTUFJUyBPQlJJR0Hvv73vv71FUyBFWElHSURBUyBQT1IgQ09OVFJBVE8gT1UgQUNPUkRPLgoKTyBSZXBvc2l077+9cmlvIEluc3RpdHVjaW9uYWwgZGEgVW5pdmVyc2lkYWRlIEZlZGVyYWwgZGUgSnVpeiBkZSBGb3JhIHNlIGNvbXByb21ldGUgYSBpZGVudGlmaWNhciBjbGFyYW1lbnRlIG8gc2V1IG5vbWUgKHMpIG91IG8ocykgbm9tZShzKSBkbyhzKSBkZXRlbnRvcihlcykgZG9zIGRpcmVpdG9zIGF1dG9yYWlzIGRhIHB1YmxpY2Hvv73vv71vLCBlIG7vv71vIGZhcu+/vSBxdWFscXVlciBhbHRlcmHvv73vv71vLCBhbO+/vW0gZGFxdWVsYXMgY29uY2VkaWRhcyBwb3IgZXN0YSBsaWNlbu+/vWEuCg==Repositório InstitucionalPUBhttps://repositorio.ufjf.br/oai/requestopendoar:2019-06-16T14:11:55Repositório Institucional da UFJF - Universidade Federal de Juiz de Fora (UFJF)false
dc.title.pt_BR.fl_str_mv A framework for test case prioritization in the continuous software engineering
title A framework for test case prioritization in the continuous software engineering
spellingShingle A framework for test case prioritization in the continuous software engineering
Campos Junior, Heleno de Souza
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
Manutenção de software
Engenharia de software
Teste de software
Integração contínua
Software maintenance
Software engineering
Software testing
Continuous integration
title_short A framework for test case prioritization in the continuous software engineering
title_full A framework for test case prioritization in the continuous software engineering
title_fullStr A framework for test case prioritization in the continuous software engineering
title_full_unstemmed A framework for test case prioritization in the continuous software engineering
title_sort A framework for test case prioritization in the continuous software engineering
author Campos Junior, Heleno de Souza
author_facet Campos Junior, Heleno de Souza
author_role author
dc.contributor.advisor1.fl_str_mv Araújo, Marco Antônio Pereira
dc.contributor.advisor1Lattes.fl_str_mv http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4763431J6
dc.contributor.referee1.fl_str_mv Spínola, Rodrigo Oliveira
dc.contributor.referee1Lattes.fl_str_mv http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4773436Z2
dc.contributor.referee2.fl_str_mv Menezes, Victor Ströele de Andrade
dc.contributor.referee2Lattes.fl_str_mv http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4735686P8
dc.contributor.authorLattes.fl_str_mv http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4369386J8
dc.contributor.author.fl_str_mv Campos Junior, Heleno de Souza
contributor_str_mv Araújo, Marco Antônio Pereira
Spínola, Rodrigo Oliveira
Menezes, Victor Ströele de Andrade
dc.subject.cnpq.fl_str_mv CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
topic CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
Manutenção de software
Engenharia de software
Teste de software
Integração contínua
Software maintenance
Software engineering
Software testing
Continuous integration
dc.subject.por.fl_str_mv Manutenção de software
Engenharia de software
Teste de software
Integração contínua
Software maintenance
Software engineering
Software testing
Continuous integration
description Testes de regressão são executados após cada mudança no software. Em ambientes de desenvolvimento de software que adotam práticas da Engenharia de Software Contínua, como a Integração contínua, por exemplo, software é modificado, e testado diversas vezes em curtos prazos. Cada execução dos testes pode levar horas para terminar, gerando atraso em relação à descoberta de falhas no projeto. Para prevenir esse atraso, técnicas de otimização são utilizadas. Uma delas é a priorização de casos de testes (TCP). Nessa técnica, a execução dos testes é reordenada de acordo com um objetivo, que normalmente é a detecção de falhas. Dessa forma, testes que têm maior probabilidade de falhas são executados primeiro. Um problema com essa abordagem é que existem diversas técnicas na literatura, mas pouca evidência em relação ao seu uso. Além disso, quase não existe infra estrutura para apoiar a adoção dessas técnicas no contexto industrial. O objetivo deste trabalho é planejar e implementar um framework que permita o uso, experimentação e implementação de técnicas de TCP. Esperamos que isso ajude praticantes a adotar essas técnicas no contexto industrial, principalmente da engenharia de software continua. Esperamos também que a criação dessa infra estrutura ajude pesquisadores a executar mais estudos experimentais sobre a eficiência do uso dessas técnicas. Para mostrar a viabilidade do framework proposto, é executado um estudo experimental com 16 técnicas de priorização diferentes, executadas em um total de 22 versões de 2 projetos open source. Os resultados coletados sugerem que o uso das técnicas de priorização resultam em retornos mais rápidos em relação à existência de falhas nos projetos, possivelmente resultando em ciclos mais rápidos de desenvolvimento.
publishDate 2018
dc.date.accessioned.fl_str_mv 2018-11-23T12:26:30Z
dc.date.available.fl_str_mv 2018-10-30
2018-11-23T12:26:30Z
dc.date.issued.fl_str_mv 2018-09-19
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 https://repositorio.ufjf.br/jspui/handle/ufjf/8026
url https://repositorio.ufjf.br/jspui/handle/ufjf/8026
dc.language.iso.fl_str_mv eng
language eng
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 Juiz de Fora (UFJF)
dc.publisher.program.fl_str_mv Programa de Pós-graduação em Ciência da Computação
dc.publisher.initials.fl_str_mv UFJF
dc.publisher.country.fl_str_mv Brasil
dc.publisher.department.fl_str_mv ICE – Instituto de Ciências Exatas
publisher.none.fl_str_mv Universidade Federal de Juiz de Fora (UFJF)
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFJF
instname:Universidade Federal de Juiz de Fora (UFJF)
instacron:UFJF
instname_str Universidade Federal de Juiz de Fora (UFJF)
instacron_str UFJF
institution UFJF
reponame_str Repositório Institucional da UFJF
collection Repositório Institucional da UFJF
bitstream.url.fl_str_mv https://repositorio.ufjf.br/jspui/bitstream/ufjf/8026/4/helenodesouzacamposjunior.pdf.jpg
https://repositorio.ufjf.br/jspui/bitstream/ufjf/8026/1/helenodesouzacamposjunior.pdf
https://repositorio.ufjf.br/jspui/bitstream/ufjf/8026/2/license.txt
https://repositorio.ufjf.br/jspui/bitstream/ufjf/8026/3/helenodesouzacamposjunior.pdf.txt
bitstream.checksum.fl_str_mv c2c4e8aa587a107260b10080ede0fb35
4307be9bfd2ca9825bcd2ce10bfc824e
000e18a5aee6ca21bb5811ddf55fc37b
21db71009de7aa9c5d4df2299d72a0df
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFJF - Universidade Federal de Juiz de Fora (UFJF)
repository.mail.fl_str_mv
_version_ 1813193936119791616