Teste de Software. Objetivos e Limites. Objetivos e Limites. Objetivos e Limites. Objetivos e Limites. Objetivos e Limites



Documentos relacionados
Unidade VI. Validação e Verificação de Software Teste de Software. Conteúdo. Técnicas de Teste. Estratégias de Teste

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Fundamentos em Teste de Software. Vinicius V. Pessoni

Introdução a Verificação, Validação e Teste de Software

GARANTIA DA QUALIDADE DE SOFTWARE

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

Professor: Curso: Disciplina:

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

Introdução a Informática. Prof.: Roberto Franciscatto

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

Engenharia de Requisitos

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

Universidade Paulista

Teste de software. Definição

Introdução Visão Geral Processos de gerenciamento de qualidade. Entradas Ferramentas e Técnicas Saídas

GENS S.A. Metodologia de Desenvolvimento Padrões de uso para o Sistema Gemini Versão Reduzida Relatório Análise de Causa

PROFESSOR: CRISTIANO MARIOTTI

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com

MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA

Processos de Desenvolvimento de Software

Aprenda as melhores práticas para construir um completo sistema de teste automatizado

ENGENHARIA DE SOFTWARE I

Engenharia de Sistemas Computacionais

Tipos de teste de software

Requisitos. Sistemas de Informações

Introdução a Computação

1. Qual das seguintes alternativas não é um tipo de revisão? 2. Qual das alternativas é um atributo da qualidade?

Dicionário da EAP - Software FarmaInfor

Verificação é um processo para se determinar se os produtos, (executáveis ou

SIMULADO: Simulado 3 - ITIL Foundation v3-40 Perguntas em Português

Sistemas Cliente-Servidor

REQUISITOS. Prof. Msc. Hélio Esperidião

Capítulo X. Gerenciar Mudanças dos Requisitos. Aluizio Saiter, M. Sc.

PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE 1. VISÃO GERAL 1.1. PROCESSOS EM GERAL

Projeto de Sistemas I

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

Prova de Conhecimento para Consultores de Implementação MPS.BR INSTRUÇÕES

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

IC-UNICAMP IC-UNICAMP

ISO Aécio Costa

A IMPORTÂNCIA DA ATIVIDADE DE TESTE NO DESENVOLVIMENTO DE SOFTWARE

Gerenciamento de Problemas

Rede de Laboratórios de Produtividade de Software

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES

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

Gestão da Qualidade Políticas. Elementos chaves da Qualidade 19/04/2009

ISO 9001:2008. Alterações e Adições da nova versão

INFORMAÇÕES ADICIONAIS

Engenharia de Software

ERP Enterprise Resource Planning

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

Imóvel Mix SGI. 1. Acesso ao Sistema 2. Aspectos Gerais 3. Configuração da Empresa 4. Cadastro de Usuários

Fornece novos benefícios para o mercado postal

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

GESTÃO DAS INFORMAÇÕES DAS ORGANIZAÇÕES MÓDULO 11

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

Análise Estruturada de Sistemas

15/09/2015. Gestão e Governança de TI. Modelo de Governança em TI. A entrega de valor. A entrega de valor. A entrega de valor. A entrega de valor

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

Atividade da gerência da qualidade

Fundamentos de Teste de Software

3 Qualidade de Software

Projeto Você pede, eu registro.

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

Engenharia de Software II

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

Tecnologia da Informação: Otimizando Produtividade e Manutenção Industrial

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Curso ITIL Foundation. Introdução a ITIL. ITIL Introduction. Instrutor: Fernando Palma fernando.palma@gmail.com

1. Introdução ao teste de software 2. Testes em um ciclo de vida de software 3. Especificado vs. Implementado 4. Preenchendo um modelo de

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

Projeto de Arquitetura

Rede de Laboratórios de Produtividade de Software

IW10. Rev.: 02. Especificações Técnicas

Juciara Nepomuceno de Souza Rafael Garcia Miani. Teste de Software

Versão Liberada. Gerpos Sistemas Ltda. Av. Jones dos Santos Neves, nº 160/174

Gerenciamento de Incidentes

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

Engenharia de Software II

CONCORRÊNCIA AA Nº 05/2009 BNDES ANEXO X PROJETO BÁSICO: DESCRIÇÃO DOS PROCESSOS DE TI

Modernização e Evolução do Acervo de Software. Gustavo Robichez de Carvalho guga@les.inf.puc-rio.br

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Teste de Software. Ricardo Argenton Ramos Engenharia de Software I

Teste de Software I Conceitos e Estratégias

Gerenciamento de Serviços de TI ITIL v2 Módulo 1 Conceitos básicos

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

Introdução à Engenharia de Software

CRM. Customer Relationship Management

ESTRUTURA DE GERENCIAMENTO DE RISCOS

Processo de Implementação de um Sistema de Gestão da Qualidade

CHECK - LIST - ISO 9001:2000

Transcrição:

Teste de Software Prof. Avelino F. Zorzo PUCRS Elaborado inicialmente pelo prof. Bernardo Copstein Teste é uma coisa óbvia? Qual a complexidade da questão? tá pronto, profi, é só testar... ué, mas pra 1 funciona... O que significa dizer: o programa funciona? Especificação: conjunto de dados de entrada e comportamento esperado. Programa: conjunto de computações a serem executadas quando o mesmo for alimentado com dados de entrada. Um programa funciona, ou melhor, está correto em relação ao que foi especificado se o comportamento do mesmo fecha com o previsto na especificação para todas as entradas possíveis. É fácil verificar se um programa funciona? Qual a complexidade da questão? Verifique a complexidade da questão: escreva um conjunto de testes para o programa implementado a partir da especificação abaixo: Um programa recebe pela linha de comando três valores inteiros. Os três valores devem ser interpretados como sendo os comprimentos dos lados de um triângulo. O programa deve imprimir uma mensagem dizendo se o triângulo é equilátero, isóceles ou escaleno. É possível garantir que o programa está correto? Pode-se prever todas as possibilidades de combinações de valores de entrada? Qual o tamanho do buffer do sistema operacional? O esforço vale a pena? Mostrar que um programa está correto é um problema não computável. Mesmo que a partir de um conjunto de casos de teste seja possível detectar e eliminar todos os bugs de um sistema não é possível saber disso. A dúvida sobre a existência de bugs irá permanecer. Quais são então os objetivos da atividade de teste? 1

Objetivos da atividade de teste: Revelar a existência de falhas. Avaliar a qualidade do produto. Teste de software é a atividade de executar um programa com o objetivo de revelar a existência de falhas e avaliar sua qualidade Não é possível eliminar todos os problemas de um sistema apenas com testes, mas pode-se reduzir significativamente sua ocorrência. Teste permite trabalhar com parâmetros de qualidade. Um bom caso de teste é aquele que tem uma elevada probabilidade de revelar um problema. O teste bem sucedido é o que revela a existência de uma falha ainda não descoberta. Conceitos Falha x Erro x Defeito Verificação x Validação Verificação: estamos construindo certo o produto? Validação: estamos construindo o produto certo? Teste X Qualidade Qualidade é um conceito mais amplo Teste gera informação sobre qualidade do produto Conceitos Oráculo de teste: É o que permite determinar se um teste passou ou falhou. Ambiente de teste: Hw+Sw necessário para o teste. Teste Agrega Valor Muitos profissionais tem dificuldade em enxergar valor agregado à atividade de teste Valor: Detectam-se falhas Gera-se informações a respeito da qualidade do produto A liberação das versões passa a ser gerenciada Sistemas mission critical : uma questão de ética Exigência de mercado Teste no Ciclo de Desenvolvimento de Software 2

Especificação de Requisitos Projeto Implementação Modelo de desenvolvimento de software tradicional: Testes Cada etapa do ciclo de desenvolvimento tem um custo relativo Se manutenção é a mais cara, teste responde por 45% do desenvolvimento. Etapa Custo Relativo Análise 3% Projeto 8% Implementação 7% Teste 15% Manutenção 67% Operação e Manutenção O teste e o reparo de problemas podem ser feitos a qualquer momento ao longo do ciclo de vida O custo da detecção cresce a medida que o ciclo de vida avança. Evolução do custo segundo Bohem: Alterar o documento de especificação de requisitos em sua primeira revisão praticamente não tem custo; Consertar bugs quando o próprio programador os detecta tem custo baixo: não existe custo de comunicação; o bug não tem de ser explicado para ninguém; não existe a necessidade de cadastrá-lo em um sistema de acompanhamento; não existe a necessidade de re-teste por parte de uma equipe de testadores; não precisa atualizar o bug status ; a falha não influencia o trabalho de mais ninguém. Consertar uma falha antes que o programa seja liberado é muito mais barato do que enviar novos discos ou um técnico para instalar um patch. Além disso, evitam-se arranhões na imagem da empresa e do produto. Especificação de Requisitos Projeto Implementação Testes caixa branca Testes Testes caixa preta Operação e Manutenção 3

Teste na especificação Os requisitos são Corretos? Consistentes (não-contraditórios)? Completos? Viáveis? Testáveis? Teste no projeto Revisão do projeto Consistência interna Verificação em relação à especificação Projeto visando testabilidade Teste na implementação Costuma ser confundido com depuração Técnicas estruturais e estratégias de unidade e integração Teste de sistema Execução dos testes Relatório de falhas Eliminação de falhas (bug fixing) Re-teste (teste de regressão) Coordenado pelo engenheiro de teste Executado pelo testador Manutenção Defeitos reportados pelos usuários Classificação de falhas Classificação das Falhas Origem das falhas: Formação do pessoal Problemas de comunicação Enganos ou esquecimentos O processo Importância da classificação Identificação de problemas recorrentes Criação de testes focados nas áreas com maiores probabilidades de falha Diferentes autores sugerem diferentes classificações Classificação das Falhas Sugestão de classificação (Burnstein) Falhas relacionadas a fase de análise Falha na descrição funcional Falha no detalhamento das funcionalidades Falha na descrição das dependências entre funcionalidades Falha na descrição das interfaces Falhas relacionadas ao projeto Falha nos algoritmos Falha de controle, lógica ou seqüência Falha nas estruturas de dados Falha na descrição das interfaces Falha na descrição funcional Falha na interface externa 4

Classificação das Falhas Falhas no código Falhas no algoritmo Falhas de controle, lógica ou seqüência Falhas de inicialização Falhas de fluxo de dados Falhas nas estruturas de dados Falhas na interface dos módulos Falhas na documentação Falhas de Hw ou Sw externo Categorias de teste classificam os testes com base: na informação (entrada) usada para definir os casos de teste, e/ou Nas características do produto que se deseja avaliar (informação desejada na saída) Níveis de teste atividades (etapas) que podemos escolher para compor o processo de teste Classificações são ortogonais Categorias: Categorias e níveis de teste Funcional (black-box) Desempenho Baseada na especificação (performance) Estrutural (white-box) enfoque na medição de parâmetros de eficiência Baseada no código Stress Estatístico enfoque nos parâmetros Enfoque na confiabilidade de sobrecarga Categorias não são estanques: performance confunde-se com stress segundo uma definição mais rígida, performance nem seria considerado teste teste estatístico e estrutural também usam informações da especificação categorias específicas (dependentes de domínio): localização, instalação, impressão, conformidade com padrões, etc. cada categoria inclui diversas técnicas Níveis: 5

Unidade Integração Sistema Estrutural X X Funcional X X X Performance X Stress X Estatístico X Teste de unidade cada componente testado em separado definição de componente variável classe (OO), módulo, procedimento,... Necessidade: especificação por componente Frameworks: Junit, CppUnit, YakTest, SQLUnit, Teste de integração Testa-se as interfaces entre os componentes necessita muita informação estrutural: arquitetura especificação das interfaces técnicas: big bang incremental Teste de sistema: Extremo do teste de integração Geralmente é o primeiro a ser implantado Pode ser usado como teste de aceitação Teste: Resumo Requisitos Plano de testes Projeto Implementação Teste unitário/integração Obrigado! Testes Teste funcional Manutenção Teste estatístico Teste de performance Teste de stress Outros aspectos 6