Técnicas de Teste de Software Luis Renato dos Santos FAES - UFPR 2011 Luis Renato dos Santos (FAES - UFPR) Técnicas de Teste de Software 2011 1 / 23
Sumário Introdução Fundamentos de Teste de Software Teste Caixa Preta Teste Caixa Branca Teste Baseado em Erros Luis Renato dos Santos (FAES - UFPR) Técnicas de Teste de Software 2011 2 / 23
Introdução A atividade de Teste de Software é um elemento crítico da garantia de qualidade de sofware e representa a última revisão de especificação, projeto e codificação. É comum que o Teste de Software gaste 40% do esforço de criação de um software. Em sistemas críticos, pode chegar a custar de 3 a 5 vezes mais que todos os outros passos da Engenharia de Software. Luis Renato dos Santos (FAES - UFPR) Técnicas de Teste de Software 2011 3 / 23
Fundamentos de Teste de Software Ao contrário de todas outras fases da Engenharia de Software, o Teste de Software tem por sua natureza ser destrutivo. Objetivos: - A atividade de Teste de Software é o processo de executar um programa com intenção de descobrir um erro. - Um teste bem sucedido é aquele que revela um erro ainda não descoberto. Luis Renato dos Santos (FAES - UFPR) Técnicas de Teste de Software 2011 4 / 23
Teste Caixa Preta A Técnica Caixa Preta possui esse nome por considerar o produto em teste como uma caixa da qual só se conhece a entrada e a saída ou seja, nenhum conhecimento de como o produto é internamente é utilizado. Luis Renato dos Santos (FAES - UFPR) Técnicas de Teste de Software 2011 5 / 23
Teste Caixa Preta Critérios dessa ténica baseiam-se somente na especificação de requisitos para derivar os casos de testes. O testador apresenta as entradas ao componente ou ao sistema e examina as saídas correspondentes. Se as saídas não são aquelas previstas, então o teste detectou com sucesso um problema com o software. Luis Renato dos Santos (FAES - UFPR) Técnicas de Teste de Software 2011 6 / 23
Teste Caixa Preta Técnicas de Teste Caixa Preta: - Particionamento de Equivalência; - Análise do Valor Limite; - Teste de Comparação; Luis Renato dos Santos (FAES - UFPR) Técnicas de Teste de Software 2011 7 / 23
Teste Caixa Preta Particionamento de Equivalência O Particionamento de Equivalência divide o domínio de entrada em uma série de diferentes classes (ex: números positivos, strings sem brancos ). Um caso de teste ideal descobre sozinho uma classe de erros. Luis Renato dos Santos (FAES - UFPR) Técnicas de Teste de Software 2011 8 / 23
Teste Caixa Preta Análise do Valor Limite A Análise de Valor Limite é uma técnica que complementa o Particionamento de Equivalência. Por razões que não são completamente claras, um número maior de erros tende a ocorrer nas fronteiras do domínio de entrada do que no centro. Luis Renato dos Santos (FAES - UFPR) Técnicas de Teste de Software 2011 9 / 23
Teste Caixa Preta Teste de Comparação Em casos críticos há elaboração de software paralelamente. Os softwares são testados com a mesma base de teste e em paralelo. Cada versão é testada com outra técnica de teste de caixa preta. Se houver diferença entre os resultados das várias versões, investiga-se. Luis Renato dos Santos (FAES - UFPR) Técnicas de Teste de Software 2011 10 / 23
Teste Caixa Preta Teste de Comparação Problema: todas versões baseiam-se na mesma especificação. Caso haja erro de interpretação, todas versões podem ser afetadas. Luis Renato dos Santos (FAES - UFPR) Técnicas de Teste de Software 2011 11 / 23
Teste Caixa Branca A técnica de Teste de Caixa de Vidro trabalha diretamente sobre o código fonte do software para avaliar aspectos tais como: - Teste de Fluxo de Controle; - Teste de Condição; - Teste de Fluxo de Dados; - Teste de Ciclos e; Luis Renato dos Santos (FAES - UFPR) Técnicas de Teste de Software 2011 12 / 23
Teste Caixa Branca Esta técnica apresenta-se como complementar ao Teste de Caixa Preta. Em geral, a maioria das técnica utiliza uma representação de programa conhecida como grafo de fluxo de controle ou grafo de programa. Luis Renato dos Santos (FAES - UFPR) Técnicas de Teste de Software 2011 13 / 23
Teste Caixa Branca Um nó representa uma ou mais instruções as quais são sempre executadas em sequência. Um arco, também chamado de ramo ou aresta, representa o fluxo de controle entre blocos de comandos (nós). Luis Renato dos Santos (FAES - UFPR) Técnicas de Teste de Software 2011 14 / 23
Teste Caixa Branca Luis Renato dos Santos (FAES - UFPR) Técnicas de Teste de Software 2011 15 / 23
Teste Caixa Branca Os passos básicos para se aplicar um critério de Teste Caixa Branca: - Analisa-se o código fonte da aplicação; - Escolhe-se caminhos através da implementação; - Valores de entradas são selecionados de modo que os caminhos selecionados sejam executados; - As saídas esperadas para as entradas escolhidas são determinadas; - Os casos de testes são construídos; - As saídas obtidas são comparadas com as saídas esperadas; - Um relatário é gerado para avaliar o resultado dos testes; Luis Renato dos Santos (FAES - UFPR) Técnicas de Teste de Software 2011 16 / 23
Teste Caixa Branca Fluxo de Controle Utilizam apenas características de controle da execução do programa, como comandos ou desvios, para determinar quais estruturas são necessárias. Critérios mais conhecidos: - Todos nós. - Todos arcos. - Todos caminhos. Luis Renato dos Santos (FAES - UFPR) Técnicas de Teste de Software 2011 17 / 23
Teste Caixa Branca Teste de Fluxo de Dados Utilizam informações do fluxo de dados do programa para determinar os requisitos de teste. Esses critérios exploram as interações que envolvem definições de variáveis e referências a tais definições para estabelecerem os requisitos de teste. Luis Renato dos Santos (FAES - UFPR) Técnicas de Teste de Software 2011 18 / 23
Teste Caixa Branca Teste de Fluxo de Dados Critérios mais conhecidos: - Critérios de Rapps e Weyuker. - Critérios Potenciais-Usos. Luis Renato dos Santos (FAES - UFPR) Técnicas de Teste de Software 2011 19 / 23
Teste Baseado em Erros A técnica de teste baseada em defeitos utiliza informações sobre os enganos mais frequentes cometidos no processo de desenvolvimento de software. Algumas técnicas operadas no Teste Baseado em Erros são: - Semeadura de Defeitos; - Análise de Mutantes; - Mutação de Interface; Luis Renato dos Santos (FAES - UFPR) Técnicas de Teste de Software 2011 20 / 23
Teste Baseado em Erros Análise de Mutantes Para a aplicação do teste de mutação existem duas hipóteses que o fundamentam: - A hipótese do programador competente; - O efeito de acoplamento; A idéia do teste de mutação é criar a confiança de que um programa P está correto produzindo-se, por meio de pequenas alterações sintáticas. Luis Renato dos Santos (FAES - UFPR) Técnicas de Teste de Software 2011 21 / 23
Teste Baseado em Erros Análise de Mutantes As mutações são realizadas a partir de operadores de mutação. Análise de Mutantes fornece uma medida objetiva do nível de confiança através da definição de um escore de mutação. Luis Renato dos Santos (FAES - UFPR) Técnicas de Teste de Software 2011 22 / 23
Teste Baseado em Erros Análise de Mutantes A aplicação da Análise de Mutantes consiste em quatro etapas principais: - Geração de mutantes; - Execução de P com base em um dado conjunto de teste T; - Execução dos mutantes com base em T e; - Análise dos mutantes sobreviventes; Luis Renato dos Santos (FAES - UFPR) Técnicas de Teste de Software 2011 23 / 23
Teste Baseado em Erros Análise de Mutantes O principal problema para a aplicação de critérios baseados em mutação está relacionado com o seu custo. - Grande número de mutantes que podem ser gerados; - Determinar esforço; Luis Renato dos Santos (FAES - UFPR) Técnicas de Teste de Software 2011 24 / 23