Luis Renato dos Santos FAES - UFPR
2011
Introdu¸c˜ao
Fundamentos de Teste de Software Teste Caixa Preta
Teste Caixa Branca Teste Baseado em Erros
A atividade de Teste de Software ´e um elemento cr´ıtico da garantia de qualidade de sofware e representa a ´ultima revis˜ao de especifica¸c˜ao, projeto e codifica¸c˜ao.
´
E comum que o Teste de Software gaste 40% do esfor¸co de cria¸c˜ao 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.
Ao contr´ario 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 ´e o processo de executar um programa com inten¸c˜ao de descobrir um erro.
- Um teste bem sucedido ´e aquele que revela um erro ainda n˜ao descoberto.
A T´ecnica Caixa Preta possui esse nome por considerar o produto em teste como uma caixa da qual s´o se conhece a entrada e a sa´ıda ou seja,
nenhum conhecimento de como o produto ´e internamente ´e utilizado.
Crit´erios dessa t´enica baseiam-se somente na especifica¸c˜ao 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˜ao s˜ao aquelas previstas, ent˜ao o teste detectou com sucesso um problema com o software.
T´ecnicas de Teste Caixa Preta: - Particionamento de Equivalˆencia; - An´alise do Valor Limite;
- Teste de Compara¸c˜ao;
Particionamento de Equivalˆencia
O Particionamento de Equivalˆencia divide o dom´ınio de entrada em uma s´erie de diferentes classes (ex: n´umeros positivos, strings sem ’brancos’).
An´alise do Valor Limite
A An´alise de Valor Limite ´e uma t´ecnica que complementa o Particionamento de Equivalˆencia.
Por raz˜oes que n˜ao s˜ao completamente claras, um n´umero maior de erros tende a ocorrer nas fronteiras do dom´ınio de entrada do que no ”centro”.
Teste de Compara¸c˜ao
Em casos cr´ıticos h´a elabora¸c˜ao de software paralelamente. Os softwares s˜ao testados com a mesma base de teste e em paralelo.
Cada vers˜ao ´e testada com outra t´ecnica de teste de caixa preta. Se houver diferen¸ca entre os resultados das v´arias vers˜oes, investiga-se.
Teste de Compara¸c˜ao
Problema: todas vers˜oes baseiam-se na mesma especifica¸c˜ao. Caso haja erro de interpreta¸c˜ao, todas vers˜oes podem ser afetadas.
A t´ecnica de Teste de Caixa de Vidro trabalha diretamente sobre o c´odigo fonte do software para avaliar aspectos tais como:
- Teste de Fluxo de Controle; - Teste de Condi¸c˜ao;
- Teste de Fluxo de Dados; - Teste de Ciclos e;
Esta t´ecnica apresenta-se como complementar ao Teste de Caixa Preta.
Em geral, a maioria das t´ecnica utiliza uma representa¸c˜ao de programa conhecida como grafo de fluxo de controle ou grafo de programa.
Um n´o representa uma ou mais instru¸c˜oes as quais s˜ao sempre executadas em sequˆencia.
Um arco, tamb´em chamado de ramo ou aresta, representa o fluxo de controle entre blocos de comandos (n´os).
Os passos b´asicos para se aplicar um crit´erio de Teste Caixa Branca: - Analisa-se o c´odigo fonte da aplica¸c˜ao;
- Escolhe-se caminhos atrav´es da implementa¸c˜ao;
- Valores de entradas s˜ao selecionados de modo que os caminhos selecionados sejam executados;
- As sa´ıdas esperadas para as entradas escolhidas s˜ao determinadas; - Os casos de testes s˜ao constru´ıdos;
- As sa´ıdas obtidas s˜ao comparadas com as sa´ıdas esperadas; - Um relat´ario ´e gerado para avaliar o resultado dos testes;
Fluxo de Controle
Utilizam apenas caracter´ısticas de controle da execu¸c˜ao do programa, como comandos ou desvios, para determinar quais estruturas s˜ao necess´arias.
Crit´erios mais conhecidos: - Todos n´os.
- Todos arcos. - Todos caminhos.
Teste de Fluxo de Dados
Utilizam informa¸c˜oes do fluxo de dados do programa para determinar os requisitos de teste.
Esses crit´erios exploram as intera¸c˜oes que envolvem defini¸c˜oes de vari´aveis e referˆencias a tais defini¸c˜oes para estabelecerem os requisitos de teste.
Teste de Fluxo de Dados
Crit´erios mais conhecidos: - Crit´erios de Rapps e Weyuker. - Crit´erios Potenciais-Usos.
A t´ecnica de teste baseada em defeitos utiliza informa¸c˜oes sobre os enganos mais frequentes cometidos no processo de desenvolvimento de software.
Algumas t´ecnicas operadas no Teste Baseado em Erros s˜ao: - Semeadura de Defeitos;
- An´alise de Mutantes; - Muta¸c˜ao de Interface;
An´alise de Mutantes
Para a aplica¸c˜ao do teste de muta¸c˜ao existem duas hip´oteses que o fundamentam:
- A hip´otese do programador competente; - O efeito de acoplamento;
A id´eia do teste de muta¸c˜ao ´e criar a confian¸ca de que um programa P est´a correto produzindo-se, por meio de pequenas altera¸c˜oes sint´aticas.
An´alise de Mutantes
As muta¸c˜oes s˜ao realizadas a partir de operadores de muta¸c˜ao.
An´alise de Mutantes fornece uma medida objetiva do n´ıvel de confian¸ca atrav´es da defini¸c˜ao de um escore de muta¸c˜ao.
An´alise de Mutantes
A aplica¸c˜ao da An´alise de Mutantes consiste em quatro etapas principais: - Gera¸c˜ao de mutantes;
- Execu¸c˜ao de P com base em um dado conjunto de teste T; - Execu¸c˜ao dos mutantes com base em T e;
- An´alise dos mutantes sobreviventes;
An´alise de Mutantes
O principal problema para a aplica¸c˜ao de crit´erios baseados em muta¸c˜ao est´a relacionado com o seu custo.
- Grande n´umero de mutantes que podem ser gerados; - Determinar esfor¸co;