Engenharia de Software II



Documentos relacionados
Teste de Software Estrutural ou Caixa Branca. Disciplina de Engenharia de Software prof. Andrey Ricardo Pimentel

IES-300. Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Me. Álvaro d Arce alvaro@darce.com.br

Engenharia de Software II

Testes Baseados na Implementação. (fluxo de controle) Baseado em notas de aula da profa. Eliane Martins

Engenharia de Software II

Técnicas de Teste de Software

Engenharia de Software II

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Prof. Me. Marcos Echevarria

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

Engenharia de Software II

Qualidade de Software. Profa. Cátia dos Reis Machado

Fundamentos de Teste de Software

Juciara Nepomuceno de Souza Rafael Garcia Miani. Teste de Software

Práticas de. Engenharia de Software. Givanaldo Rocha de Souza

Introdução a Algoritmos Parte 04

ENGENHARIA DE SOFTWARE Prof. Ricardo Rodrigues Barcelar

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Princípios do teste de software

Engenharia de Software II

ALGORITMOS cont. Universidade Federal do Rio Grande do Norte Centro de Tecnologia Departamento de Computação e Automação

Engenharia de Software II

Programação científica C++

Testes de Software. Testes de Software. Teste de Validação. Teste de Defeito. Modelo de Entrada e Saída. Modelo de Entrada e Saída

IES-300. Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Me. Álvaro d Arce alvaro@darce.com.br

Implantação. Prof. Eduardo H. S. Oliveira

Engenharia de Software II

Como melhorar a Qualidade de Software através s de testes e nua. Cláudio Antônio de Araújo 22/11/2008

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Testes de Software. Testes de Software. Teste de Validação. Teste de Defeito. Modelo de Entrada e Saída. Modelo de Entrada e Saída

APOSTILA DE EXCEL 2007

Existem três categorias básicas de processos empresariais:

Microsoft Access: Criar consultas para um novo banco de dados. Vitor Valerio de Souza Campos

MICROSOFT OFFICE EXCEL 2007

Teste de Software II Técnicas de Teste

Convertendo Algoritmos para a Linguagem C

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Engenharia Reversa e Reengenharia

a) Teste das funções do sistema com outros sistemas b) Teste de componentes que em conjunto compõem a função do sistema

Engenharia de Software II: Desenvolvendo o Orçamento do Projeto. Prof. Msc Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br

PLANEJAMENTO OPERACIONAL - MARKETING E PRODUÇÃO MÓDULO 5 CONCEITOS DO PLANEJAMENTO OPERACIONAL

Engenharia de Software II

1. FUNÇÕES NO EXCEL 2007

ENGENHARIA DE SOFTWARE I

Soluções de Retrofit Modernize, aumentando confiabilidade e eficiência do seu equipamento

Internet e Programação Web

Informática I. Aula 5. Aula 5-13/05/2006 1

AULA 11 Desenhos, recursos e obstáculos

Políticas de Qualidade em TI

c. Técnica de Estrutura de Controle Teste do Caminho Básico

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

Fundamentos de Teste de Software

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis. Profª Esp.: Maysa de Moura Gonzaga

AULA 6 - Operações Espaciais

Engenharia de Software II

AULA 1 Iniciando o uso do TerraView

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

MODELAGEM DE SISTEMAS DE INFORMAÇÃO

OPERADORES E ESTRUTURAS DE CONTROLE

Tarefa Orientada 14 Subconsultas

Figura 1 - Visão geral do projeto

28/9/2010. Unidade de Controle Funcionamento e Implementação

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias

COMPUTADOR,, que máquina é essa?

White-box test: Também conhecido como teste estrutural, tem por objetivo validar os dados derivados das funções do sistema.

Resolução de problemas e desenvolvimento de algoritmos

Sistemas Operacionais

4 Segmentação Algoritmo proposto

NORMA ISO/IEC Isac Aguiar isacaguiar.com.br

CURSO BÁSICO DE PROGRAMAÇÃO AULA 7

Gerência de Projetos

Engenharia de Software II

Diagramasde Interação. Prof. Anderson Cavalcanti UFRN-CT-DCA

Projectos de Software

PLANILHA PARA GERENCIAR NOTAS DAS TURMAS

Aula 27 Testes Caixa Branca. Alessandro Garcia Willian Oizumi LES/DI/PUC-Rio Novembro 2014

Engenharia de Software

Modelo Cascata ou Clássico

Ferramenta de Análise Código Fonte em Delphi. Aluno - Roque César Possamai Orientador - Everaldo Artur Grahl

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no

Qualidade de Software MPS.BR - Questões CESPE (2010 a 2013)

Introdução à Lógica de Programação

Comandos de Manipulação

Sistemas de Informação I

Programa do Módulo 2. Processo Unificado: Visão Geral

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

Linguagem C: Estruturas de Controle. Prof. Leonardo Barreto Campos 1

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Testar os programas para estabelecer a presença de defeitos no sistema. Teste de Software. Teste de defeitos. Objetivos. Tópicos

15 Computador, projeto e manufatura

Programação Funcional. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2015.

Java Como Programar, 8/E

QUESTÃO 2: A respeito do diagrama de caso de uso apresentado, assinale a alternativa correta.

FACULDADE DE TECNOLOGIA SENAC GOIÁS

PROJETO (OU DESIGN) DO SOFTWARE Diagrama de Estrutura

Introdução à Lógica de Programação (cont.)

Transcrição:

Engenharia de Software II Aula 9 http://www.ic.uff.br/~bianca/engsoft2/ Aula 9-19/05/2006 1

Ementa Processos de desenvolvimento de software Estratégias e técnicas de teste de software (Caps. 13 e 14 do Pressman) Métricas para software Gestão de projetos de software: conceitos, métricas, estimativas, cronogramação, gestão de risco, gestão de qualidade e gestão de modificações Reengenharia e engenharia reversa Aula 9-19/05/2006 2

Testes Caixa-Preta e Caixa-Branca Testes Caixa-Preta São conduzidos na interface do software, sem preocupação com a estrutura lógica interna do software. Testes Caixa-Branca São baseados em um exame rigoroso do detalhe procedimental. Caminhos lógicos e colaborações entre componentes são testadas. Entrada Entrada Software Software Saída Saída Aula 9-19/05/2006 3

Técnicas de Teste Caixa-Branca Usando métodos de teste caixa-branca, podemos derivar casos de teste que: 1. Garantam que todos os caminhos independentes de um módulo sejam executados pelo menos uma vez. 2. Exercitem todas as decisões lógicas de seu lado verdadeiro e falso. 3. Executem todos os ciclos (loops) nos seus limites e dentro de seus intervalos operacionais. 4. Exercitem as estruturas de dados internas. Tipos de teste caixa-branca: Teste de Caminho Básico Teste de Estrutura de Controle Aula 9-19/05/2006 4

Teste de Caminho Básico Permite ao projetista de caso de teste medir a complexidade lógica de um projeto procedimental. Essa medida é usada como guia para definir um conjunto básico de caminhos de execução. Casos de teste derivados para exercitar o conjunto básico executam garantidamente cada comando pelo menos uma vez. Aula 9-19/05/2006 5

Notação de Grafo de Fluxo Serve como notação útil para entender o fluxo de controle e ilustrar a abordagem de caminho básico. Seqüência Se While Repeat...Until Nós do grafo de fluxo Arestas do grafo de fluxo Aula 9-19/05/2006 6

De Fluxograma para Grafo de Fluxo 1 1 2,3 2 7 6 R 3 8 R 2 4,5 3 9 R 1 6 4 10 R 4 11 7 9 8 10 5 11 Áreas limitadas por arestas e nós são chamadas de regiões. Aula 9-19/05/2006 7

Lógica Composta SE a OU b ENTÃO procedimento x SENÃO procedimento y FIM-SE y b x a x Nós Predicados SE a E b ENTÃO procedimento x SENÃO procedimento y FIM-SE y a y b x Aula 9-19/05/2006 8

Caminhos Independentes de Programa Um conjunto de caminhos independentes para o grafo da figura é: Caminho 1: 1-11 Caminho 2: 1-2-3-4-5-10-1-11 Caminho 3: 1-2-3-6-8-9-10-1-11 7 6 R 3 9 8 1 2,3 R 2 4,5 R 1 Caminho 4: 1-2-3-6-7-9-10-1-11 Um caminho independente deve incluir pelo menos uma aresta nova. 10 11 R 4 Aula 9-19/05/2006 9

Conjunto-Base É um conjunto de caminhos independentes em que cada aresta aparece pelo menos uma vez. Testes projetados para forçar a execução do conjunto-base garantem que: Todo comando do programa terá sido executado pelo menos uma vez. Cada condição terá sido executada no seu lado verdadeiro e no seu lado falso. O conjunto-base não é único. Diversos conjuntos-base diferentes podem ser derivados para um dado projeto procedimental. Aula 9-19/05/2006 10

Complexidade Ciclomática É uma métrica de software que fornece uma medida quantitativa da complexidade lógica de um programa. Fornece um limite superior para o número de caminhos independentes num conjunto-base. Fornece um limite superior para a quantidade de testes que deve ser conduzida para garantir que todos os comandos sejam executados pelo menos uma vez. Aula 9-19/05/2006 11

Cálculo da Complexidade Ciclomática Pode ser calculada de três maneiras equivalentes: 1. V(G) = R onde R é o número de regiões do grafo de fluxo. 2. V(G) = E N +2 onde E é o número de arestas e N é o número de nós do grafo G. 3. V(G) = P + 1 onde P é o número de nós-predicados contidos no grafo G (só funciona se os nós-predicado tiverem no máximo duas arestas saindo) Aula 9-19/05/2006 12

Complexidade Ciclomática 1. O grafo de fluxo tem quatro regiões. 2. V(G) = 11 arestas 9 nós + 2 = 4. 3. V(G) = 3 nóspredicado + 1 = 4 7 6 R 3 9 8 1 2,3 R 2 10 4,5 R 1 R 4 11 Aula 9-19/05/2006 13

Derivação de Casos de Teste O método de teste de caminho básico pode ser aplicado a um projeto procedimental ou ao código-fonte. Os seguintes passos devem ser seguidos: 1. Desenhar o grafo de fluxo correspondente ao projeto ou código-fonte. 2. Determinar a complexidade ciclomática do grafo de fluxo resultante. 3. Determinar um conjunto-base de caminhos independentes. 4. Preparar casos de teste que vão forçar a execução de cada caminho do conjunto-base. Aula 9-19/05/2006 14

Exemplo: Passo 1 Procedimento média(valor[]) i=1; soma=0; 1 total.entrada=0; total.válidas=0 2 3 Faça-Enquanto (valor[i] -999 E total.entrada<100) 7 incremente total.entrada de 1; 4 Se 5 6 (valor[i] min E valor[i] max) Então incremente total.válidas de 1; soma = soma + valor[i] Fim-Se incremente i de 1; 8 Fim-Enquanto 9 Se total.válidas>0 10 Então média = soma/total.válidas; Senão média = -999; 12 Fim-Se 13 Fim média 11 12 10 13 11 Aula 9-19/05/2006 15 8 1 2 3 4 5 6 9 7

Exemplo: Passo 2 1 V(G) = 6 regiões V(G) = 17 arestas 13 nós + 2 = 6 V(G) = 5 nóspredicados + 1 = 6 12 10 R 5 13 11 R 6 R 2 2 3 4 5 R 1 R 4 6 8 R 3 7 Aula 9-19/05/2006 16 9

Exemplo: Passo 3 1 Temos que especificar 6 caminhos independentes: 2 1. 1-2-10-12-13 2. 1-2-10-11-13 3 3. 1-2-3-10-11-13 10 4 4. 1-2-3-4-5-8-9-2-... 5. 1-2-3-4-5-6-8-9-2-... 6. 1-2-3-4-5-6-7-8-9-2-... 12 13 11 5 6 8 7 Aula 9-19/05/2006 17 9

Exemplo: Passo 4 Caso de Teste do Caminho 1 valor[1] = -999 Resultado esperado: média=-999 e outros totais com valores iniciais Caso de Teste do Caminho 2 valor[1] = 1, valor[2]=3,valor[3]=2, valor[4]=-999, min=0, max=10 Resultado esperado: média=2, total.válidas=3, total.entradas=3. Caso de Teste do Caminho 3 valor[1]=valor[2]=...=valor[100]=valor[101]=1, min=0, max=10 Resultado esperado: média=1, total.válidas=100, total.entradas=100 Aula 9-19/05/2006 18

Teste de Estrutura de Controle O teste de caminho básico é simples e altamente eficaz, mas não é suficiente por si só. Exitem outros tipos de testes que focam nas estruturas de controle: Teste de Condição Teste de Fluxo de Dados Teste de Ciclo Aula 9-19/05/2006 19

Teste de Condição Exercita todas as condições lógicas contidas em um módulo de programa para garantir que elas não contém erros. Condição simples: é uma variável booleana ou uma expressão relacional, possivelmente precedida por um NÃO. Condição composta: duas ou mais condições simples ligadas por um operador OU, E ou NÃO. Aula 9-19/05/2006 20

Teste de Fluxo de Dados Seleciona caminhos de teste de acordo com a localização das definições e dos usos das variáveis no programa. Dado um comando S, definimos: DEF(S) = { X comando S contém uma definição de X} USO(S) = { X comando S contém um uso de X} Uma variável X definida em S é considerada viva em S, se existir um caminho de S para S que não contenha nenhuma outra definição de X. Uma cadeia definição-uso (DU) da variável X é da forma [X,S,S ], X pertence a DEF(S) e USO(S ) e a definição de X no comando S está viva no comando S. Estratégia: exigir que cada cadeia DU seja coberta pelo menos uma vez. Aula 9-19/05/2006 21

Teste de Ciclo Focaliza exclusivamente na validade de construções de ciclos (loops). Ciclos simples Ciclos concatenados Ciclos aninhados Ciclos desestruturados Aula 9-19/05/2006 22

Ciclos Simples O seguinte conjunto de testes pode ser aplicado a ciclos simples em que n é o número máximo de passagens permitidas: 1. Pule o ciclo completamente. 2. Apenas uma passagem pelo ciclos. 3. Duas passagens pelo ciclo. 4. m passagens pelo ciclo em m < n. 5. n - 1, n, n + 1 passagens pelo ciclo. Aula 9-19/05/2006 23

Ciclos Aninhados Para evitar que o número de testes cresça geometricamente, deve seguir a seguinte abordagem: 1. Comece testando o ciclo mais interno, ajustando os outros ciclos para valores mínimos. 2. Trabalhe em direção ao exterior, conduzindo testes para o ciclo seguinte, mas mantendo todos os ciclos externos nos valores mínimos e os internos nos valores típicos. 3. Continue até que todos os ciclos sejam testados. Aula 9-19/05/2006 24

Ciclos Concatenados Dois possíveis casos: Contadores independentes Usar a abordagem de ciclos simples para cada um deles. Contador de ciclo para o ciclo 1 é usado como valor inicial para o ciclo 2. Usar a abordagem de ciclos aninhados. Aula 9-19/05/2006 25

Ciclos Desestruturados Devem ser reprojetados. Aula 9-19/05/2006 26