Teste de Software 01: Introdução

Slides:



Advertisements
Apresentações semelhantes
Teste de Software 11: Teste baseado em falhas
Advertisements

Desenvolvimento de Plug-ins Orientado a Testes
SISTEMAS OPERACIONAIS (SO) Aula 5 Luciana A. F. Martimiano 2002
Introdução à Programação
Programação em Java Prof. Maurício Braga
Rational Unified Process
Transformada de Laplace. Teoremas da Transformada de Laplace
15/1/2014 Professor Leomir J. Borba- – 1 Tec. Em Analise e desenvolv. De Sistemas analise.
Prentice Hall Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 8 Defeitos e falhas de software Especificação errada: pode não.
Garantia de Qualidade do software
ISO/IEC – 6 Avaliação do Produto – Módulos de Avaliação
Tópicos em Engenharia de Software II
FERRAMENTAS PARA ANÁLISE DE RISCO
DIAGRAMA DE ATIVIDADES
DIAGRAMA DE CASOS DE USO PERSPECTIVA CONCEITUAL
April 05 Prof. Ismael H. F. Santos - 1 Modulo II CheckStyle Professor Ismael H F Santos –
April 05 Prof. Ismael H. F. Santos - 1 Modulo II Findbugs Professor Ismael H F Santos –
POTENCIAÇÃO DE NÚMEROS RACIONAIS
AED – Algoritmos e Estruturas de Dados
Test Driven Development
Revisões de Software Parte 1
Simple Network Management Protocol (SNMP)
Auditoria de Segurança da Informação
Aula 8 Orientação à Objetos
Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos
Aula 10 Manipulação de Exceções
Testes de Mutação baseado no artigo de Mário Correia,
FERRAMENTA PARA ANÁLISE DE IMPACTO BASEADO EM RASTREABILIDADE DE
Modularização: funções e procedimentos
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Classes e objetos Modelagem
Introdução a Programação JAVA
Compras - Controle de estoque por lote
Desenvolvimento de Projetos e Aplicações Web
Pontifícia Universidade Católica de Campinas
Como controlar o caixa Supermercados.
Técnicas e Projeto de Sistemas
ME623 Planejamento e Pesquisa
Monitoria GDI Aula Prática
testes de regressão e testes baseados em riscos
Cap 4 – Métricas do Processo e Projeto de Software
Salas de Matemática.
Inserir crédito para cliente
Conceitos de Lógica Digital
O nosso dinheiro….
Prof. Alexandre Vasconcelos
Um Framework Para Testes
How to Break Software Capítulo 3 Taíse Dias Testing from the user Interface.
CSP: Semântica e Refinamento
Teste de Software 03: Teste e o processo de desenvolvimento
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís Franco 2009
1.
Orientação a Objetos e Java Graduação em Ciência da Computação
Organização dos sistemas de computadores rr-09-r.01 UC: Organização de Computadores Docente: Prof. MSc. Marcelo Siedler.
EFD – SPED FISCAL 1. Objetivos: O arquivo Sped Fiscal é uma obrigação fiscal e deve ser gerado mensalmente por alguns estabelecimentos. Esse arquivo deve.
Estruturas de Dados PROFESSOR DIÓGENES FURLAN. Estruturas de Dados (ED) Programas operam sobre dados Dados são relacionados e possuem estrutura Como representar.
Evidências.com 1/31 Projeto de Pesquisa: contexto.
Evidências.com 1/24 Projeto de Pesquisa Método estatístico (Tamanho da Amostra)
Nome alunos 1 Título UC. Título – slide 2 Conteúdo Conteúdo 2.
Financeiro – Contas a Receber
Visão de testes em Software Rogério Monteiro, CIn UFPE 02 – Maio
SCORE 2009 – aula a convite do Prof. Jaelson Castro Marcelo d’Amorim Testes em 2h.
Teste de Software 14: Geração de teste baseado em modelos: MBT
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE AULA 5
Teste Simbólico Marcelo d’Amorim
Teste de Software 02: Oracles Marcelo d’Amorim
Teste de Software 08: Teste Funcional Marcelo d’Amorim
SBMF 2008, Salvador-BA, Brasil Marcelo d'Amorim Fundamentos do Teste de Software.
Introdução 1.
Transcrição da apresentação:

Teste de Software 01: Introdução Marcelo d’Amorim damorim@cin.ufpe.br

Resumo desta aula Perspectiva Alguma terminologia Provar corretude ou encontrar erros? Alguma terminologia Caso de teste, suite de teste, falha, defeitos, depuração, etc. Dados estatísticos sobre a área

Perspectiva: Métodos Formais e Informais Prova de teorema Prova propriedades complexas, mas requer muito esforço humano. Análise estática (interpretação abstrata) Prova propriedades simples; pode apresentar alarmes falso. Mas é automático. Teste Não prova corretude e não é automático!

Perspectiva: Métodos Formais e Informais “Testing can never demonstrate the absence of errors in software, only their presence.” -- E.W.Dijkstra

Perspectiva: Métodos Formais e Informais “Testing can never demonstrate the absence of errors in software, only their presence.” -- E.W.Dijkstra Principal limitação de testes é incompletude: é possível que teste não encontre um erro latente.

Perspectiva: Métodos Formais e Informais “Testing can never demonstrate the absence of errors in software, only their presence.” -- E.W.Dijkstra Principal limitação de testes é incompletude: é possível que teste não encontre um erro latente. Apesar disto, testes também é: Simples de implantar Documenta intenções e designs, e É eficaz em encontrar erros. Inclusive, erros complexos como memory leakage e deadlock

 "Beware of bugs in the above code; I have only proved it correct, not tried it." -- Donald Knuth

O que é um teste?

O que é um teste? “A set of test inputs, execution conditions, and expected results developed for a particular objective, such as to exercise a particular program path or to verify compliance with a specific requirement” [IEEE, do178b]

O que é um teste? “A set of test inputs, execution conditions, and expected results developed for a particular objective, such as to exercise a particular program path or to verify compliance with a specific requirement” [IEEE, do178b]

O que é um teste? “A set of test inputs, execution conditions, and expected results developed for a particular objective, such as to exercise a particular program path or to verify compliance with a specific requirement” [IEEE, do178b]

Partes de um (caso de) teste “Test inputs” = dados de entrada “Execution conditions” = precondições “Expected results” (oracle) = resultado esperado (oráculo)

Estrutura de um teste Exemplo: caixa eletrônico Cenário: saque de dinheiro Teste: ?

Estrutura de um teste Exemplo: caixa eletrônico Cenário: saque de dinheiro Teste: Inserir cartão Confirmar se leu corretamente Informar senha Confirmar se válida Interromper se opção saque indisponível Informar opção de saque Informar valor de saque Retirar dinheiro Conferir dinheiro

Estrutura de um teste Exemplo: caixa eletrônico Cenário: saque de dinheiro Teste: ENTRADA Inserir cartão Confirmar se leu corretamente Informar senha Confirmar se válida Interromper se opção saque indisponível Informar opção de saque Informar valor de saque Retirar dinheiro Conferir dinheiro CONDIÇÃO RESULTADO ESPERADO

Suíte de teste Definição: conjunto de casos de testes Em geral, relacionado a módulo do sistema Exemplo: suíte de regressão

comum: rodar teste de regressão ao final de cada dia de desenvolvimento continuous testing: rodar teste de regressão a medida que mudanças aparecem impact analysis: rodar apenas os testes afetados por mudanças no código

Terminologia IEEE STD. 982.2-1988 (http://standards.ieee.org/) Fault ou bug (defeito) problema Failure (erro) manifestação do problema Mais detalhes Software Metrics and Reliability [Rosenberg et al., ISSRE’98]

Terminologia IEEE STD. 982.2-1988 (http://standards.ieee.org/) Fault or bug (defeito) problema Failure (erro) manifestação do problema Mais detalhes Software Metrics and Reliability [Rosenberg et al., ISSRE’98] CAUSA EFEITO

Exemplo // pre condicao: v != null public static void sort(int[] v) { for (int i = 0; i <= v.length; i++) { …v[i] … }

Exemplo // pre condicao: v != null public static void sort(int[] v) { for (int i = 0; i <= v.length; i++) { …v[i] … } CAUSA EFEITO

Teste e Depuração Teste é atividade de localizar erros! Depuração é atividade de localizar bugs! Exemplo sort(new int[]{});

Terminologia IEEE STD. 982.2-1988 (http://standards.ieee.org/) Fault or bug (defeito) problema Failure (erro) manifestação do problema Mais detalhes Software Metrics and Reliability [Rosenberg et al., ISSRE’98] Teste procura por manifestações de um problema

Como se manifesta? Erros de lógica Erros universais

Inspeção Forma-se uma equipe para identificar defeitos e chegar a um consenso Qualquer artefato pode ser alvo de inspeção Exemplo Walkthrough (forma de code peer review)

Teste x Depuração x Inpeção Teste e Depuração são atividades ortogonais Inspeção Manual (necessariamente) Complementar à teste e depuração

Alguns dados estatísticos Entre 70 e 80% do custo de desenvolvimento de software envolve atividades de teste e depuração -- National Institute of Standards and Technology (NIST) 2002.

Alguns dados estatísticos Gartner Group estimou em 2006 que o mercado mundial de teste de software é de $13bi. e o tamanho do mercado global de serviços é em torno de $6.1bi. -- www.expresscomputeronline.com

Resumo desta aula Perspectiva Alguma terminologia Provar corretude ou encontrar erros? Alguma terminologia Caso de teste, suíte de teste, falha, defeitos, depuração, etc. Dados estatísticos sobre a área

Enquete ant make JUnit3 JUnit4