Addressing high dimensionality and lack of feature models in testing of software product lines
Teses de Doutorado - Ciência da Computação
SOUTO, Sabrina de Figueirêdo
URI: http://repositorio.ufpe.br/handle/123456789/15975
Linhas de Produtos de Software (SPLs) permitem aos engenheiros sistematicamente construirem famílias de produtos de software, definidos por uma combinação única de features— incrementos de funcionalidade, melhorando tanto a eficiência do processo de desenvolvimento de software quanto a qualidade do software desenvolvido. Porém, testar esse tipo de sistema é uma tarefa desafiadora, pois requer a execução de cada teste em um número combinatorial de produtos. Chamamos esse problema de Problema da Alta Dimensionalidade. Outro obstáculo para o teste de linhas de produtos é a ausência de Modelos de Feature (FMs), dificultando a descoberta das reais causas das falhas nos testes. Chamamos esse problema de Problema da Falta de Modelo de Features. O Problema da Alta Dimensionalidade está associado ao amplo espaço de possibilidades de configurações que uma linha de produtos pode alcançar. Por exemplo, se uma linha de produtos tem n features booleanas, então existem 2n possibilidades de combinações de features. Desta forma, para testar esse tipo de sistema, de forma sistemática, pode ser preciso executar cada teste em todas as possíveis combinações, no pior caso. Já o Problema da Falta de Modelo de Features está relacionado à falta ou incompletude dos modelos de feature. Por esta razão, a falta de FM representa um grande desafio para a descoberta das reais causas para falhas nos testes. Com o objetivo de resolver esses problemas, propomos duas técnicas leves: SPLat e SPLif. SPLat é uma nova abordagem que ignora configurações irrelevantes: as configurações a serem executadas pelo teste são determinadas durante a execução do teste, através do monitoramento do acesso às opções de configuração. Como resultado, SPLat reduz o número de configurações a serem executadas. Consequentemente, SPLat é leve comparada a trabalhos anteriores que usam técnicas de análise estática e execuções dinâmicas pesadas. SPLif é uma técnica para testar linhas de produtos que não requer modelos de feature a priori. A ideia é usar a taxa de execuções de teste que falham e que passam para rapidamente identificar falhas que são indicativas de problemas (no teste ou código), ao contrário de uma falha referente à execução de um teste em uma combinação inconsistente de features. Resultados experimentais mostram que SPLat identifica configurações relevantes de forma eficaz, e com uma sobrecarga baixa. Também aplicamos SPLat a dois sistemas configuráveis de grande porte (Groupon e GCC), e ele escalou sem muito esforço de engenharia. Resultados experimentais demonstram que SPLif é útil e eficaz para rapidamente encontrar testes que falham para configurações consistentes, independente de quão incompleto é o modelo de features. Além disso, ainda avaliamos SPLif com um sistema configurável de grande porte e extensivamente testado, o GCC, onde SPLif ajudou a revelar 5 novas falhas, das quais 3 foram corrigidas após nossos relatórios de falha (bug reports).
Nome: TESE_SABRINA.pdf
Tamanho: 1.099Mb
Teses de Doutorado - Ciência da Computação [232]
An approach to innovative software project management in software factories 
MARANHÃO, Robson Godoi de Albuquerque (Universidade Federal de Pernambuco, UFPE, Brasil, 2016-09-05)
Inovação tem sido reconhecida como uma condição essencial para se ganhar vantagem competitiva e sobreviver na indústria de software. A participação de todos é primordial, tanto na geração de ideias quanto na implementação ...
Mapa de apoio à gestão de dívida técnica no processo de teste de software 
SOUSA, Cleydiane Lima de (Universidade Federal de Pernambuco, UFPE, Brasil, 2016-02-19)
Dívida Técnica (DT) está relacionada a tarefas que devem ser executadas e são acumuladas ao longo de um projeto para serem realizadas posteriormente. A falta de planejamento de tempo e recursos em um projeto, dentre outros ...