Spelling suggestions: "subject:"8oftware product line engineering"" "subject:"5oftware product line engineering""
1 |
Fault model-based variability testingMachado, Ivan do Carmo 21 July 2014 (has links)
Submitted by Kleber Silva (kleberbs@ufba.br) on 2017-05-31T19:53:55Z
No. of bitstreams: 1
Ph.D. Thesis - Ivan Machado - Full Version-1.pdf: 3242625 bytes, checksum: 76299cf9d79afd85a7c46155029ae95e (MD5) / Approved for entry into archive by Vanessa Reis (vanessa.jamile@ufba.br) on 2017-06-06T15:19:55Z (GMT) No. of bitstreams: 1
Ph.D. Thesis - Ivan Machado - Full Version-1.pdf: 3242625 bytes, checksum: 76299cf9d79afd85a7c46155029ae95e (MD5) / Made available in DSpace on 2017-06-06T15:19:55Z (GMT). No. of bitstreams: 1
Ph.D. Thesis - Ivan Machado - Full Version-1.pdf: 3242625 bytes, checksum: 76299cf9d79afd85a7c46155029ae95e (MD5) / Software Product Line (SPL) engineering has emerged as an important strategy to cope with the increasing demand of large-scale product customization. Owing to its variability management capabilities, SPL has provided companies with an efficient and effective means of delivering a set of products with higher quality at a lower cost, when compared to traditional software engineering strategies. However, such a benefit does not come for free. SPL demands cost-effective quality assurance techniques that attempt to minimize the overall effort, while improving, or at least not hurting, fault detection rates. Software testing, the most widely used approach for improving software quality in practice, has been largely explored to address this particular topic.
State of the art SPL testing techniques are mainly focused on handling variability testing from a high level perspective, namely through the analysis of feature models, rather than concerning issues from a source code perspective. However, we believe that improvements in the quality of variable assets entail addressing testing issues both from high and low-level perspectives.
By carrying out a series of empirical studies, gathering evidence from both the literature and the analysis of defects reported in three open source software systems, we identified and analyzed commonly reported defects from Java-based variability implementation mechanisms. Based on such evidence, we designed a method for building fault models for variability testing, from two main perspectives: test assessment, which focuses on the evaluation of the effectiveness of existing test suites; and test design, which aims to aid the construction of test sets, by focusing on fault-prone elements.
The task of modeling typical or important faults provides a means to coming up with certain test inpus that can expose faults in the program unit. Hence, we hypothesize that understanding the nature of typical or important faults prior to developing the test sets would enhance their capability to find a particular set of errors.
We performed a controlled experiment to assess the test effectiveness of using fault models to provide SPL testing with support to design test inputs. We observed promising results that confirm the hypothesis that combining fault models in an SPL testing process performs significantly better on improving the quality of test inputs. / A Engenharia de Linhas de Produtos de Software (LPS) surgiu como uma importante estratégia
para lidar com a crescente demanda de customização de produtos de software em larga escala.
Por sua capacidade de gerenciar variabilidade de forma sistemática, o paradigma de LPS tem
proporcionado às empresas métodos eficientes e eficazes para alcançar a entrega de produtos de
software com maior qualidade, a um custo de produção reduzido, quando comparado a estratégias
tradicionais de desenvolvimento de software. No entanto, a obtenção de tais benefícios não é
trivial. O paradigma impõe a necessidade de técnicas de garantia de qualidade eficazes, com
bom custo-benefício, que tentem minimizar o esforço global, ao tempo em que se alcance
melhorias nas taxas de detecção de falhas. Assim, a disciplina de testes de software, abordagem
comumente utilizada na busca por melhoria na qualidade dos produtos de software, tem sido
largamente explorada no contexto de LPS.
As mais relevantes técnicas de testes em LPS estão focadas principalmente no gerenciamento
de testes de variabilidade sob uma perspectiva de alto nível, notadamente através da análise
de modelos, em sobreposição aos aspectos de mais baixo nível, isto é, sob o ponto de vista do
código fonte. Entretanto, acreditamos que melhorias na qualidade dos artefatos de software
variáveis implica na investigação de aspectos da disciplina de testes, em ambas as perspectivas,
quer seja alto nível quer seja baixo nível.
Através da realização de uma série de estudos empíricos, evidências foram obtidas a partir
da análise de textos publicados na literatura, e a partir da análise de defeitos reportados em três
sistemas de software de código aberto. Neste último caso, identificamos e analisamos defeitos
provenientes do uso de mecanismos de implementação de variabilidade em Java. Com base
nas evidências, construímos uma abordagem para construir modelos de falhas que auxiliem o
teste de variabilidade, sob duas perspectivas principais: avaliação de teste, que incide sobre
a avaliação da eficácia dos casos de testes existentes; e o projeto de teste, que visa auxiliar a
construção de casos de teste, concentrando-se em elementos propensos a falhas.
A tarefa de modelagem de falhas típicas ou importantes fornece um meio para identificar
certas entradas de teste que podem expor falhas na execução do programa. Desta forma, a
nossa hipótese é que a compreensão da natureza das falhas típicas, ou importantes, como tarefa
anterior ao desenvolvimento dos casos de teste, tende a aumentar a capacidade dos testes em
encontrar um determinado conjunto de defeitos, quando executados.
Para avaliar a eficácia da abordagem proposta nesta tese, planejamos e executamos um
experimento controlado. Os resultados mostraram-se promissores, provendo indícios de que a ideia de se combinar modelos de falha em um processo de teste de LPS pode trazer ganhos significativos a atividade de teste, bem como melhorar a qualidade dos dados de entrada de
testes.
|
Page generated in 0.0867 seconds