Please use this identifier to cite or link to this item: https://hdl.handle.net/10216/83523
Full metadata record
DC FieldValueLanguage
dc.creatorJorge Filipe da Silva Costa
dc.date.accessioned2022-09-12T04:54:06Z-
dc.date.available2022-09-12T04:54:06Z-
dc.date.issued2015-07-03
dc.date.submitted2015-08-25
dc.identifier.othersigarra:35997
dc.identifier.urihttps://hdl.handle.net/10216/83523-
dc.descriptionDurante o processo de desenvolvimento de Software, o código precisa de ser alterado muitas vezes. Isto acontece porque os requerimentos podem ter mudado, os programadores podem precisar de corrigir uma falha, ou podem estar a melhorar a qualidade do código. Depois de cada alteração, o Software precisa de ser testado novamente para garantir que continua funcional. A este processo chamamos testes de regressão. Embora os testes de regressão sejam necessários para garantir qualidade no Software, eles são um processo dispendioso. Normalmente, quanto maior o numero de testes, mais tempo os testes demoram a correr - a maioria dos programadores não são produtivos durante esse tempo. Podemos assim concluir que o custo dos testes de regressão aumenta com o número de testes. Correr testes redundantes ou obsoletas que não aumentam a capacidade de deteção de falhas é um custo desnecessário. A comunidade científica está ciente deste facto. Vários métodos automatizados foram propostos para remover testes desnecessários (métodos de minimização). A maioria dos métodos propostos olham apenas a um objetivo - encontram o melhor subconjunto de testes que maximiza uma variável, normalmente a cobertura de código. Embora ter apenas um objetivo em conta possa dar bons resultados em alguns casos, para muitos outros não é isso que acontece. Por exemplo se o conjunto de testes for muito grande pode-se querer dar mais relevância a diminuir o conjunto de testes que à cobertura de código. Usar métodos que otimizam o conjunto de testes (Teste Suite) atendendo a vários objetivos (Multiobjectivo) durante o processo de minimização é mais adaptável às diferentes necessidades de minimização. Para além dos teste automatizados serem uteis a detetar falhas eles também podem ajudar na sua localização. Tal é possível recorrendo a técnicas automatizadas tais como SBFL ("Spectum Based fault Localization" ). A qualidade do diagnostico gerado depende da Teste Suite. Tanto quanto sabemos até ao momento não há abordagens multiobjectivo que tentam produzir teste suites minimizadas boas a localizar falhas. Segundo alguns autores da área sem ferramentas prontas a utilizar a adoção de técnicas de minimização vai permanecer limitada. Devido a isso, nós propomos uma ferramenta multiobjectivo de minimização de testes que também tenta a maximizar a capacidade de localização de falhas. Nos nossos testes empíricos, conseguimos em média reduzir o esforço em localizar uma falha em 31%, e concluímos com um grau de certeza de 95% que entre 77% e 100% das vezes a nossa abordagem produz um valor médio para o esforço de localizar uma falha menor que a abordagem multiobjectivo mais comum até agora.
dc.description.abstractDuring 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.
dc.language.isoeng
dc.rightsopenAccess
dc.rights.urihttps://creativecommons.org/licenses/by-nc/4.0/
dc.subjectEngenharia electrotécnica, electrónica e informática
dc.subjectElectrical engineering, Electronic engineering, Information engineering
dc.titleA Multi-Objective Approach to Test Suite Reduction
dc.typeDissertação
dc.contributor.uportoFaculdade de Engenharia
dc.identifier.tid201309220
dc.subject.fosCiências da engenharia e tecnologias::Engenharia electrotécnica, electrónica e informática
dc.subject.fosEngineering and technology::Electrical engineering, Electronic engineering, Information engineering
thesis.degree.disciplineMestrado Integrado em Engenharia Informática e Computação
thesis.degree.grantorFaculdade de Engenharia
thesis.degree.grantorUniversidade do Porto
thesis.degree.level1
Appears in Collections:FEUP - Dissertação

Files in This Item:
File Description SizeFormat 
35997.pdfA Multi-Objective Optimization Approach to Test Suite Reduction808.83 kBAdobe PDFThumbnail
View/Open


This item is licensed under a Creative Commons License Creative Commons