Prof. Me. Marcos Echevarria

Documentos relacionados
Transcrição:

Prof. Me. Marcos Echevarria

Já vimos que existem vários tipos de testes de software que podemos usar para que nossos sistemas tenham uma qualidade maior. Além disso, esses testes podem ser executados em diversos níveis e de várias formas; A forma de testar depende da técnica que será usada para isso. As técnicas existentes são: funcional e estrutural; Engenharia de Software 2

--------------------------------------------------- Engenharia de Software 3

Diferentemente das técnicas funcionais, os testes estruturais avaliam o comportamento interno do componente de software; Essa técnica trabalha diretamente no código fonte do software para avaliar aspectos como: Teste de condição; Teste de fluxo de dados; Teste de ciclos; Teste de caminhos lógicos; Engenharia de Software 4

Os teste caixa branca não analisam se a especificação esta certa ou errada, eles apenas se concentram código fonte; Engenharia de Software 5

Você consegue descrever uma situação onde os caminhos lógicos da tua aplicação estão corretos, mas o resultado da especificação está incorreto? Engenharia de Software 6

--------------------------------------------------- Engenharia de Software 7

Os testes estruturais consistem, basicamente, em criar casos de teste que forcem a execução de cada caminho possível no fluxo de controle do programa a ser testado; Engenharia de Software 8

Analisar o código a ser testado e representálo num grafo; Isso facilita o entendimento do fluxo da nossa aplicação; Engenharia de Software 9

Nó: Simboliza um ou mais comandos procedimentais; Seta (ou aresta): Indica o sentido do fluxo de controle lógico; Observação: Cada nó que possui condição associada é denominado nó predicado e se caracteriza por possuir duas ou mais arestas nele originadas. Engenharia de Software 10

Forma de representação no Grafo: Engenharia de Software 11

Engenharia de Software 12

As linhas de 1 a 4 correspondem ao nó 1; A linha 5 corresponde aos nós 2 (x>0) e 3 (y<0); As linhas de 6 a 9 estão representadas pelo nó 4; E a linha 10 corresponde ao nó 5; O nó 6 corresponde às demais linhas do programa; Para cada condição existente, cria-se um nó correspondente. Engenharia de Software 13

Calcular a complexidade ciclomática: O objetivo é identificar o número de caminhos independentes para o grafo; Fornecendo assim, uma medida quantitativa da complexidade lógica do programa; Devemos calcular: V(G) = número de arestas número de nós + 2 Engenharia de Software 14

Calcular a complexidade ciclomática: V(G) = número de arestas número de nós + 2 V(G) = 7 6 + 2 = 3 Engenharia de Software 15

Identificar caminhos independentes: A complexidade ciclomática do nosso grafo é 3; Sendo assim, devemos identificar 3 caminhos independentes para nosso grafo; Engenharia de Software 16

Identificar caminhos independentes: A complexidade ciclomática do nosso grafo é 3; Sendo assim, devemos identificar 3 caminhos independentes para nosso grafo; Caminho independente 1: 1 2 6; Engenharia de Software 17

Identificar caminhos independentes: A complexidade ciclomática do nosso grafo é 3; Sendo assim, devemos identificar 3 caminhos independentes para nosso grafo; Caminho independente 1: 1 2 6; Caminho independente 2: 1 2-3-6; Engenharia de Software 18

Identificar caminhos independentes: A complexidade ciclomática do nosso grafo é 3; Sendo assim, devemos identificar 3 caminhos independentes para nosso grafo; Caminho independente 1: 1 2 6; Caminho independente 2: 1 2-3-6; Caminho independente 3: 1-2-3-4-5-2-6; Engenharia de Software 19

Para cada caminho independente identificado, deve ser criado pelo menos um caso de teste; Isto garantirá que todos os comandos do programa serão executados pelo menos uma vez e que cada condição terá sido executada quando satisfeita (verdadeira) e quando não satisfeita (falsa). Engenharia de Software 20

Em quais níveis podemos executar os testes de caixa-branca? Engenharia de Software 21

1. Analise o código: Engenharia de Software 22

1. Analise o código: 2. Crie o grafo; Engenharia de Software 23

1. Analise o código: 2. Crie o grafo; 3. Calcule a complexidade ciclomática; Engenharia de Software 24

1. Analise o código: 2. Crie o grafo; 3. Calcule a complexidade ciclomática; 4. Crie os casos de teste; Engenharia de Software 25

Engenharia de Software 26

Engenharia de Software 27

Complexidade ciclomática: 7 8 + 2 = 1 Engenharia de Software 28

Complexidade ciclomática: 7 8 + 2 = 1 Casos de testes: 1-2-4-5-6-8 Engenharia de Software 29

--------------------------------------------------- Engenharia de Software 30