Você está na página 1de 75

Como escrever Caso de

Teste Teoria e Prtica


Ricardo Cristalli

Nivelamento do Conhecimento

Workbook Exerccio 01
Especificao informada:
1. Tamanho e Tipo do Campo:
Login: AlfaNumrico 10 Caracteres
Senha: Alfabtico 8 Caracteres
2. O boto Limpar deve limpar a tela
3. O Boto OK vai para o prximo Slide

Login WebCurso

Login:
Senha:
OK

Limpar

Exerccio:
Com os dados acima:
1. Listar os Cenrios e os Casos de teste
possveis
2. Caso tenha dvida na especificao
lista-la
3. Listar os Tipos de Teste possveis

A metodologia de testes integrada ao


ambiente organizacional

CLIENTE

Solicitao de Testes (kickoff)

PROJETO

Plano de Teste

Aprovao

Estimativa / Medies
Requisitos

Modelagem

Desenvolvimento

Especificao

Especificao
Aprovada

Testabilidade
TEST CENTER

Refinar Estimativa
Plano de Caso de Teste
SW - Verso Estvel

Suites de Teste
Workflow

Registros de Defeito

Ger. Configurao

SW Verso Reteste
BD Testes

Resultados de Teste

Verso
Aprovada
Pelo Teste

GERENCIAMENTO DE PROJETOS
Soluo

Com a ajuda de um processo bem definido !

Planejar
Planejar
Testes
Testes

Projetar
Testes

Executar
Testes

Gerenciar
Defeitos

Analisar
Resultados

Etapas de
Suporte
Preparao

Produtos

Etapas de
Realizao

Requisitos
Planejamento
Especificao

Estratgia de Testes
Planos de Teste
Especificao

Planejamento

Roteiros de Teste
Casos de Teste
Execuo

Scripts ou procedimentos
de teste

Etapas de
Suporte
Preparao

Produtos

Etapas de
Realizao

Requisitos
Planejamento
Especificao

Estratgia de Testes
Planos de Teste
Especificao

Planejamento

Roteiros de Teste
Casos de Teste
Execuo

Scripts ou procedimentos
de teste

Estratgia de Testes

Caracterstica da
Qualidade
Funcionalidade

Riscos do Negcio
1

++

++

Usabilidade

+++

Confiabilidade

++

Desempenho

++

Suportabilidade

++

++

++

++

Importncia
Relativa
27
23
7

++
++

++

++
++

20
23
100%

+ Levar em Considerao
++ Mdia Importncia
+++ Alta Importncia

Tipos de Testes
Teste de volume
Teste de funcionalidade
Teste de Usabilidade
Teste de Carga ....

Teste na fase de especificao

Elaborao dos Casos de Teste para a reviso


da especificao

Checklist

Recomenda-se o uso de
templates para a reviso

Alguns exemplos de Perguntas:

1. O Objetivo da especificao est de fcil entendimento?

2. Os Atores esto definidos?

3. Existem regras de navegabilidade em documentao Suplementar ou na


prpria especificao?

4. Todas as excees descritas esto sendo citadas no corpo da especificao?

5. Todas as telas (prottipos), possuem detalhamento de atributos?

6. Todos os campos do tipo "combo","lista" e "caixa de seleo" esto definidos


quanto a sua ordenao?

7. Todos os campos das telas esto definidos quanto a sua obrigatoriedade de


preenchimento?

8. Todos os campos das telas esto definidos quanto ao seu tamanho?

Alguns exemplos de Perguntas:

Todos os campos das telas esto definidos quanto ao seu tipo?

Todos os campos que recuperam dados esto definidos quanto ao seu valor
padro?

A seqncia lgica da especificao est bem descrita?

Todas as Regras de Negcio esto citadas ?

Todos os cenrios possveis esto descritos?

Todas as opes (Botes) da tela principal esto descritas como fluxos?

A endentao est refletindo a correta funcionalidade ?

Todas os campos do tipo data esto sendo validados quanto ao contedo,


formato invlido e data invlida?

Todas as mensagens esto inteligveis e corretamente descritas nas suas


respectivas aes do sistema?

Registrar as falhas encontradas

Um relatrio conclusivo deve ser enviado ao


responsvel pela elaborao da
especificao.
Informaes necessrias
Cliente
Projeto
Especificao Analisada
Data da reviso
Responsvel pela Anlise
Responsvel pela especificao

Para cada pergunta formulada:


As no-conformidades encontradas
As sugestes de melhoria

Exerccio

Reviso da especificao apresentada

Testabilidade

Relatrio de Testabilidade

Checklist
ANLISE

Anlise de Testabilidade

Testabilidade
Caso de Uso

Especificaes suplementares

Descrevem requisitos no-funcionais:


Confiabilidade
Desempenho (performance)
Segurana
Distribuio
Adequao a Padres
Restries de Hardware e
Especificaes Suplementares
Software
etc.

Requisitos no-funcionais

Devem ser testveis, para isso devem ser


mensurveis!
Precisam estar definidos em nmeros e nomes

O sistema precisa ser rpido. Quo rpido?


O sistema deve ser implementado numa plataforma
robusta. Que plataforma?

Processo de Teste

Planejar
Planejar
Testes
Testes

Projetar
Testes

Executar
Testes

Gerenciar
Defeitos

Analisar
Resultados

Projetar Teste - ATIVIDADES

Planejar
Projetar
Testes
Testes

Identificar a verso do Caso de Uso (Label)


Elaborar Casos de teste de entrega
Elaborar Casos de teste completo
Estruturar Scripts de teste
Elaborar Plano de Teste de Aceite
PS: Importante o uso de templates tambm para esta
atividade

Rastreabilidade Teste / Requisito

Planejar
Projetar
Testes
Testes

Mudana de
um
Requisito

Requisito

Marca o Caso de
Teste como
Suspeito

Teste

Desmarcar
depois de
Analisado

Projetar Testes - Artefatos

Planejar
Projetar
Testes
Testes
Casos de teste

Passos e
Verificaes

Casos de
Testes

Artefatos Gerados

O caso de Teste como centro


motivador do teste.

O que motivou o meu teste ?

Onde devo testar ?

Configuraes

Requisitos

Caso de Teste

Iterao

Quando devo testar ?

Implementao

Como devo testar ?

Etapas de
Suporte
Preparao

Produtos

Etapas de
Realizao

Requisitos
Planejamento
Especificao

Estratgia de Testes
Planos de Teste
Especificao

Planejamento

Roteiros de Teste
Casos de Teste
Execuo

Scripts ou procedimentos
de teste

Elaborao do Teste

A tarefa de elaborao do teste coberta por 3 documentos:


Especificao de Projeto de Teste Trata-se de um detalhamento da abordagem
apresentada no Plano de Teste e identifica as funcionalidades e caractersticas a serem
testadas pelo projeto. Este documento tambm identifica os casos e os procedimentos de
teste, se existirem, e apresenta os critrios de aprovao.

Especificao de Caso de Teste Define os casos de teste, incluindo dados de entrada,


resultados esperados, aes e condies gerais para a execuo do teste. Utilizaremos a
nomenclatura de Plano de Caso de Teste para este documento gerado.
Especificao do Procedimento de Teste Identifica todos os passos necessrios para
operar o sistema e exercitar os Casos de Testes especificados, de maneira a cobrir o Projeto
de Teste planejado. Os procedimentos de testes formam um documento separado com a
inteno de que seja seguido passo a passo, sem ocorrncias no previstas.
A Norma IEEE Std 829-1998 (IEEE Standard for Software Test Documentation) descreve um conjunto de documentos para as atividades
de teste de um projeto de software.

Elaborao do Teste

Documentao IEEE Std 829-1998

Elaborao de Teste

Software project (management) plan


(note: for many
authors, QA V&V)

(adapted from: Ilene Burnstein, Practical Software Testing)

Projetar Teste
Derivao do Caso de Teste

Os casos de testes so derivados de uma


especificao formal que define os requisitos

Requisitos de negcio, Casos de Uso, etc


Casos de
Teste

Cenrio de
Teste

Requisitos

Casos de Uso

Plano de Caso de Teste *

Esse documento estabelece o que ser testado, sendo seu principal objetivo
identificar o maior nmero de cenrios e variaes de determinado requisito
de software.
Cada cenrio ser representado por um conjunto de casos de testes que ser
validado por uma lista de procedimentos incorporados em uma sute de testes
que ser posteriormente elaborada.
Os casos de teste estabelecem quais informaes sero empregadas durante os
testes desses cenrios e quais sero os resultados esperados, estabelecendo a
massa crtica de testes necessria para validar todos os requisitos do software.
* Nomenclatura utilizada pelo instrutor, normalmente este plano esta contido no
plano de teste

Elaborao do
Plano de Caso de Teste

Para a elaborao dos casos de teste a partir do requisito


especificado deve-se considerar o seguinte:
Identificar todos os cenrios contidos nas especificao existente;
Para cada cenrio, identificar um ou mais casos de teste;
Para cada caso de teste, identificar condies de execuo;
Adicionar os dados para as condies nos casos de teste.

Elaborao do
Plano de Caso de Teste

Para a elaborao dos casos de teste a partir do requisito


especificado deve-se considerar o seguinte:
Identificar todos os cenrios contidos nas especificao existente;
Para cada cenrio, identificar um ou mais casos de teste;
Para cada caso de teste, identificar condies de execuo;
Adicionar os dados para as condies nos casos de teste.

Cenrio de Teste

Cenrio uma histria hipottica


usada para ajudar as pessoas a
solucionar um problema complexo,
recriando ou visualizando um
caminho a ser seguido. O termo
Planejamento baseado em Cenrios ganhou
popularidade nos planejamentos militares e passou
a ser utilizado em vrias outras atividades que
necessitavam de um planejamento detalhado. Um
bom cenrio aquele que pode ser usado por
qualquer pessoa.

Cenrio de teste o caminho ou situao a ser


testada !

Exemplo de Cenrio

Em um Caso de Uso de Transferncia Bancria, um dos


cenrios a Transferncia DOC para conta de terceiros.

Teste de Cenrio Teste de Sistema


Para se testar este cenrio de especificao, devemos criar um cenrio de
teste para validar esta funcionalidade. Este cenrio de teste, deve seguir os
seguintes passos:
1. Consultar o saldo da conta de origem,
2. Consultar o saldo da conta destino,
3. Transferir um valor da conta origem para conta destino,
4. Consultar novamente o saldo da conta origem, verificando que o saldo
inicial menos o valor transferido igual ao saldo atual,
5. Consultar o saldo da conta destino, verificando que o saldo inicial
acrescido do valor transferido igual ao saldo atual.

Dentro deste cenrio de teste podemos destacar diversos casos de testes:


CT01 Preenchimento dos campos obrigatrio na tela de transferncia
CT02 Validao de CPF
CT03 Conta Destino invlida
CT04 Transferncia de valores negativos
e muitos outros

Elaborao do
Plano de Caso de Teste

Para a elaborao dos casos de teste a partir do requisito


especificado deve-se considerar o seguinte:
Identificar todos os cenrios contidos nas especificao existente;
Para cada cenrio, identificar um ou mais casos de teste;
Para cada caso de teste, identificar condies de execuo;
Adicionar os dados para as condies nos casos de teste.

CT Preenchimento invlido do
campo nmero de confirmao

Preencher o campo nmero de confirmao


com um nmero invlido
O Sistema apresenta
uma mensagem

Definio de Caso de Teste


IEEE Std 829-1983
Documentation specifying inputs, predicted results, and a set of execution
conditions for a test item.
IEEE Standard 610 (1990) defines test case:
A set of test inputs, execution conditions, and expected results developed for a
particular objective, such as to exercise a particular program path or to verify
compliance with a specific requirement.
Boris Beizer (1995, p. 3)
A sequence of one or more subtests executed as a sequence because the
outcome and/or final state of one subtest is the input and/or initial state of the next.
The word test is used to include subtests, tests proper, and test suites.
Bob Binder (1999, p. 47)
A test case specifies the pretest state of the IUT and its environment, the test
inputs or conditions, and the expected result. The expected result specifies what the
IUT should produce from the test inputs. This specification includes messages
generated by the IUT, exceptions, returned values, and resultant state of the IUT
and its environment.
According to Ron Patton (2001, p. 65),
Test cases are the specific inputs that youll try and the procedures that youll follow
when you test the software.

Caso de Teste - Definio

Um caso de teste composto por um conjunto de entradas,


condies de execuo e os resultados esperados, tendo
como objetivo verificar os requisitos especificados do
sistema

Os casos de teste estabelecem quais informaes sero empregadas


durante os testes dos cenrios e quais sero os resultados esperados,
estabelecendo a massa crtica de teste necessria para validar todos
os requisitos do software

Caso de Teste

Elaborao do Plano

Definir os Casos de Teste dos Requisitos


Definir um ou mais Casos de Teste que posteriormente
permitam verificar se o sistema satisfaz o requisito.
Ao escrever o caso de teste, o requisito est sendo
escrito de um ngulo diferente.
Se utilizados em uma ferramenta, os casos de teste
podem estar diretamente associados aos requisitos,
alm de permitir que os testes possam ser feitos
automaticamente.

Padres de Qualidade

O caso de teste deve caractersticas para que possa ser usado e que
possa atender as expectativas de validao da qualidade:
Efetivo Testar o que se planejou testar
Econmico Sem passos desnecessrios
Reutilizvel - Possa ser repetido
Rastrevel Possa identificar o Requisito a ser testado
Auto explicativo - Possa ser testado por qualquer testador

Elaborao do Caso de Teste

Os seguintes itens devem ser abordados:


Identificao das condies de testes:
Identificao dos casos de testes (o que testar)
Deve conter uma definio de cada caso de teste identificado
Detalhamento da massa de entrada, de Sada ( resultante )
Critrios especiais para gerao da massa de Teste, com o nome do responsvel pela
elaborao
Necessidades de ambiente Especificar as necessidades adicionais de equipamentos
Definir agenda de levantamento (como testar)
Cronograma
Interdependncias Listar as interdependncias entre os Casos de Testes.

Exemplo de Caso de teste

Considere as seguintes situaes:


1 Um Sistema web com os seguintes requisitos no-funcionais:
Deve operar em diferentes Browsers
Deve poder usar diferentes plug-ins
Rodar em diferentes sistemas operacionais nas mquinas clientes
Deve receber pginas por diferentes servidores
Deve rodar em diferentes servidores

Testar o requisito funcional Manter Usurio


O sistema deve:
- incluir usurio
- alterar usurio
- excluir usurio

Exemplificando um cenrio:

- Funcionalidade Uma das funcionalidades Incluir usurio.


- um dos Testes:
Passo: Preencher a tela de usurio com seus campos obrigatrios
e selecionar a opo incluir.
Resultado esperado: Mensagem de Includo com sucesso.
Ambiente de teste:
Mquina cliente com sistema operacional windows 2000,
utilizando o Internet explorer 6.0 como Browser, recebendo
pginas de um servidor com IIS e ter um servidor de Websphere
em Linux.

Detalhando a situao anterior

1 Deve operar em diferentes Browsers:

Internet Explorer 5.0

Internet Explorer 5.5

Internet Explorer 6.0

Netscape 6.0

Netscape 7.0

Mozilla 1.1

firefox

Opera 7

2 - Deve poder usar diferentes plug-ins:


RealPlayer,
MediaPlayer,
no usar nenhum;

Para esta situao podemos


considerar a possibilidade de
criarmos 1296 diferentes
combinaes de ambientes
para cada cenrio de teste
criado.

3 - Rodar em diferentes sistemas operacionais nas mquinas clientes:

Windows 95

Windows 98

Windows ME

Windows NT

Windows 2000

Windows XP

4 - Deve receber pginas por diferentes servidores IIS, WebLogic e Apache.

5 - Deve rodar em diferentes servidores:


Windows 2000,
NT
Linux.

Exemplo de Caso de teste

Problema na gerao de casos de testes

Testes exaustivos so impraticveis.

Escolher bons casos de testes (dados de entrada e


comportamento esperado) fundamental para que um
teste seja bem sucedido, isto , detecte os erros
existentes.

Gerao dos Caso de Teste

Os casos de testes so derivados da especificao


funcional (p. ex., casos de uso), modelagem e/ou da
Arquitetura;

Cada caso de teste deve definir;

Um conjunto de dados de entrada dados de teste


O comportamento esperado do sistema
O critrio de aceitao

Existem dois tipos de abordagens para determinar os


casos de testes

Testes caixa-preta baseado na especificao do sistema


Testes caixa-branca (transparente) baseados na estrutura do
programa

Princpios para gerao de


Casos de Teste

As tcnicas de especificao usam vrios princpios para a


derivao dos casos de teste, alguns dos quais esto abaixo
listados:
Processamento lgico;
Classes de equivalncia;
Anlise de valores limtrofes;
Uso operacional e semeadura de erros (situao real e simulao de
erros);
Inclui, altera, consulta e deleta (IACD);
Outros mtodos de derivao (Ex. Complexidade Ciclomtica etc..).

Como reduzir o tempo de


documentao do teste

Pergunte para voc mesmo:


1. Quanto tempo voc leve para documentar
seu teste ?
2. Quanto tempo leva em reviso?
3. Quanto tempo leva corrigindo?
4. Quanto tempo leva corrigindo os casos de
teste se o cliente alter-los depois que voc
j elaborou?

Exerccio

Especificao
Aprovada pelo
cliente

Prottipo

Testes Caixa-Branca

So chamados testes estruturais

Tcnica estrutural:
Teste de caixa branca
Analisa a estrutura interna do software,
testando os caminhos lgicos possveis de
serem executados.

Teste de unidade

Cada componente testado em separado


- definio de componente varivel
classe (OO)
mdulo
procedimento
...
Necessidade: spec por componente
Frameworks: Junit, CppUnit

Teste Unitrio

JTest 5.0 - Parasoft

Teste de integrao

Testa-se as interfaces entre os componentes


necessita muita informao estrutural:
arquitetura
specs das interfaces

Teste de Sistema
Teste propriamente dito:
Execuo dos testes
Relatrio de falhas

Eliminao de erros (bug fixing)


Reteste (teste de regresso)
Coordenado pelo engenheiro de teste

Executado pelo testador


Manuteno
Falhas reportadas pelos usurios

Testes Caixa-preta

So chamados testes funcionais.


O programa uma caixa preta cujo comportamento
determinado estudando-se as suas entradas e
sadas.
Os casos de testes so derivados da especificao
funcional.
A escolha dos dados de entrada podem ser feitas com
vrias tcnicas:
- Partio de domnio
- Causa-efeito
- Step-by-step

Devido ao elevado nmero de possibilidades, temos


ento que encontrar um modo de escolher algum
subconjunto suficientemente representativo para a
nossa elaborao dos testes.
A lista abaixo representa algumas dicas, iniciando
das mais erradas a serem tomadas at as possveis.
No testar tudo, simplesmente desistir por causa do nmero elevado de
combinaes;
Testar todas as combinaes possveis (elevado custo e tempo);
Escolher uma ou duas combinaes e torcer para ter sido uma boa escolha;
Escolher o teste mais fcil, ignorando os mais usados e que agreguem mais valores;
Fazer uma lista de todas as combinaes possveis e escolher as mais importantes;
Fazer uma lista de todas as combinaes possveis e escolher subconjuntos
randomicamente;
Escolher um subconjunto que possa ser o mais provvel de se encontrar mais
defeitos

Desafios para um bom


Plano de Caso de Teste

Mudana de requisito
Manter-se sempre bem informado Rateabilidade
Descobrir onde esto os maiores riscos de mudanas nos requisitos
Construa seu caso de teste com variveis no meio do texto Re-utilizao
Compartilhe a responsabilidade do retrabalho com a gerncia do projeto
Identificar o documento que serviu de base para a elaborao

Mudana de Cronograma Re-Planejamento


Diminuio do prazo compartilhe a responsabilidade / mudana de escopo
Tente manter a elaborao na frente da execuo, pelo menos um cenrio
Enxugue o caso de teste de forma a ganhar tempo na elaborao

Rotatividade da Equipe de Teste


Possuir sempre material de consulta a padres, templates e exemplos...
Treinamento

Gesto do processo
Ferramenta livre para para
escrever Planos de Testes e Casos de
Teste

Gesto do processo
Execuo dos
Cenrios

Criao dos
Cenrios

QADirector

Analse
Execuo
Resultados

Histricos das
Execues

Repositrio

Biblioteca
Planos de Teste

IBM - RATIONAL

Comparativo
Requirements
Analysis

Plan
&
Design

Code

Debug, Tune,
&
Unit Test

Functional,
Regression,
& System Test

Passos e
Verificaes
Performance
Test

Deploy
&
Manage

COMPUWARE
RATIONAL
Segue
Mercury

Casos de
Testes

X-Zone
1

Gerao Automtica de Combinao de Testes para Interfaces Visuais;


Reconhecimento Automtico de Objetos Windows e Browsers;
Importao de Evidncias de Automao de Testes Convencionais;
Padronizao dos Testes para sistemas Front-End, Batch e Transacionais;
Integrao com plataforma Mainframe e Unix (via FTP);
Automao de Testes parametrizadas por Analistas, eliminando o Automatizador;
Analisador de Cdigo-Fonte para linguagens mais populares (VB, C++, Delphi, Java, dotNet);

X-Zone

Grupo HDI - Parcerias

Colombia

Brasil

Chile

Brasil
Mxico
Brasil
Brasil e
Latin Amrica

Exemplo de ferramenta de apoio


a gesto do processo de teste

TestManager

Viso Geral da Ferramenta

Plano de
Teste
Folder do Caso de
Teste

Caso deTeste

Configurao do
Caso de Teste

Criar previlgios
para os grupos e usurios
Privilgios:
Test planning

Test implementation
Test execution
Test results analysis

Testad
or Test implementation

Test execution

Analista de Teste
Test planning
Test results analysis

Gerente de teste

Test planning
Test implementation
Test execution
Test results analysis

Criando um novo Plano de Teste


File > New Test Plan

Nome do Plano
Descrio sobre o plano

Responsvel

Associando o Plano de Teste a


documentos externos

Procurar o arquivo
para associar ao
Plano

Criando um Folder do Caso de Teste

Selecionar Insert Test


Case Folder

Selecionar o plano de teste com o


boto direito

Criando um Caso de Teste

Selecionar Insert Test Case

Selecionar o folder do Caso


de Teste e depois clicar com
0 boto direito

Duas vises do Caso de Teste

Criando os procedimentos do teste

Imprimir o design

Selecione para
mudar de passo
para ponto de
verificao

Passo a Passo de teste

Criando os procedimentos do teste

Exerccio

Exerccio

Caso Prtico

Elaborar casos de teste

Você também pode gostar