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

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

Teste Estrutural. 2 Teste estrutural Teste baseado na estrutura do código Mais precisamente, –Critério de adequação baseia-se no código!

Apresentações semelhantes


Apresentação em tema: "Teste Estrutural. 2 Teste estrutural Teste baseado na estrutura do código Mais precisamente, –Critério de adequação baseia-se no código!"— Transcrição da apresentação:

1 Teste Estrutural

2 2 Teste estrutural Teste baseado na estrutura do código Mais precisamente, –Critério de adequação baseia-se no código!

3 3 Teste estrutural Estrutura de um programa é um grafo Exemplos: –Parser gera uma AST –Fluxo de controle de um método define CFG –Fluxo de chamada de métodos define CG

4 4 Control-Flow Graph (CFG)‏ stmt0; while (condA){ if (condB){ stmt1; stmt2; } stmt3; } stmt4

5 5 CFG stmt0; while (condA){ if (condB){ stmt1; stmt2; } stmt3; } stmt4 stmt0 condA stmt1; stmt2; stmt3 condB stmt4

6 6 Simplificação didática Testar a estrutura de um programa equivale a testar um grafo O que é um teste? (Para um grafo)

7 7 Simplificação didática Testar a estrutura de um programa equivale a testar um grafo O que é um teste para um grafo? –Sequência de transiçoes a partir do nó inicial que termina em uma folha

8 8 Simplificação didática Testar a estrutura de um programa equivale a testar um grafo Model checkers de programas (ferramentas que geram sistematicamente testes) usam o mesmo princípio. Exemplos: Java PathFinder (Java), Verisoft (C), Spin (Promela).

9 9 Cobertura de Grafos stmt0 condA stmt1; stmt2; stmt3 condB stmt4 b c a f d e t0 t1t6 t2 t3 t4 t5

10 10 Cobertura de Grafos Exemplo de teste –t0, t6 b c a f d e t0 t1t6 t2 t3 t4 t5

11 11 Critérios de adequação de grafo Nó Transição Caminho

12 12 Critérios de adequação de grafo Nó –Teste suíte TS é adequado a nó se para cada nó n no grafo G existe t em TS que cobre n Transição Caminho

13 13 Critérios de adequação de grafo Nó –Teste suíte TS é adequado a nó se para cada nó n no grafo G existe t em TS que cobre n Transição Caminho Grafos com ciclos possuem números infinito de caminhos

14 14 Ciclos Problema: –Como medir cobertura de caminho? Grafo com ciclos contém infinidade de caminhos Solução comum: –Limitar o número de iterações! Transforma um grafo em uma árvore

15 15 Exercício Reporte suíte de teste adequada a nó Reporte suíte de teste adequada a transição Existe suíte de teste adequada a caminho? Existe suíte de teste adequada a caminho de até N transições? b c a f d e t0 t1 t6 t2 t3 t4 t5

16 Caminhos inalcançáveis 16 É possível existir caminhos inalcançáveis no programa. Isto é, não há execução que o visite.

17 Caminhos inalcançáveis 17 if (a < 0) { a = 0; } if (a > 10) { a = 10; } skip(); condA condB stmt1 stmt2 stmt3

18 18 Caminhos inalcançáveis condA condB stmt1 stmt2 stmt3 Enumere os caminhos do grafo

19 19 Caminhos inalcançáveis condA condB stmt1 stmt2 stmt3 Enumere os caminhos do grafo

20 20 Caminhos inalcançáveis Estes caminhos são alcancáveis? if (a < 0) { a = 0; } if (a > 10) { a = 10; } skip();

21 21 Caminhos inalcançáveis if (a < 0) { a = 0; } if (a > 10) { a = 10; } skip(); a NOT(a > 10)‏ Estes caminhos são alcancáveis?

22 22 Lista incompleta de critérios de adequação estruturais para programa Statement Basic-Block Branch Basic condition Compound condition MC/DC Path Boundary-Interior Loop boundary Call …

23 23 Lista incompleta de critérios de adequação estruturais para programa Statement Basic-Block Branch Basic condition Compound condition MC/DC Path Boundary-Interior Loop boundary Call … Basic-block subsumes Statement Branch subsumes Basic-block

24 24 Cobertura baseada em Condições Lógicas Terminologia –Condições básicas e compostas Exemplo: (((a || b) && c) || d) && e –a, b, c, d, e são condições básicas –(a || b) é uma condição composta

25 25 Cobertura baseada em Condições Lógicas Basic condition –Requer que toda condição básica seja satisfeita pela execução de algum teste Compound Condition –Requer que toda condição composta seja satisfeita pela execuçao de algum teste MC/DC –Requer que para cada condição básica C tenham-se 2 casos de teste que fixem o valor de todas as outras condições básicas, mas varie C e o resultado de toda expressão. RTCA/DO-178B, EUROCAE ED-12b

26 MC/DC Objetivo é isolar efeito de cada condição básica no resultado de toda expressão 26

27 27 Exercício Gerar suíte de teste adequada a (i) basic condition, (ii) compound condition, e (iii) MC/DC para o bloco abaixo { if ((((a || b) && c) || d) && e) {…} else {…} }

28 Solução ((((a || b) && c) || d) && e)‏ 28 a b c d e T 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1

29 Resumo Várias formas de se medir cobertura de código Ciclos Caminhos inalcançáveis 29


Carregar ppt "Teste Estrutural. 2 Teste estrutural Teste baseado na estrutura do código Mais precisamente, –Critério de adequação baseia-se no código!"

Apresentações semelhantes


Anúncios Google