Prof. Me. Marcos Echevarria

Tamanho: px
Começar a partir da página:

Download "Prof. Me. Marcos Echevarria"

Transcrição

1 Prof. Me. Marcos Echevarria

2 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

3 Engenharia de Software 3

4 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

5 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

6 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

7 Engenharia de Software 7

8 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

9 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

10 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

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

12 Engenharia de Software 12

13 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

14 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

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

16 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

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; Engenharia de Software 17

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: ; Engenharia de Software 18

19 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: ; Caminho independente 3: ; Engenharia de Software 19

20 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

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

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

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

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

25 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

26 Engenharia de Software 26

27 Engenharia de Software 27

28 Complexidade ciclomática: = 1 Engenharia de Software 28

29 Complexidade ciclomática: = 1 Casos de testes: Engenharia de Software 29

30 Engenharia de Software 30