teste de software introdução prof. vanilson burégio prof. vanilson burégio [email protected]

30
Teste de Software Introdução Prof. Vanilson Burégio [email protected]

Upload: internet

Post on 18-Apr-2015

107 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Teste de Software Introdução

Prof. Vanilson Buré[email protected]

Page 2: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Introdução Objetivos Definição

Motivação Por que investir em testes?

Visão de negócio Visão técnica

Quando parar de testar? Custo/benefício

AgendaAgenda

Page 3: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Introdução

Page 4: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

IntroduçãoIntrodução

“O desenvolvimento de sistemas de software envolve uma série de atividades de produção

onde oportunidades para injeção de falhas humanas são enormes” [Pressman, 2007]

Evolução da profissão de Engenharia de Software Software desempenha um importante papel em

nossas vidas (social e econômica) Sistemas cada vez mais complexos

Aumenta a pressão para foco em questões de qualidade SW de baixa qualidade devem ser rejeitadosFalhas podem causar catástrofes (dependendo do SW)

Page 5: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Objetivo dos testesObjetivo dos testes

O principal objetivo de testar um software é encontrar, de forma sistemática, o maior número

possível de defeitos embutidos durante a construção do software

O que pode ser considerado um defeito?

Visão de teste como um processo

Page 6: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

ExemploExemplo

Calculadora do Windows 5.000 – 5 = 0 O resultado não deveria ser

4095? Pode parecer confuso para

alguns usuários...

O “.” (ponto) torna-se uma “,” (vírgula) que é automaticamente assumida como ponto decimal

Para determinar se é um defeito é preciso verificar

a especificação de requisitos do software

É um defeito? Por que? Por que não?

Page 7: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

O que é teste de software?O que é teste de software?

Teste de software é o processo de validação e verificação de um

produto para determinar se ele atingiu suas especificações e funcionou corretamente no

ambiente para o qual foi projetado.

Corretude

Completu

de

É possível termos produto errado funcionando corretamente

Ou ainda produto correto funcionando inadequadamente

Page 8: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Então...Então...

Se eu testei um software e não encontrei erros significa que meu software está correto, ou seja, livre erros!

Verdadeiro ou Falso?

Page 9: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Motivação

Por que investir em testes?

Page 10: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Visão de negócio: Custo

Por que investir em testes?Por que investir em testes?

Page 11: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Por que investir em testes?Por que investir em testes?

Razão: O custo de um Software com falha é muito alto!

Mercado começa a ver teste de software como investimento e não mais como custo

Crescente demanda por analistas de teste de software

A Microsoft tem mais de 8.000 testadores de software em centros tecnológicos espalhados pelo mundo

Muitas empresas gastam de 30% a 40% do esforço do projeto em atividades de teste de softwareMuitas empresas gastam de 30% a 40% do esforço do projeto em atividades de teste de software

Page 12: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Casos reaisCasos reais

Hotel em Orlando Sistema 1 hora no ar com

preço de diária a U$ 1,99 ao invés de U$ 19,90

Great Deal?

Page 13: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Casos reaisCasos reais

Prius Sedan – 2005

Carro híbrido construído pela Toyota;

Erro no software do sistema de controle eletrônico

Poderia fazer o carro entrar em modo de segurança;

Neste modo, o carro poderia paralisar o sistema de controle de combustível;

75.000 proprietários notificados;

Estima-se um prejuízo de U$ 2 bi a U$ 3 bi para correção do problema

Fonte: http://www.spinsp.org.br/

Page 14: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Casos reaisCasos reais

First National Bank of Chicago – Maio de 1996

Atualização do software dos caixas eletrônicos

Nova codificação das mensagens não foi testada em todos os protocolos utilizados nos caixas

Resultado: Crédito de

aproximadamente U$ 925mi na conta de cada um dos 823 clientes;

Aproximadamente U$ 800bi representou o maior erro bancário da história dos EUA

Fonte: http://www.spinsp.org.br/

Page 15: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Regra 10 de MyersRegra 10 de Myers

1979: Glenford Myers ‘The Art of Software Testing’

Custo em correção de bugs

cresce 10 vezes para cada estágio em que o projeto do software avança

Quanto mais cedo menor o custo...

Page 16: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Outras afirmações de Myers...Outras afirmações de Myers...

Os testes unitários podem remover entre 30% e 50% dos defeitos dos programas

Os testes de sistemas podem remover entre 30% e 50% dos defeitos remanescentes

Dessa forma os sistemas podem ir para produção ainda com ~ 49% de defeitos

Revisões de código podem reduzir entre 20% a 30% desses defeitos

Defeitos encontrados no início do projeto custam menos para serem corrigidos

Page 17: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Retorno de Investimento...Retorno de Investimento...

Quanto devo investir em teste

de software?Quanto eu

economizo ao investir em teste de

software?

Page 18: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Retorno de Investimento...Retorno de Investimento...

Rex Black

O retorno do investimento será maior à medida que formos investindo em teste

Page 19: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Visão técnica: ajudar a garantir qualidade

dos produtos gerados

Por que investir em testes?Por que investir em testes?

Page 20: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Dimensões mínimas de qualidade para o teste de software

Dimensões mínimas de qualidade para o teste de software

Funcionalidade•O sistema se comporta conforme

esperado e definido nos seus requisitos

Performance•O sistema tem um tempo de

resposta adequado e aceitável mesmo quando submetido a um volume alto de processamento

Confiança•O sistema é resistente a falhas

durante a execução, isto é, não entra em “loop”, não interrompe a execução por falta de recursos, etc.

Fonte: The Rational Unified Process, An Introduction

Page 21: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Então, no mínimo...Então, no mínimo...

Funcionalidade•O sistema se comporta conforme esperado e definido nos seus requisitos

Performance•O sistema tem um tempo de resposta adequado e aceitável mesmo quando submetido a um volume alto de processamento

Confiança•O sistema é resistente a falhas durante a execução, isto é, não entra em “loop”, não interrompe a execução por falta de recursos, etc.

Fonte: The Rational Unified Process, An Introduction

Sistemas bem

testados

Devem atender

Discussão

Essas dimensões de qualidade são suficientes?

Elas representam o mínimo necessário?

Page 22: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Categorias da qualidade no modelo FURPS+ (desenvolvido pela HP)

Categorias da qualidade no modelo FURPS+ (desenvolvido pela HP)

Functionality (Funcionalidade): representa todo aspecto funcional do software

Usability (Usabilidade): é o atributo que avalia a interface com o usuário [prevenção de erros; estética e design; ajudas (Help) e documentação; consistência e padrões]

Reliability (Confiabilidade): refere-se a integridade, conformidade e interoperabilidade do software.

Performance (Desempenho): avalia os requisitos de desempenho do software

Supportability (Suportabilidade):testabilidade, adaptabilidade, manutenibilidade, compatibilidade, configurabilidade, instalabilidade, escalabilidade, localizabilidade entre outros

FURPS+:O “+” do acrônimo engloba outros requisitos não-funcionais como requisitos de design, de implementação, físico, etc...

Page 23: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

ISO 9126ISO 9126

Page 24: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Quando parar de testar?Devemos testar indefinidamente até não

encontrarmos nenhum erro?

Page 25: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Qual o momento certo de interromper o teste?

Qual o momento certo de interromper o teste?

Devido a pressões de prazo os testes são interrompidos muito

antes do tempo necessário para a sua completa cobertura

Devido a uma falta de controle ou a um

excesso de preciosismo exagerou-

se nos testes

Page 26: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Qual o momento certo de interromper o teste?

Qual o momento certo de interromper o teste?

Testes abaixo do necessário

Testes acima do necessário

Page 27: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Custo do Teste Vs Custo da FalhaCusto do Teste Vs Custo da Falha

Page 28: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Custo dos defeitosCusto dos defeitos

Quality Assurance Institute

36% dos erros econtrados são provenientes da codificação

64% são erros de

análise e projeto

Maior parte dos erros estão nas fases onde corrigí-los custa muito menos

Page 29: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

Por que os testes mudaram?Por que os testes mudaram?

Demonstração

Detecção

Prevenção

Década de 60

Década de 70

Década de 90Demonstração

- Liberar sistema mesmo correndo riscos- Garantir que o produto funciona- Testes feitos pelos desenvolvedores

Detecção- Descobrir defeitos, erros e

deficiências do software- Definir capacidades e limitações- Fornecer informações sobre a

qualidade dos componentes,Sistemas e outros produtos

Prevenção- Trabalho nas especificações do software- Gerar informações que previnem ou reduzem

os defeitos- Detectar defeitos nas fases iniciais- Identificar riscos e problemas de forma a

evitá-los no futuro- Metodologias, processos, etc.

CONCEITOS HISTÓRICOS

Page 30: Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio vanilson@gmail.com

PerguntasPerguntas