Repositório Institucional da UFPI

UMA ABORDAGEM BASEADA EM MÉTRICAS DE COMPONENTES DE SOFTWARE PARA A PRIORIZAÇÃO DE CASOS DE TESTE.

DSpace/Manakin Repository

Show simple item record

dc.contributor.author SILVA, Dennis Sávio Martins da
dc.date.accessioned 2018-04-04T14:10:24Z
dc.date.available 2018-04-04T14:10:24Z
dc.date.issued 2018-04-04
dc.identifier.uri http://hdl.handle.net/123456789/1059
dc.description Orientador: Ricardo de Andrade Lira Rabêlo. Coorientador: Pedro de Alcântara dos Santos Neto. Membro Interno: Prof. Dr. José Valdemir dos Reis Júnior. Membro Externo: Prof. Dr. Gustavo Augusto Lima de Campos (UECE). pt_BR
dc.description.abstract RESUMO: O teste de software é a principal forma de detectar falhas e avaliar a qualidade de um programa. Dentre os tipos de teste de software, podemos destacar o teste de regressão, que reexecuta os casos de teste do sistema para verificar se modificações em uma versão do programa não trouxeram prejuízo ao funcionamento de módulos que estavam atuando corretamente em versões anteriores. A forma mais comum de teste de regressão é a reexecução de todos os casos de teste do sistema, mas o crescimento no porte de um sistema de software pode dificultar essa abordagem devido a restrições de tempo ou de custos. Dentre as abordagens para resolver esse problema e melhorar o teste de regressão, podemos destacar a priorização de casos de teste, que consiste na alteração da sequência de execução dos casos de teste, buscando maximizar alguma propriedade da suite (conjunto) de testes. Este trabalho tem por objetivo priorizar casos de teste, buscando maximizar a taxa de detecção de falhas do teste de regressão. Para isso, é proposta uma abordagem em três etapas: na primeira etapa, são atribuídos valores de criticidade aos componentes do software por meio de um sistema de inferência fuzzy, cujas entradas são métricas de software relacionadas à susceptibilidade a falhas; na segunda etapa, é calculada a criticidade dos casos de teste, com base na criticidade dos componentes de software por eles cobertos; na terceira etapa acontece a priorização dos casos de teste, que emprega otimização por colônia de formigas para ordenar os casos de teste considerando suas criticidades, tempos de execução e histórico de detecção de falhas. As soluções foram avaliadas com base nas métricas APFD (Average Percentage of Fault Detection, que representa a taxa de detecção de falhas) e APFDC (variação do APFD que considera os custos de execução dos casos de teste e a severidade das falhas). Foram realizados experimentos com programas em linguagem C obtidos no repositório SIR (Software-artifact Infrastructure Repository), e os resultados obtidos com a abordagem foram comparados à não-ordenação das suites, à ordenação obtida por meio de uma busca exaustiva e a uma ordenação obtida por um algoritmo guloso que considerou a criticidade, histórico de detecção de falhas e tempo de execução dos casos de teste. Além disso, os resultados foram submetidos a um teste de sanidade e comparados à ordenação aleatória, apresentando fortes indícios de adequação ao problema. --------------------- ABSTRACT: Software testing is the main way of detecting faults and evaluating the quality of a program. Among the types of software testing, we can highlight the regression testing, which reexecutes the system’s test cases to check if changes in a version of the program did not bring prejudice to the functioning of modules which were working properly in previous versions. The most common way of regression testing is the reexecution of all the system’s test cases, but the growth of the system’s size can hamper this approach due to time and cost restrictions. Among the approaches to solve this problem and improve the regression testing, we can highlight the test case prioritization, that consists in changing the execution sequence of the test cases, aiming to maximize some property of the test suite. This work aims to prioritize test cases, seeking to maximize the rate of fault detection. In this regard, a three-step approach is proposed: at the first step, there are attributed criticality values to the software components through a fuzzy inference system, whose inputs are software metrics related to fault proneness; at the second step, the test cases criticality is calculated, based on the criticality of the software components covered by them; at the third step occurs the test prioritization, which uses ant colony optimization to order the test cases considering their criticality, execution times and history of faults. The solutions were evaluated based on the APFD (Average Percentage of Fault Detection) and APFDC (APFD variation which coniders the cost of the test cases and the severity of the faults) metrics. There were performed experiments with C programs from the repository SIR (Software-artifact Infrastructure Repository), and the results obtained with the approach were compared to the non-ordination of the test suites, to the ordination obtained through an exhaustive search, and to the ordination obtained through a greedy algorithm which considered the criticality, history of fault detection and execution time of the test cases. Furthermore, the results were submitted to a sanity check and compared to a random search, showing strong evidence of suitability for the problem. pt_BR
dc.language.iso other pt_BR
dc.subject Priorização de testes pt_BR
dc.subject Teste de Regressão pt_BR
dc.subject Sistema de Inferência Fuzzy pt_BR
dc.subject Otimização por Colônia de Formigas pt_BR
dc.subject Test Prioritization pt_BR
dc.subject Regression Testing pt_BR
dc.subject Fuzzy Inference System pt_BR
dc.subject Ant Colony Optimization pt_BR
dc.title UMA ABORDAGEM BASEADA EM MÉTRICAS DE COMPONENTES DE SOFTWARE PARA A PRIORIZAÇÃO DE CASOS DE TESTE. pt_BR
dc.type Preprint pt_BR


Files in this item

This item appears in the following Collection(s)

Show simple item record

Search DSpace


Advanced Search

Browse

My Account