Teste de Software 09: Teste Estrutural Marcelo d’Amorim

Slides:



Advertisements
Apresentações semelhantes
Algoritmos de Caminho Mínimo em Grafos
Advertisements

Teste de Software 11: Teste baseado em falhas
Estruturas de Controle
Estruturas de Repetição
Capitulo 6 Iterações.
Recursividade e Iteração Factorial, Fibonacci e Maior Divisor Comum
Teste de Software Parte 3.
Árvores.
Automato de Pilha.
Linguagem C Estruturas de Controle de Fluxos
Algoritmos Escher.
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Análise Sintática Ascendente
9 Controle de fluxo Seqüenciadores. Jumps. Escapes. Exceções.
Laboratório de Programação de Computadores II 2S/2009.
Laboratório de Programação de Computadores II Aula 1 2S/2009.
Paradigmas de programação
Diagrama de Atividades
Introdução a linguagem Python
Unidade I: “Dê um mergulho rápido”
Exercícios PAA- Grafos
Material Didático Proposto
PROGRAMAÇÃO I UNIDADE 4.
Estruturas de Dados Módulo 3 – Controle de Fluxo
Estruturas de Controle entre Instruções
Estrutura de Decisão e Repetição
Aula 6 - Estruturas de Controle
Aula 4 – Java – Prof. Marcelo Heitor
Estrutura de decisão Neste tipo de estrutura o fluxo de instruções a ser seguido é escolhido em função do resultado da avaliação de uma ou mais condições.
Linguagem de Programação JAVA
Módulo I Capítulo 4: Operador de Repetição
Iteração – Capítulo 5 Programming from Specifications Carroll Morgan Prentice-Hall, 1994 Integrantes: Alex Motta Carlos Nascimento Paulo Maia.
Compiladores.
Programação e Aplicações Gráficas
Inteligência Artificial
JAVASCRIPT Tutorial Básico Aden Soares OBS: NÃO CONFUNDIR JAVASCRIPT COM JAVA ► O que é JavaScript? É uma linguagem de programação utilizada para.
Sistemas Digitais e Automação
Teste baseado em falhas
A Linguagem de Máquina – Desvios e Laços
Teste de Sistemas de Software
Teste de Software 14: Geração de teste baseado em modelos: MBT
Aula Prática 5 Monitoria IP/CC (~if669). Roteiro 1. 1.Recursão 2. 2.Escopo de Variáveis 3. 3.Arrays 4. 4.Strings.
Recursividade Profs. De Prog2 e Lab2.
Teste de Software 15: Geração randômica de teste Marcelo d’Amorim
Teste Simbólico Marcelo d’Amorim
Data Flow Testing. Vários critérios de adequação até aqui Baseado em entradas de função (funcional)‏ Baseado na estrutura do programa (estrutural)‏ Baseado.
Teste de Software 02: Oracles Marcelo d’Amorim
Adequação do Teste. 2 Teste é incompleto Origem da incompletude –Seqüências insuficientes –Classificadores parciais É necessário uma medida que indique.
Critérios de adequação e os diversos tipos de teste
Teste Simbólico Execução do programa com dados simbólicos ao invés de dados reais Técnica de poio à seleção de dados para o teste estrutural.
Teste baseado em falhas. Problema Usuário não sabe se a suíte de teste é adequada ou não para encontrar erro Solução 1 –Medir cobertura. Mas ainda não.
Equipe: Aluno 1 Matrícula Aluno 2 Matrícula Aluno 3 Matrícula Cálculo Numérico Título da Apresentação.
Teste de Software 06: Adequação do Teste Marcelo d’Amorim
Introdução a Programação
Teste de Software 08: Teste Funcional Marcelo d’Amorim
Planejamento do Teste. Define que “tipo de teste” se quer fazer Depende de restrições do ambiente. Exemplo: –Deve basear-se em requisitos –Limitações.
Teste Estrutural. 2 Teste estrutural Teste baseado na estrutura do código Mais precisamente, –Critério de adequação baseia-se no código!
Data Flow Testing. Vários critérios de adequação até aqui Baseado em entradas de função (funcional)‏ Baseado na estrutura do programa (estrutural)‏ Baseado.
Sintaxe de uma Linguagem
SBMF 2008, Salvador-BA, Brasil Marcelo d'Amorim Fundamentos do Teste de Software.
Programação para Web I AULA 4 ESTRUTURAS DE CONTROLE.
1 Programação – JAVA Unidade 3 – Loops e Lógica Prof. Aparecido V. de Freitas Curso de Ciência da Computação.
Laço ou loop e repetição
CONDICIONAL IF Desenvolvido pelo Mestrando Rodrigo Moreira Barreto – VHLab (Virtual Humans Simulation Laboratory – PUCRS) 1 Desenvolvido por: Rodrigo Moreira.
Programação Computacional Profa. Madeleine Medrano
ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1.
Aula Prática 5 Recursão Monitoria  Na linguagem C, como em muitas outras linguagens, uma função pode chamar a si própria.  Uma função assim.
18/09/ /12/20082 Testes Baseados Em Modelo Diana Rúbia Paulo César Qualidade, Processos e Gestão de Software Alexandre Vasconcelos {drrr, pco,
Adequação do Teste. 2 Teste é incompleto É necessário uma medida que indique quão completo é o teste –Indica quando o testador deve parar de testar.
IF E ITERAÇÃO WHILE Dilvan Moreira (baseado no livro Big Java e T. Munzner)
Transcrição da apresentação:

Teste de Software 09: Teste Estrutural Marcelo d’Amorim

2 Resumo Critérios de adequação estruturais

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

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 Control-Flow Graph (CFG) stmt0; while (condA){ if (condB){ stmt1; stmt2; } stmt3; } stmt4

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

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

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 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 Cobertura de Grafos b c a stmt0 condA stmt1; stmt2; stmt3 condB stmt4 f d e t0 t1t6 t2 t3 t4 t5

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

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

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

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

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

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 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 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 Subsumes (= +forte) Basic-block subsumes Statement Branch subsumes Basic-block

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