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

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

Teste de Software 09: Teste Estrutural Marcelo d’Amorim

Apresentações semelhantes


Apresentação em tema: "Teste de Software 09: Teste Estrutural Marcelo d’Amorim"— Transcrição da apresentação:

1 Teste de Software 09: Teste Estrutural Marcelo d’Amorim damorim@cin.ufpe.br

2 2 Resumo Critérios de adequação estruturais

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

4 4 Teste estrutural Estrutura de um programa é um grafo Exemplos: –Parser gera uma AST –Corpo de um método define um CFG –Chamada de métodos define CG

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

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

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

8 8 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

9 9 Simplificação didática Testar a estrutura de um programa equivale a testar um grafo Esta observação deu base a construção de model-checkers: ferramentas que geram sistematicamente testes. Exemplos: Java PathFinder (Java), Verisoft (C), Spin (Promela).

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

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

12 12 Critérios de adequação de grafo 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

14 14 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 Em geral, números de caminhos de um grafo é infinito.

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?

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

17 17 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 …

18 18 Caminhos não alcançáveis (Path infeasibility) if (a < 0) { a = 0; } if (a > 10) { a = 10; } skip(); condA condB stmt1 stmt2 stmt3

19 19 Caminhos não alcançáveis (Path infeasibility) condA condB stmt1 stmt2 stmt3 Enumere os caminhos do grafo

20 20 Caminhos não alcançáveis (Path infeasibility) condA condB stmt1 stmt2 stmt3 Enumere os caminhos do grafo

21 21 Caminhos não alcançáveis (Path infeasibility) Estes caminhos são alcancáveis? if (a < 0) { a = 0; } if (a > 10) { a = 10; } skip();

22 22 Caminhos não alcançáveis (Path infeasibility) if (a < 0) { a = 0; } if (a > 10) { a = 10; } skip(); a NOT(a > 10) Estes caminhos são alcancáveis?

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 …

24 24 Subsumes (= +forte) Basic-block subsumes Statement Branch subsumes Basic-block

25 25 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

26 26 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

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

28 28 Resumo Critérios de adequação estruturais


Carregar ppt "Teste de Software 09: Teste Estrutural Marcelo d’Amorim"

Apresentações semelhantes


Anúncios Google