You are on page 1of 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)


Plano de Teste Estimativa / Medies
Requisitos

PROJETO

Aprovao

Modelagem

Desenvolvimento

Especificao

Especificao Aprovada

Testabilidade
TEST CENTER

Refinar Estimativa Plano de Caso de Teste SW - Verso Estvel

Verso Aprovada Pelo Teste

Suites de Teste Workflow Ger. Configurao

Registros de Defeito SW Verso Reteste

BD Testes

Resultados de Teste

GERENCIAMENTO DE PROJETOS Soluo

Com a ajuda de um processo bem definido !

Planejar Planejar Testes Testes

Projetar Testes

Executar Testes

Analisar Resultados

Gerenciar Defeitos

Etapas de Suporte
Preparao

Produtos
Requisitos

Etapas de Realizao
Planejamento Especificao

Estratgia de Testes Planos de Teste


Planejamento Especificao

Roteiros de Teste Casos de Teste


Execuo

Scripts ou procedimentos de teste

Etapas de Suporte
Preparao

Produtos
Requisitos

Etapas de Realizao
Planejamento Especificao

Estratgia de Testes Planos de Teste


Planejamento Especificao

Roteiros de Teste Casos de Teste


Execuo

Scripts ou procedimentos de teste

Estratgia de Testes

Caracterstica da Qualidade Funcionalidade Usabilidade Confiabilidade Desempenho Suportabilidade

Riscos do Negcio 1 ++ 2 ++ +++ ++ ++ + ++ ++ ++ ++ ++ ++ 3 4 ++ ++ 5 ++

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

Analisar Resultados

Gerenciar Defeitos

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

Marca o Caso de Teste como Suspeito

Requisito

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 ?

Requisitos

Configuraes

Caso de Teste

Iterao

Implementao

Quando devo testar ?

Como devo testar ?

Etapas de Suporte
Preparao

Produtos
Requisitos

Etapas de Realizao
Planejamento Especificao

Estratgia de Testes Planos de Teste


Planejamento Especificao

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
Requisitos

Teste

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 6.0 Netscape 7.0 firefox

Internet Explorer 5.5 Netscape 6.0 Mozilla 1.1 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 ME Windows 2000

Windows 98 Windows NT 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
Criao dos Cenrios Execuo dos Cenrios Analse Execuo Resultados

QADirector

Histricos das Execues

Biblioteca Planos de Teste

Repositrio

IBM - RATIONAL

Comparativo
Requirements Analysis Plan & Design Code Debug, Tune, & Unit Test Functional, Regression, & System Test Performance Test Deploy & Manage

Passos e Verificaes

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

Analista de Teste Test planning Test results analysis

Testad or Test implementation Test execution

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