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

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.
Exercícios PAA- Grafos
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.
Análise Sintática Ascendente
Laboratório de Programação de Computadores II 2S/2009.
Laboratório de Programação de Computadores II Aula 1 2S/2009.
UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE MATEMÁTICA
Diagrama de Atividades
Unidade I: “Dê um mergulho rápido”
Aula prática 4 Laços Monitoria de Introdução à Programação
Exercícios PAA- Grafos
Linguagem de Programação I Parte III
© 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C (continuação)
PROGRAMAÇÃO I UNIDADE 4.
Estruturas de Dados Módulo 3 – Controle de Fluxo
Estruturas de Controle entre Instruções
Augusto Sampaio e Paulo Borba Centro de Informática
Estrutura de Decisão e Repetição
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
Estrutura de Decisão Multipla
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
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 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.
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.
Testes de SW Aula 24.
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
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.
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.
Profa. Maria Augusta Constante Puget
Estruturas de repetição Fluxo de execução sem repetição.
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
UCSal – Tecnologia em Análise e Desenvolvimento de Sistemas Programação para Aplicações WEB Profa. Semíramis Assis
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)
Teste de Software 09: Teste Estrutural Marcelo d’Amorim
Transcrição da apresentação:

Teste Estrutural

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 {…} }

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

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