Verificação, Validação e Teste de Software · •Certificações SCJP e CBTS Apresentação 2...

16
02/07/2011 1 Verificação, Validação e Teste de Software Prof. Raquel Silveira Instituto de Teologia Aplicada - INTA Gradução: Bacharelado em Ciências da Computação UVA Pós-Graduação: Especialização em Engenharia de Software INTA Mestrado Acadêmico em Ciências da Computação UECE (em andamento) Atividades Profissionais Prof. Instituto Federal de Educação, Ciência e Tecnologia IFCE (atual) Prof. Universidade Estadual Vale do Acaraú UVA, Campus Aracati (atual) Analista de Sistemas no Instituto Altântico Prof. Faculdade IEducare (FIED) Prof. Instituto de Pesquisa Vale do Acaraú (IVA) Títulos Certificações SCJP e CBTS Apresentação 2 Verificação, Validação e Teste de Software. Prof.: Raquel Silveira Introdução ao Processo de Teste Processo de Software - Sequência de práticas que objetiva o desenvolvimento ou a evolução de sistemas de software. - Estas práticas englobam as atividades de especificação, projeto, implementação, TESTES e caracterizam-se pela interação de ferramentas, pessoas e métodos. 3 Verificação, Validação e Teste de Software. Prof.: Raquel Silveira Processo de Teste Teste é um processo de avaliar um sistema ou um componente de um sistema para verificar se ele satisfaz os requisitos especificados ou identificar diferenças entre resultados esperados e obtidos. Introdução ao Processo de Teste 4 Verificação, Validação e Teste de Software. Prof.: Raquel Silveira Testes realizados por desenvolvedores tendem a identificar menos problemas Testes deve um processo paralelo ao desenvolvimento Testar software não é uma tarefa simples Erros nem sempre são óbvios Erros diferentes podem ter a mesma manifestação Saber que um programa não está correto não necessariamente é saber como corrigir o erro Introdução ao Processo de Teste 5 Verificação, Validação e Teste de Software. Prof.: Raquel Silveira Pré-conceitos O testador é um inimigo do desenvolvedor. A equipe de testes pode ser montada com os desenvolvedores menos qualificados, pois qualquer um pode testar sistemas. Quando estiver tudo pronto, o software seguirá para o pessoal fazer o teste. Introdução ao Processo de Teste 6 Verificação, Validação e Teste de Software. Prof.: Raquel Silveira

Transcript of Verificação, Validação e Teste de Software · •Certificações SCJP e CBTS Apresentação 2...

Page 1: Verificação, Validação e Teste de Software · •Certificações SCJP e CBTS Apresentação 2 Verificação, Validação e Teste de Software. Prof.: Raquel Silveira Introdução

02/07/2011

1

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

Prof. Raquel Silveira

Instituto de Teologia Aplicada - INTA

Gradução:

• Bacharelado em Ciências da Computação – UVA

Pós-Graduação:

• Especialização em Engenharia de Software – INTA

• Mestrado Acadêmico em Ciências da Computação – UECE (em andamento)

Atividades Profissionais

• Prof. Instituto Federal de Educação, Ciência e Tecnologia – IFCE (atual)

• Prof. Universidade Estadual Vale do Acaraú – UVA, Campus Aracati (atual)

• Analista de Sistemas no Instituto Altântico

• Prof. Faculdade IEducare (FIED)

• Prof. Instituto de Pesquisa Vale do Acaraú (IVA)

Títulos

• Certificações SCJP e CBTS

Apresentação

2Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Introdução ao Processo de Teste

Processo de Software

- Sequência de práticas que objetiva odesenvolvimento ou a evolução de sistemas desoftware.

- Estas práticas englobam as atividades deespecificação, projeto, implementação, TESTESe caracterizam-se pela interação deferramentas, pessoas e métodos.

3Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Processo de Teste

“Teste é um processo de avaliar um sistema ouum componente de um sistema para verificarse ele satisfaz os requisitos especificados ouidentificar diferenças entre resultadosesperados e obtidos.”

Introdução ao Processo de Teste

4Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

• Testes realizados por desenvolvedores tendem aidentificar menos problemas

• Testes deve um processo paralelo ao desenvolvimento

• Testar software não é uma tarefa simples

• Erros nem sempre são óbvios

• Erros diferentes podem ter a mesma manifestação

• Saber que um programa não está correto nãonecessariamente é saber como corrigir o erro

Introdução ao Processo de Teste

5Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

•Pré-conceitos

– O testador é um inimigo do desenvolvedor.

– A equipe de testes pode ser montada com osdesenvolvedores menos qualificados, pois qualquerum pode testar sistemas.

– Quando estiver tudo pronto, o software seguirápara o pessoal fazer o teste.

Introdução ao Processo de Teste

6Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Page 2: Verificação, Validação e Teste de Software · •Certificações SCJP e CBTS Apresentação 2 Verificação, Validação e Teste de Software. Prof.: Raquel Silveira Introdução

02/07/2011

2

Objetivos dos Testes- Encontrar o maior número possível de defeitos no

software.

- Os documentos básicos para definir os objetivos dostestes são os requisitos do negócio.

- A prática de gerar requisitos de testes a partir dosrequisitos de negócio facilita de modo consideráveltraças objetivos capazes de cobrir todas as necessidadesdos usuários.

Introdução ao Processo de Teste

7Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Objetivo 1. Identificar a magnitude e origem dosriscos associados ao desenvolvimento desoftware, minimizáveis por testes.–Riscos são identificados em todo tipo de projeto.

–Testes podem mitigar riscos, não contigenciar!

Mitigar: atuar para prevenir a ocorrência do fato

Contigenciar: atuar após o fato para minimizarperdas.

Objetivos Principais

8Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Objetivo 2. Executar testes para reduzir riscosidentificados.

–Testes positivos:

• Buscam cenários que funcionam como esperado.

–Testes negativos:

• Buscam cenários que “quebram” o software.

–Esforço planejado para testes

• Combinação de testes positivos e negativos.

• 100% de testes é irreal.

Objetivos Principais

9Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Objetivo 3. Determinar quando os testes estãocompletos.

–Nem 8 nem 80!

• Poucos testes causam incerteza.

• Testes demasiados custam mais caros.

–Testes positivos são os prioritários

• Envolvem o teste dos requisitos do projeto.

–Testes negativos em sequência

• De acordo com a priorização.

Objetivos Principais

10Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Objetivo 4. Gerenciar testes assim como qualqueroutra disciplina de Engenharia de Software.

–Planejar, acompanhar, formar equipe, gerenciar osrecursos.

• Também para testes? Por quê?

–Testadores são escassos

• Assim como desenvolvedores.

• Alocação dos recursos de testes deve sergerenciada com a mesma importância dosrecursos de desenvolvimento.

Objetivos Principais

11Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Problema do Ano 2000 (Y2K Bug)•Anos: ..., 19 98, 19 99, 19 00 ??•Testes começaram a ser levados a sério por conta

da ameaça do Y2K.•Como garantir que após as correções de datas,

tudo ficaria funcionando corretamente?

•Vocês sabem do bug do ano 2038?O último registro de tempo que pode ser

representado, seguindo o padrão POSIX, é03:14:07 na terça-feira 19 de janeiro de 2038.

Problemas Conhecidos

12Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Page 3: Verificação, Validação e Teste de Software · •Certificações SCJP e CBTS Apresentação 2 Verificação, Validação e Teste de Software. Prof.: Raquel Silveira Introdução

02/07/2011

3

Qual a proporção de testes nos projetos?

Fred BrooksTrabalhou na IBM, no desenvolvimento do OS/360

Scott BerkunTrabalhou na Microsoft, no desenvolvimento deWindows, MSN e Internet Explorer.

Qual a proporção que eles sugerem?

Break!

13Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Qual a proporção de testes nos projetos?

• Fred Brooks (IBM / 1975)1/3 de planejamento

1/6 de codificação

1/4 de testes

• Scott Berkun (MS / 2005)1/3 de projeto e gerenciamento

1/3 de implementação

1/3 de testes

Break!

14Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Lista elaborada por Everett & McLeod Jr.

1. Riscos de negócio podem ser reduzidos com testes.

2. Testes positivos e negativos contribuem com aredução de riscos.

3. “Testes estáticos” contribuem com testes.

4. Ferramentas de testes automatizados podemcontribuir com redução de riscos.

5. Faça com que os mais altos riscos sejam a primeiraprioridade de testes.

Princípios

15Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

6. Faça com que os cenários de negócio maisfreqüentes sejam a segunda prioridade de testes.

7. Análise estatística de padrões e características dedefeitos pode ajudar na estimativa do esforço deteste.

8. Realize os testes do sistema da mesma forma como ousuários irão usá-lo.

9. Assuma que defeitos são resultado de um processo, e não da personalidade dos envolvidos.

10. Realizar teste para identificar defeitos é uminvestimento assim com um custo.

Princípios

16Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

• “Testar é caro”– Comparado com o quê?

• Qual é o custo de NÃO testar?– Incerteza sobre cobertura (fiz tudo?)

– Incerteza sobre qualidade (o que fiz está correto?)

• Qual é o custo de encontrar falhasposteriormente?– Desgaste do relacionamento com clientes.

– Má impressão dos usuários.

– Remontagem do time de projeto.

Aspectos Econômicos

17Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

• Software falho custa mais para usar

– Usuários terão dificuldade de entendimento(comportamento inconsistente).

– Usuários cometerão mais erros.

• Software falho diminui motivação

– Moral é atingida.

– Produtividade piora.

– Melhor para o time é receber feedbackprontamente e não de forma tardia!

Aspectos Econômicos

18Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Page 4: Verificação, Validação e Teste de Software · •Certificações SCJP e CBTS Apresentação 2 Verificação, Validação e Teste de Software. Prof.: Raquel Silveira Introdução

02/07/2011

4

• Vamos fazer as contas– Um erro foi encontrado por um usuário no ambiente de

produção.– Então, qual é o caminho a ser feito para corrigir o problema e

disponibilizar uma nova versão do sistema?

1. Usuário entra em contato (fone, email, carta, fax, tíqueteaberto em sistema de solicitações, etc) e informa o erro.

2. Analista reproduz o erro no ambiente de produção, einforma equipe de desenvolvimento.

3. Desenvolvedor reproduz o erro e encontra a falha.4. Desenvolvedor corrige a falha (em geral a parte mais

rápida).5. Equipe de desenvolvimento disponibiliza nova versão do

sistema.6. Versão do sistema em produção é trocada.7. Usuário consegue utilizar a funcionalidade corretamente

agora...... mas então detecta outro problema!

Aspectos Econômicos

19Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Qual é o custo de encontrar falhas posteriormente?

O custo de correção dos defeitos encontrados durante aprodução tende a aumentar quanto mais tarde o defeito édetectado.

Aspectos Econômicos

0

2000

4000

6000

8000

10000

12000

Requisitos Designer Implementação Teste Produção

Regra 10 de Myers

20Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Maximizar valor de negócio

• Testes podem (e devem) ser organizados paramaximizar valor.

•Testes diminuem custos de manutenção.

•Testes diminuem custos de atualização.

•Alinhamento com missão do projeto.

•“20% das funcionalidades agregam 80% do valor.”

Valor de Negócio

21Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

•Os softwares devem atender a certos atributos dequalidade e, para isso, precisamos identificar seusobjetivos ou requisitos de qualidade.

•Uma metodologia de qualidade muito usada nomercado é o FURPS.

Atributos de Qualidade

UsabilidadeUsability

ConfiabilidadeReliabilityDesempenho

Perfomance

SuportabilidadeSupportability

FuncionalidadeFunctionality

FURPS

22Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Exercício Rápido

Para cada projeto distribuir 10 fichas entre opções detestes: Funcionalidade, Usabilidade, Confiabilidade,Desempenho e Suportabilidade.

Atributos de Qualidade

Projeto 1. POS para Operadora de Cartão de Crédito

Projeto 2. Aplicação de Chat para Dispositivos Móveis

23Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Atributos de qualidade

Execução

24Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Page 5: Verificação, Validação e Teste de Software · •Certificações SCJP e CBTS Apresentação 2 Verificação, Validação e Teste de Software. Prof.: Raquel Silveira Introdução

02/07/2011

5

Funcionalidade

De acordo com a especificação funcional.

- Teste funcional

- Teste de regressão

- Teste de volume

Atributos de Qualidade

25Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Usabilidade

Facilidade de uso do sistema pelos usuários.

- Teste de interface;

- Teste de usabilidade.

Atributos de Qualidade

26Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Confiabilidade

Confiabilidade do sistema, a permanência deoperação, a integridade dos dados, aconfiabilidade da estrutura e da aplicação.

- Teste de estrutura

- Teste de estresse

Atributos de Qualidade

27Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Desempenho

Velocidade de processamento da informação.

- Teste de avaliação de desempenho oubenchmark

- Teste de contenção

- Perfil de desempenho

Atributos de Qualidade

28Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Suportabilidade

Capacidade do programa de funcionar emdiversos ambientes diferentes.

- Teste de instalação

- Teste de configuração

Atributos de Qualidade

29Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Exercício Rápido

Um software foi entregue ao cliente e o cliente solicitauma nova modificação. A equipe do desenvolvimentoelabora uma nova release contendo a modificaçãosolicitada, antes de entregar o software é necessária arealização de testes? Qual(is) o(s) tipo(s) de teste deveser realizado nesta situação?

Atributos de Qualidade

30Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Page 6: Verificação, Validação e Teste de Software · •Certificações SCJP e CBTS Apresentação 2 Verificação, Validação e Teste de Software. Prof.: Raquel Silveira Introdução

02/07/2011

6

Garantia de Qualidade versus Controle de Qualidade

Garantia de Qualidade: Um processo que assegura queo produto foi produzido conforme os processosorganizacionais.

Controle de Qualidade: Um processo que assegura queo produto funcione conforme os requisitos.

Atributos de Qualidade

31Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Verificação = Validação ?

Modelo em V

32Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Verificação• Processo de avaliação de um sistema ou

componente para determinar se os artefatosproduzidos satisfazem às especificaçõesdeterminadas.

• “Estamos construindo o produto corretamente?”

Validação• Processo de avaliação para determinar se o

sistema atende as necessidades e requisitos dosusuários.

• “Estamos construindo o produto certo?”

Modelo em V

33Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Modelo em V

Análise de Requisitos

Projeto de Sistema

Projeto de Arquitetura

Projeto de Módulos

Construção

Teste de Unidade

Teste de Componente

Teste Sistêmico

Teste de Aceitação

Modelo em V

Validação(Controle de Qualidade)

Verificação(Garantia de Qualidade)

34Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Modelo em V

Análise de Requisitos

Projeto de Sistema

Projeto de Arquitetura

Projeto de Módulos

Construção

Teste de Unidade

Teste de Componente

Teste Sistêmico

Teste de Aceitação

Modelo em V

Validação(Controle de Qualidade)

Verificação(Garantia de Qualidade)

Revisão técnica

35Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Modelo em V

Análise de Requisitos

Projeto de Sistema

Projeto de Arquitetura

Projeto de Módulos

Construção

Modelo em V

Projeto do Teste de Aceitação

Projeto do Teste Sistêmico

Projeto do Teste de Integração

Projeto do Teste de Unidade

Projeto Prematuro de

Testes

36Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Page 7: Verificação, Validação e Teste de Software · •Certificações SCJP e CBTS Apresentação 2 Verificação, Validação e Teste de Software. Prof.: Raquel Silveira Introdução

02/07/2011

7

Modelo em V

37Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Modelo em V

Análise de Requisitos

Projeto de Sistema

Projeto de Arquitetura

Projeto de Módulos

Construção

Teste de Unidade

Teste de Componente

Teste Sistêmico

Teste de Aceitação

Modelo em V

Projeto do Teste de Aceitação

Projeto do Teste Sistêmico

Projeto do Teste de Integração

Projeto do Teste de Unidade

38Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Modelo de integração entre os processos de desenvolvimento e teste

Introdução ao Processo de Teste

TESTE

Especificação

Execução (1)

Execução (2)

Entrega

DESENVOLVIMENTO

Desenho lógico e físico

Construção

Implantação

Entrega

Verificação

Teste unitário

Teste de integração e Teste de sistema

Teste de aceitação

39Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Revisões de código: Podem reduzir 20% a 30%dos defeitos.

Testes unitários: Podem reduzir 30% a 50% dosdefeitos dos programas.

Testes de sistemas: Podem reduzir 30% a 50%dos defeitos remanescentes.

Introdução ao Processo de Teste

40Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Projeto prematuro dos testes

– Ao projetar testes, problemas são encontrados.

– Problemas encontrados cedo são mais baratos decorrigir.

– Problemas mais significativos são encontradosprimeiro.

• Então que tal verificar logo?

– Projeto de testes pode impactar os requisitos.

Modelo em V

41Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Ciclo de Vida do Processo de Teste

42Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Page 8: Verificação, Validação e Teste de Software · •Certificações SCJP e CBTS Apresentação 2 Verificação, Validação e Teste de Software. Prof.: Raquel Silveira Introdução

02/07/2011

8

Ciclo de Vida do Processo de Teste

43Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Antes de planejar

– Defina a estratégia de teste da organização (ou donegócio).

– Identifique as pessoas a serem envolvidas.

–Examine os requisitos e/ou especificaçõesfuncionais (artefatos de entrada para os testes).

– Estabeleça a organização e a infra-estrutura doambiente de testes.

– Defina quais serão os entregáveis e a estrutura dosrelatórios.

Planejamento

44Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Por que o Plano de Teste é importante?

- O Plano de Teste é uma maneira de documentar oprojeto de testes.

- Guia para orientar nos seguintes aspectos:

- Repetição

- Controle

- Cobertura

Planejamento

45Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Plano de Testes

1. Introdução

- Itens de software e funcionalidades a serem testadas.

- Referências a plano de projeto, plano de QA, políticas epadrões organizacionais, plano de configuração.

2. Itens de teste

- Listagem de itens de teste (versões ou revisões desistemas, fases de desenvolvimento).

- Como o sistema chega aos testadores (DVD, Internet,Intranet, Repositório do projeto)

- Referências a documentação ou outros tipos demateriais de apoio.

Planejamento

46Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Plano de Testes

3. Escopo

- Identificar especificações funcionais

4. Não escopo

- Razões para exclusão

5. Abordagem

- Técnicas e ferramentas

- Identificar o grau de cobertura e outros critérios.

- Identificar restrições de ambiente, recursoshumanos, prazos.

Planejamento

47Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Plano de Testes

6. Critérios de execução

- Definição de “sucesso”.

- Definição de “falha”.

7. Critérios de interrupção e continuação

- Interrupção: Caso a condição seja satisfeita, ostestes (ou parte deles) devem ser interrompidos.

- Continuação: sanada a condição de interrupção,quais atividades precisam ser re-feitas antes deretomar as atividades interrompidas.

Planejamento

48Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Page 9: Verificação, Validação e Teste de Software · •Certificações SCJP e CBTS Apresentação 2 Verificação, Validação e Teste de Software. Prof.: Raquel Silveira Introdução

02/07/2011

9

Plano de Testes

8. Entregáveis

- Plano de Testes.

- Especificações de testes.

- Relatórios.

9. Ambiente de teste

- Espaço físico, equipamentos (hardware).

- Ferramentas de software.

Planejamento

49Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Plano de Testes

10. Papéis e responsabilidades

- Gestão

- Projeto

- Especificação

- Execução

- Registro

- Validação

- Resolução de problemas

- Fornecimento de produtos para os testes

Planejamento

50Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Planejamento

Dimensões do teste

Tipo de teste(O que testar)

Estágio ou níveis de teste(Quando testar)

Técnica de Teste(Como testar)

Funcional

Estrutural

Teste de unidadeTeste de integraçãoTeste de sistemaTeste de aceitação

Teste de funcionalidadeTeste de interfaceTeste de desempenhoTeste de usabilidadeTeste de volume ...

51Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Exercício rápido

Como você testaria uma calculadora?

Elaboração

52Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

-Um dos documentos contidos na fase deElaboração é a Especificação de Caso de Teste.

Este documento deve conter: Identificação das condições do teste (pré e pós

condições)

Identificação dos casos de teste (o que testar)

Detalhamento da massa de entrada

Especificação das configurações de ambiente

Definir o tipo de implementação (automática oumanual)

Elaboração

53Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Exemplo de elaboração de caso de teste

Especificação do sistema: Autenticação de Usuário.

Elaboração

Efetuar o login na aplicação com um login válido e senha de, no mínimo 6 (seis) caracteres.

Autenticação

Login

Senha

Esqueceu a senha?

OK LIMPAR

54Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Page 10: Verificação, Validação e Teste de Software · •Certificações SCJP e CBTS Apresentação 2 Verificação, Validação e Teste de Software. Prof.: Raquel Silveira Introdução

02/07/2011

10

Exemplo de elaboração de caso de teste

Do requisito do cliente, podemos criar asseguintes idéias de teste:

Elaboração

55Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Exemplo de elaboração de caso de teste

Elaboração

Título: Senha Inválida

Ambiente: Windows XP

Pré-Condições:- Possuir um usuário válido.

Passo Resultado Esperado

1. O usuário inicia a aplicação.

2. O usuário preenche os campos Login e Senha conforme as idéias de teste.

Verificar se os campos sãopreenchidos corretamente.

3. O usuário seleciona Efetuar Login. Verificar se quando o usuárioinforma uma senha menor que 6 caracteres, o sistema exibe a mensagem: “Senha inválida.”.

4. O usuário confirma a mensagem.

56Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Exercício rápido

Em uma operação de Saque, quais casos de testespoderiam ser identificados? Como seria odetalhamento de um desses casos de teste?

Elaboração

57Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Revisão Técnica

Objetivo

Prevenir defeitos no produto final.

Porquê?

Removem defeitos do produto em todo o ciclode vida.

Como?

Encontrando defeitos em produtosintermediários.

Execução

58Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Revisão Técnica

• Requisitos

- Requisitos funcionais e não funcionais.

- Casos de uso.

•Análise e Projeto

•Código

- Análise Automatizada

- Técnicas

Execução

59Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Revisão Técnica – Requisitos

• Workshop de Requisitos

- Apresentação do escopo e não-escopo do projeto para interessados

- Trabalho preliminar de modelagem das necessidades

- Requisitos

- Caso de uso

- Não Escopo

- Restrições

- Premissas

- Técnica barata, e pode ser realizada em vários ciclos

- Gera comprometimento dos participantes da reunião

Execução

60Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Page 11: Verificação, Validação e Teste de Software · •Certificações SCJP e CBTS Apresentação 2 Verificação, Validação e Teste de Software. Prof.: Raquel Silveira Introdução

02/07/2011

11

Revisão Técnica – Arquitetura

• Arquitetura é importante

– Então deve ser analisada

• Arquitetura é caro de se mudar

– É mais barato analisar cedo

• Arquitetura afeta o projeto inteiro

– Pessoas interessadas precisam ser envolvidas.

• Requisitos podem ser elicitados cedo

– Arquitetura precisa ser desenhada alinhada com estes.

Execução

61Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Revisão Técnica –Código

• Análise estática de código

– FindBugs, FxCop

• Grande base de anti-padrões

• Personalizáveis: crie suas próprias regras para padrões próprios.

• Inspeção manual

– Inspeção

– Revisão por Par

Execução

62Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Revisão Técnica – Código

• Inspeção

Execução

63Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Revisão Técnica – Código• Revisão por Par

- Dois envolvidos somente:- Autor e Revisor

• Processo simples:1 – Autor prepara artefato e envia para Revisor2 – Revisor realiza revisão invidualmente3 – Revisor registra problemas

( Email, ferramenta própria, post-it, ...)4 – Autor corrige problemas5 – Revisor verifica correções6 – Pronto!

• E se... autor e revisor discordarem?- Bom, deve ter um líder ou gerente nesse projeto, ok?- Não tem mágica, escala o conflito (assim como qualquer outro)

Execução

64Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Revisão Técnica – Código• O que procurar?

– O código executa corretamente os fluxos básicosassociados?

– O código executa corretamente os fluxos alternativosassociados?

• Outros aspectos– Cumpre padrões de arquitetura (e.g. MVC)?– Trechos complexos estão comentados? (análise estática

ajuda aqui)– Testes unitários estão feitos?– Documentação/legibilidade estão boas?– Tratamento de erros foi realizado corretamente?– ...

Execução

65Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Execução

Categorias de teste

Teste de caixa branca (White box)

Teste de caixa preta (Black box)

66Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Page 12: Verificação, Validação e Teste de Software · •Certificações SCJP e CBTS Apresentação 2 Verificação, Validação e Teste de Software. Prof.: Raquel Silveira Introdução

02/07/2011

12

Execução

Teste de Caixa Branca

Testes de unidade de código;

Testam parte da solução;

São escritos e mantidos pelo programador e devem estar sempre atualizados.

67Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Execução

Teste de Caixa Branca

Quando construímos um teste de unidade, oprincipal desafio é isolar a classe ou trecho decódigo que está sendo testado, para quenenhuma outra classe do sistema seja envolvidano teste e influencie no resultado esperado.

68Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Execução

Cobertura dos testes

Dificilmente consegue-se 100% de coberturade testes.

Quanto maior cobertura dos testes naaplicação, maior a confiabilidade nas alteraçõese novos recursos.

69Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Execução

Cobertura dos testes

Aplicações cobertas por bons testes propiciam:-Facilidade de manutenção;

- Menos problemas e relação de custos emmanutenção.

70Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Execução

Testes de caixa preta

Baseado no executável dosistema/componente.

Testes funcionais;

Testes de aceitação;

71Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Análise estática e análise dinâmicaEstática

Compreende métodos usados paradeterminar ou estimar qualidade de software, quenão envolvem a execução do produto.

DinâmicaCompreende métodos que envolvem

execução do produto, com dados reais e ambientereal ou simulado.

Execução

72Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Page 13: Verificação, Validação e Teste de Software · •Certificações SCJP e CBTS Apresentação 2 Verificação, Validação e Teste de Software. Prof.: Raquel Silveira Introdução

02/07/2011

13

Tipos de Testes

Testes Unitários

Testes de Integração

Testes Sistêmicos

Testes de Aceitação

Execução

73Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Testes Unitários

• Baixo nível

– Feito por programadores

– Mais foco nos detalhes

• Tratamento de erros

• Completude e corretude de interfaces

– Níveis

• Módulos

• Componentes

• Classes\arquivos

Execução

74Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Testes Unitários

Execução

Teste Unitário

75Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Testes Unitários

- Planejamento

- Como a estratégia eprojeto de teste se aplicaa unidade a ser testada?

- Identificar outroscomponentes de softwareque estarão interagindocom a unidade).

Execução

Teste Unitário

76Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Testes Unitários

- Especificação

- Caso de teste: Objetivo,Estado inicial, Entrada,Resultado esperado.

- Testes precisam serrepetíveis.

Execução

Teste Unitário

77Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Testes Unitários

- Execução

- Casos de testes sãoexecutados.

- Manuais e/ouAutomatizados.

- Definição de cobertura.

- 100% de cobertura éimpraticável.

Execução

Teste Unitário

78Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Page 14: Verificação, Validação e Teste de Software · •Certificações SCJP e CBTS Apresentação 2 Verificação, Validação e Teste de Software. Prof.: Raquel Silveira Introdução

02/07/2011

14

Testes Unitários

- Registro

- Identificação dasunidades testadas.

- Resultados gerados,comparados comresultados esperados.

- Falhas/erros sãoregistrados e informados.

- Verificar critérios decobertura do projeto.

Execução

Teste Unitário

79Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Testes Unitários

- Verificação decompletude

- Avaliação dos resultadoscomparados com oscritérios de completude.

- Se não atingir...

- re-análise se é preciso mais

Execução

Teste Unitário

80Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Testes de Integração

- Importante em sistemas modularizados

- Os módulos funcionam corretamente juntos?

- Foco

- Comunicação entre casos de usos.

- Comunicação entre classes.

- Planejamento da integração está intimamenteatrelado ao desenho da arquitetura e das fases doprojeto.

- Estratégia:

- Big-bang ou Incremental

Execução

81Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Testes de Integração

- Big-Bang

- Na teoria:

- Se eu já testei as unidades isoladamente, porque eunão junto tudo de uma só vez? Vou ganhar tempo!

- Onde está o erro aqui?

- Assumiu que não existem defeitos...

- Na prática

- Fica difícil isolar defeitos (qual unidade falhou?)

- Fica difícil re-testar após correções

- No final, leva mais tempo.

Execução

82Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Testes de Integração

- Incremental

- Componentes / Módulos são combinados aospoucos

- Baseline 1: Componete A

- Baseline 2: Componente A e C

- Baseline 3: Componente A, B e C

- Vantagens:

- Mais fácil de isolar problemas.

- Mais fácil de re-testar correções.

Execução

83Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Testes Sistêmicos - Funcionais- Testes projetados de acordo com a documentação de

cenários de uso existente- Casos de uso

- Executado por grupo independente!

- Primeiro passo- Rascunhar um caso de teste para os cenário principal e

alternativos

- Segundo passo- Inserir detalhes como intervalos, regras de negócio, valores de

validação

- Na hora de executar- Seguir o roteiro que é definido nos casos de testes.

Execução

84Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Page 15: Verificação, Validação e Teste de Software · •Certificações SCJP e CBTS Apresentação 2 Verificação, Validação e Teste de Software. Prof.: Raquel Silveira Introdução

02/07/2011

15

Testes Sistêmicos

- Tentem a próxima coisa!

- Quando estiver testando, não pare, não retorne aocomeço ...

- ... Faça o que o usuário fará em seguida!

- Exemplo:

- Tela de modificação de senha.

Execução

85Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Testes Sistêmicos – Não Funcionais

- Desempenho:

- Grande massa de dados ou usuários

- Picos de utilização ou acesso

- Robustez:

- Sistema não pára de funcionar ao longo do tempo

- Ex.: Impressoras fiscais, sites de comércio eletrônico

- Segurança:

- Importante para sistemas com dados sensíveis

- Não envolve só infra-estrutura

Execução

86Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Testes Sistêmicos – Não Funcionais- Usabilidade:

- Verifica se a interface é fácil de usar e intuitiva

- Quase sempre subjetivo, por isso deve envolver ousuário sempre que possível

- Pode ser objetivo também:- Exemplo: 1-buy click da Amazon

- Navegação por teclado

- Acessibilidade

- Internacionalização:- Sistema precisa trabalhar com múltiplas línguas

- Vai testar só com o português ou inglês?

- Os textos cabem nos espaços da interface?

Execução

87Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Testes Sistêmicos – Priorização

•Está acabando o tempo, o que priorizo?

•Testes positivos–Verifique até onde já foram realizados os testes

–Do que sobrou, o que agrega mais ao cliente?

–Testes positivos abrangem as funcionalidades quemais agregam ao cliente

•Testes negativos–Verifique até onde já foram realizados os testes

–Qual o tipo de erro mais recorrente?

–Ataque os erros mais comuns

Execução

88Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Testes de Aceitação

•Teste realizado pelos usuários.

•Garantir que tudo o que foi definido nosrequisitos tenha sido incluído no produto.

•Em alguns casos, os testadores auxiliam osusuários a executar essa atividade.

Execução

89Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Processo de Teste

90Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Testes de ValidaçãoTestes de Verificação

Espeficicação de Requisitos

Verificação de Requisitos

Modelagem do Software

Verificação da Modelagem

Codificação

Verificação do Código

Unidade Desenvolvida

Validação da Unidade

Unidades Finalizadas

Validação da Integração

CAIXA BRANCA

REVISÕES

Software Finalizado

Validação do Sistema

Software Finalizado

Validação / Aceite

CAIXA PRETA

Page 16: Verificação, Validação e Teste de Software · •Certificações SCJP e CBTS Apresentação 2 Verificação, Validação e Teste de Software. Prof.: Raquel Silveira Introdução

02/07/2011

16

Caso ocorra algum erro, reportamos um defeito com osseguintes dados:

Sumário

Passo para reprodução

Severidade

Ambiente

Além de registrar os problemas, ao final de cada fase énecessário realizar um relatório sumarizando a quantidadede problemas identificados e verificar a necessidade de umreteste.

Registro dos Problemas Identificados no Teste

91Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira

Descrição:Montar um Plano de Teste para os seguintes

sistemas:1. Sistema de Controle Acadêmico2. Sistema de Controle de Estoque3. Sistema de Locação de Automóveis4. Sistema de Clínica Odontológica5. Sistema de Transação Monetária

Itens do Plano de Teste: 1. Introdução, 2. Itens de teste, 3. Escopo, 4.Não escopo, 5. Abordagem, 6. Critérios de execução, 7. Critérios deinterrupção e continuação, 8. Entregáveis, 9. Ambiente de Teste, 10.Papéis e Responsabilidades.

Trabalho da Disciplina

92Verificação, Validação e Teste de Software.

Prof.: Raquel Silveira