TRIBUNAL DE JUSTIÇA DE PERNAMBUCO
DIRETORIA DE INFORMÁTICA
PROSOFT
Workshop de Testes
Conceitos Básicos
Daniel Leitão
Juliana Xavier
Setembro/ 2010
Agenda
Workshop de Testes
 Histórico
 Definições
 Dimensões do Teste
 Estágios
 Técnicas
 Tipos
 Casos de Teste
 Testes Exploratórios
TJPE.DINFO.GEDES.UTS
2
Histórico
Workshop de Testes
 Visão Histórica da Execução dos Testes
 Demonstração – Década de 70
• Garantir que o produto funciona;
• Testes feitos pelos desenvolvedores.
 Detecção – Década de 80/90
• Garantir que o produto atende aos requisitos;
• Testes feitos pelos desenvolvedores e usuários.
 Prevenção – Década de 90/00
• Garantir que o produto funciona, atende aos requisitos e não
tem defeitos;
• Testes feitos pelos desenvolvedores, usuários e testadores.
TJPE.DINFO.GEDES.UTS
3
Definições
Workshop de Testes
“É um processo de exercitar um software ou componente sob
condições específicas, observando ou gravando os
resultados, e realizando uma avaliação sobre algum
aspecto”. (IEEE)
“Processo de executar um programa ou sistema com a
intenção de encontrar defeitos”. (Glen Myers, 1979)
“Qualquer atividade que a partir da avaliação de um atributo
ou capacidade de um programa ou sistema seja possível
determinar se ele alcança os resultados desejados” (Bill
Hetzel, 1988)
TJPE.DINFO.GEDES.UTS
4
Importância dos Testes
Workshop de Testes
PMBOK, 2008
TJPE.DINFO.GEDES.UTS
5
Regra 10 de Myers
Workshop de Testes
Custo em U$ do defeito
Regra 10 de Myers
12000
10000
8000
6000
4000
2000
0
The Art of Software Testing – Glenford Myers
TJPE.DINFO.GEDES.UTS
6
Regra 10 de Myers
Workshop de Testes
The Art of Software Testing – Glenford Myers
TJPE.DINFO.GEDES.UTS
7
Importância dos Testes
Workshop de Testes
Para quem ainda duvida veja o que Myers
afirmou
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 aproximadamente 49% de defeitos
 Por último, ele afirma que revisões de código podem
ainda reduzir entre 20% e 30% desses defeitos

TJPE.DINFO.GEDES.UTS
8
Importância dos Testes
Workshop de Testes
Por que os testes executados pelos
desenvolvedores não atendem?
Desenvolvedores não são técnicos de teste, ou seja,
não são testadores
 Desenvolvedores são mais sujeitos a pressões de
prazo e custo do que uma equipe apartada
 Em geral, não possuem ferramentas, metodologia etc.

TJPE.DINFO.GEDES.UTS
9
Importância dos Testes
Workshop de Testes
Quanto mais crítico for o software
Mais testes serão gastos para o
controle da qualidade do produto
Logo, quem define a quantidade
de testes é a criticidade do negócio
TJPE.DINFO.GEDES.UTS
10
Papel do Testador
Workshop de Testes
É tudo na limpeza!
TJPE.DINFO.GEDES.UTS
11
Garantia de Qualidade x Controle
de Qualidade
Workshop de Testes
 Garantia da Qualidade de Software
 Foco no processo
 Prevenção
 Controle de Qualidade de Software
 Foco no produto
 Detecção
CMMI
TJPE.DINFO.GEDES.UTS
Controle de Qualidade
Workshop de Testes
 Está relacionado a um produto ou serviço
específico
 Verifica se um produto ou serviço específico tem
um atributo específico
 Identifica defeitos com o propósito principal de
corrigi-los
 A disciplina de testes está nesse âmbito
TJPE.DINFO.GEDES.UTS
Garantia de Qualidade
Workshop de Testes
 Ajuda a estabelecer e avaliar processos
 Identifica fraquezas em processos e os
aperfeiçoa
 Avalia se o controle de qualidade está
funcionando
 SEPG e Equipe de Qualidade estão nesse âmbito
TJPE.DINFO.GEDES.UTS
Dimensões do Teste (IEEE)
Workshop de Testes
Técnica de Teste
(como testar)
Tipos de Teste
(o que testar)
TJPE.DINFO.GEDES.UTS
Estágios ou
Níveis de Teste
(quando testar)
15
Estágios de Teste
Unidade
TJPE.DINFO.GEDES.UTS
Integração
Workshop de Testes
Sistema
Aceitação
16
Teste Unitário
Workshop de Testes
 Estágio mais baixo da
escala de testes
 Verifica o funcionamento
de um pedaço do software
que possa ser testado
isoladamente
TJPE.DINFO.GEDES.UTS
17
Teste Unitário
Workshop de Testes
 Sempre que possível, deve
ser automatizado
 Normalmente feito pelo
programador na etapa de
implementação
TJPE.DINFO.GEDES.UTS
18
Teste de Integração
Workshop de Testes
 Verifica se os
componentes funcionam
corretamente juntos,
conforme as
especificações
 É alimentado pelos
módulos previamente
testados individualmente
pelo teste de unidade
TJPE.DINFO.GEDES.UTS
19
Teste de Integração
Workshop de Testes
 Em geral, é feito ao
término de cada iteração,
dentro de um ambiente
operacional controlado
 Normalmente feito pelo
Analista de Sistemas para
um módulo ou conjunto de
programas
TJPE.DINFO.GEDES.UTS
20
Teste de Sistema
Workshop de Testes
 Visa a execução do sistema
como um todo ou um
subsistema (parte do
sistema), dentro de um
ambiente operacional
controlado
TJPE.DINFO.GEDES.UTS
21
Teste de Sistema
Workshop de Testes
 Valida a exatidão e perfeição
na execução das funções
 São realizados pela Equipe
de Testes
TJPE.DINFO.GEDES.UTS
22
Teste de Aceitação
Workshop de Testes
 Verifica se a solução atende aos
objetivos do negócio e a seus
requisitos, no que diz respeito à
funcionalidade e usabilidade,
antes da utilização no ambiente
de produção
TJPE.DINFO.GEDES.UTS
23
Teste de Aceitação
Workshop de Testes
 São os testes finais da execução
do sistema, realizados pelos
usuários
 Executado no ambiente de
homologação
TJPE.DINFO.GEDES.UTS
24
Figura 3. Modelo V descrevendo o paralelismo entre as atividades de desenvolvimento e teste de software (CRAIG e JASKIEL, 2002)
Modelo em V
Workshop de Testes
CRAIG e JASKIEL, 2002
TJPE.DINFO.GEDES.UTS
25
Técnicas de Teste
TJPE.DINFO.GEDES.UTS
Workshop de Testes
26
Testes Caixa Preta
Workshop de Testes
 Visam verificar a
funcionalidade e a aderência
aos requisitos em uma ótica
externa ou do usuário
 Não se baseiam em
qualquer conhecimento do
código ou da lógica interna
do componente testado
TJPE.DINFO.GEDES.UTS
27
Testes Caixa Branca
Workshop de Testes
 Visam avaliar as cláusulas
de código, a lógica interna
do componente codificado,
as configurações e outros
elementos técnicos
 Também conhecidos como
Testes de Caixa de Vidro
TJPE.DINFO.GEDES.UTS
28
Tipos de Teste
Workshop de Testes
RUP
TJPE.DINFO.GEDES.UTS
29
Funcionalidade
Workshop de Testes
 Teste Funcional
 Teste de Regressão
 Teste de Volume
 Teste de Segurança
TJPE.DINFO.GEDES.UTS
Funcionalidade
Workshop de Testes
 Teste Funcional
 Teste destinado a validar as funções do sistema conforme o
esperado
 Fornece as entradas e compara as saídas da execução do
teste com o resultado esperado
 Pode ser implementado e executado em diferentes estágios
de teste, como unidade, integração e sistema
TJPE.DINFO.GEDES.UTS
Funcionalidade
Workshop de Testes
 Teste de Regressão
 Visam garantir que mudanças realizadas não geraram
impactos negativos no sistema
 Existem vários níveis de regressão
• Regressão Total
• Regressão Básica
• Regressão Seletiva
 Em geral, sempre que possível devem ser automatizados
TJPE.DINFO.GEDES.UTS
Funcionalidade
Workshop de Testes
 Teste de Volume
 Tem como objetivo verificar a capacidade do sistema de lidar
com um grande volume de dados
 Abrange estratégias de teste, como a entrada de dados no
volume máximo de cada campo ou a criação de consultas
que retornem um grande volume de dados
 Exemplos:
• Relatórios com o período máximo permitido (1 ano, 2 anos etc)
• Inserção de arquivos no BD com o tamanho máximo permitido
(500 MB, 1 GB etc)
TJPE.DINFO.GEDES.UTS
Funcionalidade
Workshop de Testes
 Teste de Segurança
 Testes destinados a garantir que as funcionalidades e os
dados possam ser acessados apenas por determinados
atores
 Devem validar os requisitos de segurança definidos para o
sistema
 Objetivos
• Detectar vulnerabilidades
• Verificar robustez do sistema frente a determinados tipos de
ataques
TJPE.DINFO.GEDES.UTS
Usabilidade
Workshop de Testes
 Testes de Usabilidade
 Enfatizam:
•
•
•
•
•
Interface com o usuário
Acessibilidade
Estética
Ajuda on-line e contextual
Adequação a padrões
Não esquecer de utilizar o padrão
de interface visual do TJPE !!!
TJPE.DINFO.GEDES.UTS
Confiabilidade
Workshop de Testes
 Teste de Integridade
 Teste de Estrutura
 Teste de Estresse
 Teste de Fumaça (Smoke Test)
TJPE.DINFO.GEDES.UTS
Confiabilidade
Workshop de Testes
 Teste de Integridade
 Testes destinados a avaliar a robustez do sistema
(resistência a falhas)
 Pode ser implementado e executado em vários níveis
(unidade, integração, sistema)
 Teste de Estrutura
 Em geral, é executado em aplicativos Web
 Verifica se todos os links estão conectados, que o conteúdo
esperado é exibido e que não há link órfão
TJPE.DINFO.GEDES.UTS
Confiabilidade
Workshop de Testes
 Teste de Estresse
 Destinado a avaliar como o sistema responde em condições
anormais de uso
 O estresse no sistema pode abranger carga de trabalho
extrema, memória insuficiente, hardware e serviços
indisponíveis ou recursos compartilhados limitados
 Teste de Fumaça (Smoke Test)
 Executam testes básicos para verificar a estabilidade da
versão
 Podem ser executados pela equipe de testes ou por outra
equipe
TJPE.DINFO.GEDES.UTS
Desempenho
Workshop de Testes
 Teste de Carga
 Tipo de teste de desempenho usado para validar a
aceitabilidade dos limites operacionais de um sistema de
acordo com cargas de trabalho variáveis, enquanto a
configuração permanece constante
 Durante os testes de carga, vários atributos do sistema são
medidos
• Tempo de resposta de cada requisição, uso da CPU, uso da
memória, tráfego de rede, etc
TJPE.DINFO.GEDES.UTS
Suportabilidade
Workshop de Testes
 Teste de Configuração
 Teste destinado a garantir que o sistema funcione conforme o
esperado em diferentes configurações de hardware e/ou
software
 Exemplos: Navegadores, Servidores de Aplicação, Banco de
Dados, etc
 Teste de Instalação
 Teste destinado a garantir que o sistema seja instalado
conforme o esperado em diferentes configurações de
hardware e/ou software
TJPE.DINFO.GEDES.UTS
Casos de Teste
Workshop de Testes
 É um conjunto de entradas de teste, condições
de execução e resultados esperados
desenvolvidos para um objetivo específico
 Os casos de testes funcionais devem conter:





Identificação Única (Ex: CT001)
Objetivo
Pré-condições
Passos (Ação e Resultado Esperado)
Pós-condições
TJPE.DINFO.GEDES.UTS
Casos de Teste
Workshop de Testes
 Em geral, estão associados a um requisito
 Podem ser:
 Positivos: têm como objetivo demonstrar que o requisito foi
atendido
 Negativos: refletem uma condição ou dados inaceitáveis,
anormais ou inesperados para demonstrar que o sistema
responde da forma esperada
TJPE.DINFO.GEDES.UTS
Derivação de Casos de Teste
Workshop de Testes
 Os casos de teste funcionais são derivados a
partir dos cenários dos casos de uso
TJPE.DINFO.GEDES.UTS
Derivação de Casos de Teste
Workshop de Testes
 Passos para derivação dos casos de teste
(Heumann) :
 Para cada caso de uso, gerar uma lista de cenários
 Para cada cenário, identificar, ao menos, um caso de teste e
a condição que o farão ser executado
 Para cada caso de teste, identificar os dados que serão
utilizados
TJPE.DINFO.GEDES.UTS
Casos de Teste
Workshop de Testes
 Exemplo:
TJPE.DINFO.GEDES.UTS
Testes Exploratórios
Workshop de Testes
 O que são testes exploratórios?
“Testes em que o testador controla ativamente o design dos
testes durante a execução e utiliza informações adquiridas
para projetar novos e melhores testes”
James Bach, “Exploratory Testing Explained”
TJPE.DINFO.GEDES.UTS
Testes Exploratórios
Workshop de Testes
 Simultaneamente







Aprender sobre o produto
Aprender caminhos em que o produto falha
Aprender os pontos fracos do produto
Aprender como testar o produto
Testar o produto
Reportar problemas
Desenvolver novos testes com o que foi aprendido até o momento
TJPE.DINFO.GEDES.UTS
Testes Exploratórios
Workshop de Testes
 Todo testador pratica exploração em algum nível
 Desde os testes com roteiro aos testes ad-hoc
 Em que nível o seu teste é exploratório?
TJPE.DINFO.GEDES.UTS
Testes Exploratórios
Workshop de Testes
 Como funciona
 Durante um período de tempo (sessão), o testador interage
com o produto para executar uma “missão de teste” e
reportar os resultados
Sessão
Tempo
Testador
Produto
Missão
Relatório
TJPE.DINFO.GEDES.UTS
Testes Exploratórios
Workshop de Testes
 Sessão
 O testador recebe uma cartilha (fornecida pelo líder de
testes) que contém a missão e, possivelmente, táticas a
serem usadas
• Em algumas organizações, casos de testes e procedimentos
podem ser usados como cartilhas
 Não deve ser muito longa
• Depende do objetivo da sessão, mas uma sessão típica dura
em torno de 90 minutos
TJPE.DINFO.GEDES.UTS
Testes Exploratórios
Workshop de Testes
 Sessão
 É uma unidade básica de teste
 Deve ser ininterrupta
• E-mails, telefonemas, conversas devem ser evitados
 Revisável
• Para isso, o relatório deve estar em um formato possível de
ser entendido por terceiros (o gerente do projeto, por exemplo)
TJPE.DINFO.GEDES.UTS
Testes Exploratórios
Workshop de Testes
 Exemplo de cartilha
 Teste todos os campos de entrada da tela “Inserir Produto”.
Lembre-se de testar limites e dados inválidos.
 A primeira frase estabelece a missão
 A segunda, táticas a serem usadas
TJPE.DINFO.GEDES.UTS
Testes Exploratórios
Workshop de Testes
 Possível formato para relatório de sessão
Cartilha
Testador
Data/Hora
Observações
Bugs
Questionamentos
TJPE.DINFO.GEDES.UTS
Testes Exploratórios
Workshop de Testes
 Habilidades
 Projetista de testes
• Todo testador exploratório é, em primeira instância, um
projetista / arquiteto de testes
 Observador
• Testadores experientes diferem de novatos por perceberem
mais facilmente comportamentos “não usuais”
 Crítico
• Um bom testador deve ser capaz de revisar e explicar sua
lógica de achar um bug
TJPE.DINFO.GEDES.UTS
Testes Exploratórios
Workshop de Testes
 Habilidades
 Crítico
• Testadores experientes tendem a usar mais heurísticas para
produzir novas e melhores idéias
 Explorador de recursos
• Um bom testador deve estar munido de ferramentas,
informações e ter contato com pessoas que possam ajudar
TJPE.DINFO.GEDES.UTS
Testes Exploratórios X Testes
com Roteiro
Workshop de Testes
 Conhecimento do domínio
 Com roteiros
• Falta de conhecimento pode ser minimizado durante a fase
de projeto de testes
 Com exploração
• Não é possível prosseguir quando o conhecimento do
domínio é insuficiente
• Treinamentos podem ser utilizados, mas introduzem
overhead
TJPE.DINFO.GEDES.UTS
56
Testes Exploratórios X Testes com
Roteiro
Workshop de Testes
 Complexidade do Sistema
 Com roteiros
• Possibilita um projeto de testes cuidadoso que se preocupa
com as dependências entre os testes
 Com exploração
• Reside na experiência do testador para gerenciar as
dependências entre os testes
TJPE.DINFO.GEDES.UTS
57
Testes Exploratórios X Testes com
Roteiro
Workshop de Testes
 Nível de documentação
 Com roteiros
• Requer vasta e boa documentação
 Com exploração
• Não requer documentação (assumindo grande conhecimento
do domínio)
TJPE.DINFO.GEDES.UTS
58
Testes Exploratórios X Testes com
Roteiro
Workshop de Testes
 Prazos
 Com roteiros
• Requer tempo para preparação
 Com exploração
• Não requer grande tempo inicial para preparação
TJPE.DINFO.GEDES.UTS
59
Testes Exploratórios X Testes com
Roteiro
Workshop de Testes
 Recursos Disponíveis
 Com roteiros
• Requer maior consumo de recursos (mais pessoas)
 Com exploração
• Ideal quando há limitação grande de recursos
TJPE.DINFO.GEDES.UTS
60
Testes Exploratórios X Testes com
Roteiro
Workshop de Testes
 Habilidades Necessárias
 Com roteiros
• Requer grande habilidade dos envolvidos na análise e
projeto dos testes; na execução, pode usar testadores com
poucas habilidades
 Com exploração
• Requer testadores habilidosos na arte da exploração
TJPE.DINFO.GEDES.UTS
61
Testes Exploratórios X Testes com
Roteiro
Workshop de Testes
 Cobertura
 Com roteiros
• Há rastreabilidade entre os testes e os requisitos /
especificações que os originaram. Dessa maneira, pode-se
calcular a cobertura
 Com exploração
• Não há como calcular a cobertura de maneira precisa
TJPE.DINFO.GEDES.UTS
62
Testes Exploratórios X Testes com
Roteiro
Workshop de Testes
 Verificação
 Com roteiros
• Verifica formalmente se o sistema está de acordo com a sua
especificação
 Com exploração
• O sistema é comparado apenas com as expectativas e o
entendimento do testador sobre o que a aplicação deveria
fazer
TJPE.DINFO.GEDES.UTS
63
Testes Exploratórios X Testes com
Roteiro
Workshop de Testes
 Facilidade de reprodução
 Com roteiros
• Pode ser facilmente reproduzido
 Com exploração
• Apenas defeitos podem ser reproduzidos, os testes não.
TJPE.DINFO.GEDES.UTS
64
Dúvidas | Sugestões
SEPG: [email protected]
Mantis: “Processo de Software”
TJPE.DINFO.GEDES.UTS
Workshop de Testes
UTS: [email protected]
Telefone: 3419.3701
65
TRIBUNAL DE JUSTIÇA DE PERNAMBUCO
DIRETORIA DE INFORMÁTICA
PROSOFT
Workshop de Testes
Conceitos Básicos
Daniel Leitão
Juliana Xavier
Setembro/ 2010
Download

Serviço Home Office