A Multi-Objective Approach to Test Suite Reduction

Detalhes bibliográficos
Autor(a) principal: Jorge Filipe da Silva Costa
Data de Publicação: 2015
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: https://hdl.handle.net/10216/83523
Resumo: During the software development process, the code needs to be changed many times. This is necessary either because requirements may have changed, developers are correcting a fault, or programmers are re-factoring the code to increase its quality.After each software change, the software needs to be tested again to ensure that it is still working correctly. This is called regression testing. Although regression testing is necessary to ensure software quality, it is a costly step of the software development process. Normally, the greater the number of tests, the more time they take to run - most programmers are not productive during this time. Therefore, the regression testing cost increases with the number of tests. Running redundant or obsolete tests that do not increase the fault detection capabilities is an unnecessary cost. The scientific community is aware of this problem. Several automatic approaches were proposed to remove unnecessary tests. Most of the approaches are single objective - they find the best subset of the test suite that maximizes a given variable like code coverage. Although single objective reduction is a good fit for some cases, for many others it is not. We may want to give more relevance to minimize the number of tests than to maintain good code coverage (e.g. testing suite is too big). Or we may want to minimize the tests using some information provided by the user (e.g. number of requisites tested), code coverage and the complexity of the code tested. Multi objective test suite reduction is more adaptable to each software project. Software testing is useful in detecting faults, and could also be able to locate them using automatic fault detection techniques like spectrum based fault localization. The quality of the diagnostic is dependent on the test suite. To the best of our knowledge, until now there is no Multi objective approach that tries to produce test suites that are good at localizing faults. According to some authors, without tools that make test reduction easily accessible by programmers, practical adoption will be limited. This document proposes a practical solution for multi objective test suite reduction that tries to minimize fault localization effort. On our empirical evaluation, we were able to improve the average fault localization effort (FLE) value by 31%. And we were able to conclude at a 95% confidence level that our approach produces a better average (FLE) between between 77% to to 100% of the times when compared with the most common existing multi objective approach.
id RCAP_1b31c5d6a7294ecb3a2fe31b3952cc2d
oai_identifier_str oai:repositorio-aberto.up.pt:10216/83523
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling A Multi-Objective Approach to Test Suite ReductionEngenharia electrotécnica, electrónica e informáticaElectrical engineering, Electronic engineering, Information engineeringDuring the software development process, the code needs to be changed many times. This is necessary either because requirements may have changed, developers are correcting a fault, or programmers are re-factoring the code to increase its quality.After each software change, the software needs to be tested again to ensure that it is still working correctly. This is called regression testing. Although regression testing is necessary to ensure software quality, it is a costly step of the software development process. Normally, the greater the number of tests, the more time they take to run - most programmers are not productive during this time. Therefore, the regression testing cost increases with the number of tests. Running redundant or obsolete tests that do not increase the fault detection capabilities is an unnecessary cost. The scientific community is aware of this problem. Several automatic approaches were proposed to remove unnecessary tests. Most of the approaches are single objective - they find the best subset of the test suite that maximizes a given variable like code coverage. Although single objective reduction is a good fit for some cases, for many others it is not. We may want to give more relevance to minimize the number of tests than to maintain good code coverage (e.g. testing suite is too big). Or we may want to minimize the tests using some information provided by the user (e.g. number of requisites tested), code coverage and the complexity of the code tested. Multi objective test suite reduction is more adaptable to each software project. Software testing is useful in detecting faults, and could also be able to locate them using automatic fault detection techniques like spectrum based fault localization. The quality of the diagnostic is dependent on the test suite. To the best of our knowledge, until now there is no Multi objective approach that tries to produce test suites that are good at localizing faults. According to some authors, without tools that make test reduction easily accessible by programmers, practical adoption will be limited. This document proposes a practical solution for multi objective test suite reduction that tries to minimize fault localization effort. On our empirical evaluation, we were able to improve the average fault localization effort (FLE) value by 31%. And we were able to conclude at a 95% confidence level that our approach produces a better average (FLE) between between 77% to to 100% of the times when compared with the most common existing multi objective approach.2015-07-032015-07-03T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttps://hdl.handle.net/10216/83523TID:201309220engJorge Filipe da Silva Costainfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-11-29T15:38:55Zoai:repositorio-aberto.up.pt:10216/83523Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-20T00:28:42.289536Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv A Multi-Objective Approach to Test Suite Reduction
title A Multi-Objective Approach to Test Suite Reduction
spellingShingle A Multi-Objective Approach to Test Suite Reduction
Jorge Filipe da Silva Costa
Engenharia electrotécnica, electrónica e informática
Electrical engineering, Electronic engineering, Information engineering
title_short A Multi-Objective Approach to Test Suite Reduction
title_full A Multi-Objective Approach to Test Suite Reduction
title_fullStr A Multi-Objective Approach to Test Suite Reduction
title_full_unstemmed A Multi-Objective Approach to Test Suite Reduction
title_sort A Multi-Objective Approach to Test Suite Reduction
author Jorge Filipe da Silva Costa
author_facet Jorge Filipe da Silva Costa
author_role author
dc.contributor.author.fl_str_mv Jorge Filipe da Silva Costa
dc.subject.por.fl_str_mv Engenharia electrotécnica, electrónica e informática
Electrical engineering, Electronic engineering, Information engineering
topic Engenharia electrotécnica, electrónica e informática
Electrical engineering, Electronic engineering, Information engineering
description During the software development process, the code needs to be changed many times. This is necessary either because requirements may have changed, developers are correcting a fault, or programmers are re-factoring the code to increase its quality.After each software change, the software needs to be tested again to ensure that it is still working correctly. This is called regression testing. Although regression testing is necessary to ensure software quality, it is a costly step of the software development process. Normally, the greater the number of tests, the more time they take to run - most programmers are not productive during this time. Therefore, the regression testing cost increases with the number of tests. Running redundant or obsolete tests that do not increase the fault detection capabilities is an unnecessary cost. The scientific community is aware of this problem. Several automatic approaches were proposed to remove unnecessary tests. Most of the approaches are single objective - they find the best subset of the test suite that maximizes a given variable like code coverage. Although single objective reduction is a good fit for some cases, for many others it is not. We may want to give more relevance to minimize the number of tests than to maintain good code coverage (e.g. testing suite is too big). Or we may want to minimize the tests using some information provided by the user (e.g. number of requisites tested), code coverage and the complexity of the code tested. Multi objective test suite reduction is more adaptable to each software project. Software testing is useful in detecting faults, and could also be able to locate them using automatic fault detection techniques like spectrum based fault localization. The quality of the diagnostic is dependent on the test suite. To the best of our knowledge, until now there is no Multi objective approach that tries to produce test suites that are good at localizing faults. According to some authors, without tools that make test reduction easily accessible by programmers, practical adoption will be limited. This document proposes a practical solution for multi objective test suite reduction that tries to minimize fault localization effort. On our empirical evaluation, we were able to improve the average fault localization effort (FLE) value by 31%. And we were able to conclude at a 95% confidence level that our approach produces a better average (FLE) between between 77% to to 100% of the times when compared with the most common existing multi objective approach.
publishDate 2015
dc.date.none.fl_str_mv 2015-07-03
2015-07-03T00:00:00Z
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://hdl.handle.net/10216/83523
TID:201309220
url https://hdl.handle.net/10216/83523
identifier_str_mv TID:201309220
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.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799136198491373568