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

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

Teste de Software Parte 3. Exercícios aula anterior ESPECIFICAÇÃO: a função deve determinar se um identificador é ou não válido em uma linguagem imaginária.

Apresentações semelhantes


Apresentação em tema: "Teste de Software Parte 3. Exercícios aula anterior ESPECIFICAÇÃO: a função deve determinar se um identificador é ou não válido em uma linguagem imaginária."— 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 Condição de entrada Classe(s) válidaClasse(s) inválidas Tamanho t do identificador 1 >= t <= 6t < 1t > 6 Primeiro caractere é letra? Sim (5)Não (6) Demais caracteres são letras ou dígitos? Sim (7)Não (8) Casos de teste: (1) (1, 2, 5, 7) (4) (6) (8) (1) (2) (3)(4)

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:...

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 Nós do programa Grafo programa nó aresta

11 Teste estrutural - Teste de caminho 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; end;

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. Exercícios aula anterior ESPECIFICAÇÃO: a função deve determinar se um identificador é ou não válido em uma linguagem imaginária."

Apresentações semelhantes


Anúncios Google