Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouJerónimo Bayer Minho Alterado mais de 7 anos atrás
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.