Page 1

PROPOSTA DE OTIMIZAÇÃO DE SELEÇÃO DE CASOS DE TESTE PARA AUTOMAÇÃO Universidade Estadual do Ceará Pedro Henrique Pereira


Agenda              

Motivação Objetivos Teste de Software Automação de casos de teste Fatores da automação e conseqüências Otimização Trabalhos relacionados Formulação matemática Avaliação da proposta Resultados Conclusões Contribuições e limitações Propostas de trabalhos Finalização


Motivação    

Complexidade dos softwares Testes de software Testes manuais x Testes automatizados Decisão de quais testes automatizar    

Bartié (2002): estudo antecipado e estratégia Rios (2006): análise da relação custo-benefício Molinari (2003): casos de teste de regressão Patton (2006): testes complexos testador habilidoso


Objetivos 

Objetivo geral 



Criar uma abordagem baseada em otimização para selecionar os casos de teste que devem ser automatizados

Objetivos específicos 



Propor uma formulação matemática para o problema de seleção de casos de teste a serem automatizados Implementar uma técnica de otimização, mais especificamente uma metaheurística, para validar a abordagem proposta


Teste de software     

Garantia de qualidade Caso de teste Script de teste Suíte de teste Atividades de teste (identificação, projeto, construção, execução, comparação)


Automação de casos de teste  

Finalidade da automação Combinação de pessoas, técnicas, processos, tempo e foco.


Fatores da automação   

   

Complexidade do cenário de teste Tempo disponível Conhecimento da equipe quanto ao cenário e ferramentas Quantidade dos pontos de verificação Recorrência de execução Dependência entre os casos de teste Volatilidade do requisito


Conseqüências da automação    

  

Ganho de tempo Controle Confiabilidade Precisão dos testes Custos iniciais elevados Curva de aprendizagem da ferramenta Infra-estrutura


Otimização 

  

Engenharia de Software e Otimização Matemática = SBSE Heurísticas e Metaheurísticas Função objetivo e restrições Algoritmo Genético      

Metáfora biológica Função de aptidão (fitness) Seleção Cruzamento (crossover) Mutação Reavaliação


Trabalhos relacionados  



Seleção de casos de teste Priorização de casos de teste para execução Geração de dados de teste


Formulação matemática 

(OS1) Max |previsaoExecucaoSuiteST|, onde previsaoExecucaoSuiteST = ∑(quantidadeExecucoesj), onde 0 <= j <= M.



(OS2) Max importanciaSuiteST, onde importanciaSuiteST = ∑(importanciaCasoj)/M, onde 0 <= j <= M.



(OS) = (OS1) x θ + (OS2) x β.


Formulação matemática 

(RS1) tempoExecucaoST < ∑(tempoExecucaok) x percentualLimiteTempo, onde 1 <= k <= N.



(RS2) tj1 e tj2 є C, ((precedenciatj2 = tj1) e (STj2 = 1)) → (STj1 = 1)


Avaliação da proposta  

Framework EasyMeta - Carmo et al (2008). Metaheurística: Algoritmo Genético     



Arquivo de entrada: 100 casos de testes Geração de população inicial: 100 suítes de teste Execução: ciclo de 10 iterações do algoritmo. 100 execuções para cada faixa de restrição de tempo Variação de restrição de tempo: 10% a 90%, de 10% em 10%. Informações coletadas: tempo de execução da suíte de teste, avaliação da função objetivo, tamanho da suíte, tempo de execução do algoritmo


Resultados


Resultados


Resultados


Resultados


Conclusões 

Pontos positivos 





Avaliação da soluções: em média, 1.94 vezes superior à aleatória Tamanho das soluções: em média, 1.45 vezes maiores

Ponto negativo 

Tempo de execução do algoritmo: 234 vezes maior


Contribuições e limitações 





Modelagem de uma abordagem para selecionar casos de testes para automação; Comparação da modelagem proposta com a seleção aleatória de casos de teste Ausência de base histórica e real


Propostas de trabalhos 







Seleção de casos de teste para automação segundo outros aspectos que não sejam tempo de execução e importância para o cliente. Tornar a abordagem multi-objetiva, fazendo uso assim de outras metaheurísticas Comparar os resultados obtidos com respostas fornecidas por usuários da abordagem proposta Aprimorar o projeto Java desenvolvido, para ler uma possível base de dados já existente da equipe de testes


Algumas referências 











ANDRADE, T.C.; FREITAS, F.G.; COUTINHO, D.P.; SOUZA, J.F. Uma Abordagem de Otimização Multiobjetiva para o Problema da Priorização da Correção de Defeitos. I Workshop Brasileiro de Otimização em Engenharia de Software, 2010. BARTIÉ, Alexandre. Garantia da qualidade de software: adquirindo maturidade organizacional. Rio de Janeiro. Editora Campus, 2002. CARMO, Rafael Augusto Ferreira. EasyMeta: um framework para problemas de otimização mono-objetivo. Monografia –Centro de Ciências e Tecnologia, Universidade Estadual do Ceará. Fortaleza – CE, 2008. DELAMARO, Márcio Eduardo; MALDONADO, José Carlos; JINO, Mario. Introdução ao Teste de Software. Rio de Janeiro: Elsevier. MAIA, Camila L.B. Uma abordagem integrada, interativa e multi-objetiva para os problemas de seleção, priorização e alocação de casos de teste. Universidade Estadual do Ceará – Centro de Ciência e Tecnologia. Dissertação do Mestrado Acadêmico em Ciência da Computação. Fortaleza, 2011. MOLINARI, Leonardo. Teste de software: produzindo sistemas melhores e mais confiáveis. 2ª edição. Editora Érica, São Paulo, 2003.


Finalização  

Questionamentos Agradecimentos

SOES #42 - Seleção de Casos de Teste para Automação  
Read more
Read more
Similar to
Popular now
Just for you