Aula 12 – Teste

Transcrição

Aula 12 – Teste
02/11/2010
TESTES
“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.” [ANSI/IEEE Standard 729,1983]
Engenharia de
Software
“Processo de executar um programa com objetivo
de encontrar erros.” [Myers, 1979]
Prof. Raquel Silveira
TESTES
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
O que são testes?
TESTES
São pontuais;
Antigamente...
Testes não verificam completamente a saída de
um programa, pois as entradas são infinitas.
Os testes eram feitos por desenvolvedores.
Os usuários eram envolvidos para aprovar o
resultado dos testes ou para gerar massa de
dados.
TESTES
TESTES
Atualmente...
Naturalmente o assunto não é tão simples
Não testar o software pode gerar perdas
financeiras e de imagem irreparáveis.
Complexidade das aplicações que estão cada
vez mais distribuídas.
Erros nem sempre são óbvios;
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
Empresas tem visto a atividade de teste como
prioritária para a maior qualidade de suas
aplicações.
Erros diferentes
manifestação;
podem
ter
a
mesma
Saber que um programa não está correto não
necessariamente é saber como corrigir o erro.
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
São finitos;
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
 No passado, a tarefa de efetuar testes em
software era considerada secundária.
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
São previsíveis;
1
02/11/2010
TESTES
TESTES
Verificação = Validação?
Onde o teste de software influencia
no desenvolvimento da aplicação
- Nós construímos o sistema correto?
VALIDAÇÃO
TESTES
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
- Nós construímos corretamente o sistema?
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
VERIFICAÇÃO
TESTES
TESTES
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
Onde o teste de software influencia
no desenvolvimento da aplicação
TESTES
Aproximadamente 50% das
falhas só são encontradas em
produção.
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
1/3 das falhas de software
poderiam ser evitadas com teste;
Falhas custam caro
- Segundo uma pesquisa do Departamento de
Comércio dos EUA, publicada em 2002, falhas
de software são tão comuns e tão danosas que
se estima que causem prejuízo anual de mais
de 60 bilhões de dólares para a economia
americana.
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
Falhas no Software
2
02/11/2010
TESTES
TESTES
Você confia no que faz?
Garanta o seu trabalho, seja profissional
-Num mundo capitalizado não há tempo para teste;
-O cliente não quer saber como é feito, ele quer que
funcione.
Realidade
-O cliente não quer saber se X virou Y. Ele quer que o
problema não aconteça e se acontecer seja corrigido
rapidamente.
-Não se consegue qualidade e confiabilidade sem teste.
TESTES
TESTES
Pré-Conceitos
Geralmente temos as seguintes
situações:
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
Programador:
Mas como?! Na minha máquina estava
funcionando até ontem.
Errado
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
Cliente:
Isso aqui não está funcionando!
TESTES
Profissionais em teste de software
Fases do teste de software
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
TESTES
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
“Depois eu escrevo o plano de testes...”
“Vamos deixar os testes para a próxima
fase...”
“Na minha máquina funcionou...”
“Temos que entregar o produto na semana
que vem...”
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
A equipe de teste pode ser montada com
os desenvolvedores menos qualificados,
pois qualquer um pode testar sistemas;
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
O testador é um inimigo do desenvolvedor;
3
02/11/2010
TESTES
TESTES
Modelo de integração entre os processos
de desenvolvimento e teste
Categorias de teste
TESTES
TESTES
Teste de Caixa Branca
Teste de Caixa Branca
Testam parte da solução;
São escritos e mantidos pelo programador
e devem estar sempre atualizados.
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
Testes de unidade de código;
TESTES
TESTES
Cobertura dos testes
Cobertura dos testes
100%
de
Quanto maior cobertura dos testes na
aplicação, maior a confiabilidade nas
alterações e novos recursos.
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
Dificilmente
consegue-se
cobertura de testes.
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
Quando construímos um teste de unidade,
o principal desafio é isolar a classe ou
trecho de código que está sendo testado,
para que nenhuma outra classe do sistema
seja envolvida no teste e influencie no
resultado esperado.
Aplicações cobertas por bons
propiciam:
-Facilidade de manutenção;
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
Teste de caixa preta (Black box)
testes
- Menos problemas e relação de custos
em manutenção.
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
Teste de caixa branca (White box)
4
02/11/2010
TESTES
TESTES
Testes de caixa preta
TESTES
TESTES
Princípios de qualidade e controle de
qualidade
Funcionalidade
Funcionalidade
Usabilidade
Usability
FURPS
Supportability
Confiabilidade
Reliability
Desempenho
Perfomance
De acordo com a especificação funcional.
- Teste funcional;
- Teste de regressão;
- Teste de volume;
- Teste de segurança.
TESTES
TESTES
Usabilidade
Confiabilidade
Facilidade de uso do sistema pelos usuários.
- Teste de interface;
- Teste de usabilidade.
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
Suportabilidade
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
Functionality
Confiabilidade do sistema, a permanência de
operação,
a
integridade
dos
dados,
a
confiabilidade da estrutura e da aplicação.
- Teste de integridade;
- Teste de estrutura;
- Teste de estresse;
- Smoke teste.
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
Testam a solução “completa”.
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
Testes de integração;
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
Testes funcionais e de aceitação;
5
02/11/2010
Suportabilidade
Capacidade do programa de
diversos ambientes diferentes.
- Teste de configuração;
- Teste de instalação.
funcionar
TESTES
Exemplo de uma área de teste de
software
Exemplo de uma área de teste
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
TESTES
TESTES
Um cliente de vendas contrata uma empresa de
teste para validar seu site, que será lançado ao
público.
Um dos requisitos é efetuar o login no seu
software utilizado usuário e senha.
TESTES
O cliente especifica o seguinte requisito:
Exemplo de uma área de teste
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
Efetuar o login na aplicação com
um login válido e senha de, no
mínimo 6 (seis) caracteres.
em
O primeiro passo da área de teste é criar um
Plano de Teste que irá ter, dentre outros, os
seguintes itens:
- Requisitos que serão testados;
- Técnicas utilizadas;
- Documentos utilizados;
- Cronograma;
- Recursos.
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
Velocidade de processamento da informação.
- Teste de avaliação de desempenho;
- Teste de contenção;
- Teste de carga;
- Perfil de desempenho.
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
Desempenho
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
TESTES
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
TESTES
6
02/11/2010
TESTES
TESTES
Exemplo de uma área de teste
Exemplo de uma área de teste
TESTES
Senha Inválida
1. Este fluxo inicia no passo 3 do sub-fluxo “Efetuar
Login”, quando o usuário informa uma senha com a
quantidade de caracteres menor que 6.
2. O sistema exibe a seguinte mensagem: “Senha
inválida.”.
3. O usuário confirma o recebimento da mensagem.
4. O caso de uso retorna ao passo 2 do Fluxo
Básico.
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
O caso de uso apresenta o seguinte fluxo de exceção:
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
O passo após criar o Plano de Teste é criar o(s)
caso(s) de teste que deve conter:
- Passos
- Resultados esperados
- Ambiente onde será testado
- Pré-condições
- Massa de dados
TESTES
Exemplo de uma área de teste
Exemplo de uma área de teste
Exemplo de um caso de teste:
Título: Senha Inválida
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ão
preenchidos corretamente.
3. O usuário seleciona Efetuar Login.
Verificar se quando o usuário
informa uma senha menor que 6
caracteres, o sistema exibe a
mensagem: “Senha inválida.”.
4. O usuário confirma a mensagem.
TESTES
Exemplo de uma área de teste
Exemplo de uma área de teste
• Com os casos de teste criados, podemos executá-los na
aplicação.
•Após a execução de todos os testes e correção dos
defeitos, o sistema pode ser entregue ao cliente.
• Caso ocorra algum erro, reportamos um defeito com os
seguintes dados:
 Sumário
 Passo para reprodução
 Severidade
 Ambiente
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
TESTES
Testes são necessários!
•É preciso verificar o código, sempre;
•É preciso garantir que os requisitos estão implementados
(e corretos);
•É preciso ter segurança para realizar alterações;
•É preciso ser criativo para explorar o máximo possível
com os testes. Não é aconselhado usar testes mentirosos.
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
Passo
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
Pré-Condições:
- Possuir um usuário válido.
Disciplina: Engenharia de Software / Prof.: Raquel Silveira
Do requisito do cliente, podemos criar as seguintes idéias
de teste:
Ambiente: Windows XP
7