A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Teste de Software Parte 3.

Apresentações semelhantes


Apresentação em tema: "Teste de Software Parte 3."— Transcrição da apresentação:

1 Teste de Software Parte 3

2 Exercícios aula anterior
ESPECIFICAÇÃO: a função deve determinar se um identificador é ou não válido em uma linguagem imaginária. Um identificador válido deve começar com uma letra e conter apenas letras ou dígitos. Além disso, deve ter no mínimo 1 caractere e no máximo 6 caracteres de comprimento

3 <x, verdadeiro> (1) <nomeAl, verdadeiro> (1, 2, 5, 7)
Condição de entrada Classe(s) válida Classe(s) inválidas Tamanho t do identificador 1 >= t <= 6 t < 1 t > 6 Primeiro caractere é letra? Sim (5) Não (6) Demais caracteres são letras ou dígitos? Sim (7) Não (8) (3) (4) (1) (2) Casos de teste: <x, verdadeiro> (1) <nomeAl, verdadeiro> (1, 2, 5, 7) <nomeAluno, falso> (4) <*abc, falso> (6) <abc*$, falso> (8)

4 Exercício aula anterior
Análise valor limite: Uma especificação de função declara que ela aceita de 4 a 10 entradas, que são números inteiros de cinco dígitos, maiores que

5

6 A mesma solução em forma de tabela:
Casos de teste: <(11000, 12000, 13000, 22222), válido> <(11000, 12000, 13000, 22222, 11000, 12000, 13000, 22222, 55555, 66666), válido> <(11000, 12000, 13000),inválido> <(11000, 12000, 13000, 22222, 11000, 12000, 13000, 22222, 55555, 66666,77777), inválido> ...

7 Teste estrutural Técnica de teste que se foca em determinadas estruturas do programa Portanto, é uma técnica baseada em implementação (ao contrário da técnica funcional, baseada na especificação). Geralmente, se aplica ao teste de unidade

8 Teste estrutural O teste funcional não garante que “todas” as partes do código foram testadas Pode haver alguma parte que não foi coberta pelos testes. Exemplo: algum tratamento de exceção. Se houvesse uma especificação completa do software, provavelmente, o teste funcional cobriria todo o código

9 Teste estrutural A maioria dos critérios de teste de estrutura utiliza uma representação do programa chamada de grafo de programa ou grafo de fluxo de controle. Um grafo de programa é um grafo orientado, com um único nó de entrada e um único nó de saída Os vértices representam os blocos e as arestas representam possíveis desvios de um bloco para outro

10 Teste Estrutural – Grafo de programa
aresta Nós do programa Grafo programa

11 Teste estrutural - Teste de caminho
Um caminho é o espaço entre um nó e outro Um caminho completo é um conjunto de nós entre o nó inicial e o nó final Teste de caminho é uma estratégia de teste de estrutura, cujo objetivo é exercitar cada caminho de execução independente Se cada caminho for executado, então todas as instruções foram executadas Além disso, todas as declarações condicionais são testadas para os casos verdadeiros e falsos

12 Teste estrutural - Teste de caminho
Os testes de caminho não testam todas as possíveis combinações de todos os caminhos do programa – esse é um objetivo impossível A não ser para unidades muito triviais, existe um número infinito de combinações de caminhos em programas com loops O objetivo é fazer com que cada caminho independente seja executado ao menos uma vez Um caminho independente é aquele que atravessa pelo menos um novo ramo no grafo Os ramos verdadeiros e falsos devem ser executados ao menos uma vez

13 Exemplo de grafo

14 Exercícios: 1-Determine os nós e elabore o grafo de programa para a função abaixo: function obterConceito(parametroRecebido : char) : String; var retorno : String; begin case parametroRecebido of 'A' : retorno := 'Ótimo'; 'B' : retorno := 'Bom'; 'C' : retorno := 'Regular'; ‘D’: retorno := 'Ruim'; 'E' : retorno := 'Péssimo';   else retorno := 'Inválido'; end; obterConceito := retorno;

15 Exercício 2-Determine os nós, elabore o grafo de programa, determine os caminhos e crie casos de teste que executem estes caminhos: function verificaTriangulo (a, b, c : real): String; begin if ((a < b + c) AND (b < a + c) AND (c < a + b)) then{Verifica se as medidas {formam um triângulo.} if (a = b) AND (b = c) then verificaTriangulo:='Triangulo equilatero' {Três lados iguais} else if ((a = b) OR (a = c) OR (b = c)) then verificaTriangulo:='Triangulo isosceles' {Dois lados iguais} else verificaTriangulo:='Triangulo escaleno' {Todos os lados são diferentes} else verificaTriangulo:='Nao é um triangulo'; {Não satisfez a propriedade da} { desigualdade triangular} end;


Carregar ppt "Teste de Software Parte 3."

Apresentações semelhantes


Anúncios Google