Escolar Documentos
Profissional Documentos
Cultura Documentos
Rio de Janeiro
Fevereiro 2007
Teste de Software
Mestre e m Informática
Rio de Janeiro
Fevereiro 2007
Ficha Catalográfica
55p .il
i
i
Dedicatória
i
v
Agradecimentos
Este projeto não teria sido escrito sem a colaboração da minha orientadora
Adele Malta e o auxílio de Emerson Rios um dos autores dos Livros de Teste
de Software e um dos fundadores da Alats (Associação Latino – Americana de
Teste de Software). Também faço um agradecimento especial à Dias e
Percília, meus pais por uma vida de inspiração.
Finalmente gostaria de agradecer a minha futura esposa Anna Paula por
aguardar o término da faculdade e crescer junto comigo na vida pessoal e na
carreira profissional.
v
Resumo
muito maior, com suas imagens ficando cada vez mais exposta. Testar software não é
uma tarefa simples e requer um conhecimento muito grande de técnicas muitas vezes
inicia, pois quando chegar o momento dos testes de sistema, muitos defeitos já foram
detectados e corrigidos.
O Objetivo deste projeto é explicar de forma bem clara, para as pessoas que
Roteiro de Teste. Este Roteiro foi baseado nas principais normas e padrões de
v
i
Glossário
v
i
Lista de Figuras
v
i
Lista de Tabelas
i
x
Lista de Templates
x
Lista de Roteiros
x
i
Sumário
1 Introdução 1
2 Teste de Software 2
3 Qualidade de Software 4
4 Técnicas de Teste 19
5.2 - Planejamento
5.3 – Preparação
5.4 – Especificação
5.5 – Execução
5.6 – Entrega
8 Considerações Finais 43
9 Referências Bibliográficas 44
x
i
1. Introdução
1
2. Teste de Software
2
[2]) estima que o custo total dos softwares com defeitos para as organizações
nos EUA corresponde, aproximadamente, a um valor um pouco abaixo de 1%
do Produto Interno Bruto (PIB) daquele país.
3
3. Qualidade de Software
Para que a qualidade possa ser avaliada devem ser seguidas regras,
normas ou padrões que levam a empresa a uma certificação de qualidade do
software desenvolvido. Embora uma empresa possa se auto-avaliar ou ser
avaliada por seus próprios clientes, o termo Certificação costuma ser aplicado
apenas quando efetuado por uma empresa independente e idônea,
normalmente especializada neste tipo de trabalho.
1
Certificação é a emissão de um documento oficial indicando a conformidade com uma
determinada norma ou padrão. Antes da emissão do certificado, é preciso realizar todo um
processo de avaliação e julgamento de acordo com uma determinada norma ou padrão.
4
Atualmente, muitas instituições se preocupam em criar normas para permitir a
correta avaliação de qualidade tanto do software quanto de seus processos de
desenvolvimento. Apenas para ter uma visão geral, observe o quadro a seguir,
na tabela 1, com as principais normas nacionais e internacionais nesta área:
Tabela 1: Normas e padrões de software. [7]
5
3.1 Norma ISO 9126 - Qualidade de Produtos de Software
6
Analisabilidade É fácil de encontrar uma falha, quando
Modificabilidade É fácil modificar e adaptar?
Manutenibilidade
Estabilidade Há grande risco quando se faz
(é fácil de modificar?)
Testabilidade É fácil testar quando se faz alterações?
Adaptabilidade É fácil adaptar a outros ambientes?
outro ambiente?) Capac. Para substituir É fácil usar para substituir outro?
7
em conceitos do tipo "não satisfaz", "satisfaz parcialmente", "satisfaz
totalmente" e "excede os padrões". Estes conceitos, não deixam de ser uma
forma eficiente de medir uma característica.
8
Ela trará muitos recursos interessantes aos avaliadores, já que trata o
processo de avaliação e define os três tipos básicos de certificação: Empresas
que desenvolvem software, Empresas que adquirem software, Empresas que
fazem certificação, com a finalidade de melhorar a qualidade de seus próprios
produtos, determinar a qualidade do produto que irão adquirir e emitir um
documento oficial sobre a qualidade de um software.
9
3.3 Norma ISO 12119 - Qualidade de Pacotes de Software
Item Descrição
1. Escopo
2. Definições
3. Requisitos de qualidade
3.1. Descrição do Produto Descreve o produto, de forma a ajudar o comprador
em potencial, servindo como base para testes. Deve
incluir declarações sobre funcionalidade,
confiabilidade, usabilidade, eficiência,
manutenibilidade e portabilidade.
3.2. Documentação do Deve ser completa, correta, consistente, fácil de
usuário entender e capaz de dar uma visão geral do produto.
3.3. Programas e dados Descreve em detalhes cada uma das funções do
software, incluindo declarações sobre
funcionalidade, confiabilidade, usabilidade,
eficiência, manutenibilidade e portabilidade.
4. Instruções para teste
4.1. Pré-requisitos de Lista de itens necessários ao teste, incluindo
teste documentos incluídos no pacote, componentes do
sistema e material de treinamento.
10
4.2. Atividades de teste Instruções detalhadas sobre os procedimentos de
teste, inclusive instalação e execução de cada uma
das funções descritas.
4.3. Registro de teste Informações sobre como os testes foram realizados,
de tal forma a permitir uma reprodução destes
testes. Deve incluir parâmetros utilizados, resultados
associados, falhas ocorridas e até a identidade do
pessoal envolvido.
4.4. Relatório de teste Relatório incluindo: identificação do produto,
hardware e software utilizado, documentos
utilizados, resultados dos testes, lista de não
conformidade com os requisitos, lista de não
conformidade com as recomendações, datas, etc.
11
• Clareza nos formatos das telas de entrada e relatórios.
• Capacidade de reverter funções de efeito drástico.
• Alertas claros para as conseqüências de uma determinada confirmação.
• Identificação dos arquivos utilizados pelo programa.
• Identificação da função do programa que está sendo executada no
momento.
• Capacidade de interromper um processamento demorado.
2
Ciclo de Vida de Software são as fases (Atividades) que o software é desenvolvido
12
Tabela 5 – Lista de processos da Norma ISO 12207
13
Garantia da Qualidade Garante que os processos e produtos de software
estejam em conformidade com os requisitos e os
planos estabelecidos.
Verificação Determina se os produtos de software de uma
atividade atendem completamente aos requisitos
ou condições impostas a eles.
Validação Determina se os requisitos e o produto final
(sistema ou software) atendem ao uso específico
proposto.
Revisão Conjunta Define as atividades para avaliar a situação e
produtos de uma atividade de um projeto, se
apropriado.
Auditoria Determina adequação aos requisitos, planos e
contrato, quando apropriado.
Resolução de Problemas Análisa a resolução dos problemas de Qualquer
natureza ou fonte, descobertos durante a
execução do desenvolvimento, operação,
manutenção ou outros processos. .
Processos Implementa uma estrutura constituída de
Organizacionais processos de ciclo de vida e pessoal associados,
melhorando continuamente a estrutura e os
processos.
Gerência Gerenciamento de processos.
Infra-estrutura Fornece recursos para outros processos. Inclui:
hardware, software, ferramentas, técnicas,
padrões de desenvolvimento, operação ou
manutenção.
Melhoria Atividades para estabeler, avaliar, medir, controlar
e melhorar um processo de ciclo de vida de
software.
Treinamento Atividades para prover e manter pessoal treinado.
14
A norma ISO 12207 detalha cada um dos processos acima. Ela define
ainda como eles podem ser usados de diferentes maneiras por diferentes
organizações (ou parte destas), representando diversos pontos de vista para
esta utilização. Cada uma dessas classes representa a forma como uma
organização emprega esses processos, agrupando-os de acordo com suas
necessidades e objetivos.
15
Figura 1 – Evolução do CMM para o CMMI [8]
O trecho abaixo foi retirado da versão 1.0 do CMMI e define bem o que é
proposto com os níveis de maturidade.
16
processos utilizados no ciclo de vida do software. A segunda trata da avaliação
de um produto de software para a verificação de sua qualidade.
O modelo CMM no seu nível 2 tem uma área de processo sobre garantia
de qualidade de software, onde um dos passos para a sua implantação é a
atividade de teste de software, que como vimos é uma das formas de garantir a
qualidade do produto. Já o modelo CMMI define duas áreas de processo no
seu nível 3 que se referem à atividade de teste de software e se chamam de
verificação e validação, e correspondem a tipos específicos de testes como
será explicado a seguir.
17
A atividade de verificação corresponde a realização de
inspeções/revisões sobre os produtos gerados pelas diversas etapas do
processo de teste [2]. Alguns autores costumam chamar esta atividade de
Teste de Verificação, já a atividade de validação avalia se o sistema atende
aos requisitos do projeto (usuário). Os testes unitários, de integração, de
sistema e de aceitação podem ser classificados como testes de validação.
18
4. Técnicas de Teste
19
Teste de Contingência Verifica se o sistema retorna a • Induz um erro
um status operacional depois • Avalia a adequação de
de um falha. um Backup dos dados
Teste de Operação Verifica se o sistema pode ser • Manual de treinamento
executado em um status dos operadores
operacional normal • Verifica os
procedimentos
Teste de Conformidade Verifica se o sistema foi • Padrões seguidos
desenvolvido em • Documentação
concordâncias com padrões e completa
procedimentos
Teste de Segurança Verifica se o sistema esta • Acesso negado
protegido nos padrões de • Procedimentos Locais
segurança da empresa
20
Tabela 7 – Técnica de Teste Funcional
Tipo de Teste Descrição Exemplo
Teste de Requisitos Determina se o Sistema é • Validação do
executado conforme o Especificado X
especificado. Implementado
• Verifica Políticas e
regulamentos
Teste de Regressão Determina se alguma coisa que já • Mudança nos segmentos
estava funcionando corretamente funcionais do sistema.
parou de funcionar. • Mudança manual de
procedimentos corretos
Erro no Manuseio Erros podem ser prevenidos ou • Falha Introduzida no teste
(Usabilidade) detectados e depois consertados • Erro reincidente
Manual do Suporte Preparação de dados para o uso • Informar de Input
do sistema e no uso de dados • Toma ações baseadas
vindo do sistema nas informações contidas
nos relatórios
Teste de Integração Verifica que a interconexão entre • Cenário de Teste de
aplicações funciona corretamente Integração
Controle Verifica que o que pode sair • Seleciona transações e
errado foi adequadamente verifica se o
corrigido. (Olhar negativo) processamento de cada
transação possa ser
reconstruído na base de
teste
Paralelo Compara resultados do aplicativo • Compara os resultados
atual com a versão anterior alcançados das versões:
nova e a antiga para
garantir a equivalência
21
5. Ciclo de Vida do processo de Teste de Software
22
acordados e qualquer item considerado relevante pelo responsável das
atividades de testes para garantir o sucesso do projeto.
5.2 Planejamento
23
Como na maioria das vezes é impossível garantir que todo o sistema foi
testado e que nenhum erro mais existe, se faz necessário planejar o nível de
cobertura dos testes. Desta forma os responsáveis poderão verificar no Plano
de Testes o que está sendo coberto e como está o andamento.
A Estratégia de Testes deve ser elaborada antes do Plano de Teste,
porém é mais comum o Plano de Testes ser o principal e único documento de
planejamento de testes. O objetivo maior deles é reduzir a probabilidade da
ocorrência de defeitos quando o sistema ou software estiver em produção.
Essas falhas ou defeitos estão associados ao risco. Uma forma de se fazer
uma análise de risco é associá-lo a uma característica de qualidade do
software.
5.3 Preparação
5.4 Especificação
24
elaboração do cenário de teste, que será executado (testado). Um cenário é
uma história hipotética usada para ajudar as pessoas a solucionar um
problema, recriando ou visualizando um caminho a ser seguido. O cenário em
que o teste é baseado é aquele descrito em uma especificação do sistema, por
exemplo, do caso de uso. O Caso de teste é o cenário a ser executado, para
verificar se o que foi especificado foi devidamente implementado.
25
Figura 3 – Exemplo de um Fluxo de Eventos em um Caso de Uso [6]
26
5.4.1 Precondições e Pós-condições
Considere o seguinte:
27
• A pré-condição de um caso de teste não é apenas para um subfluxo,
apesar de ser possível definir pré-condições e pós-condições no nível do
subfluxo.
5.5 Execução
28
5.6 Entrega
29
Figura 5 – Diagrama de Atividades do Processo e Teste de Software
30
Atividade: Procedimentos Iniciais
Artefato: Guia Operacional de Teste (GOT)
Atividade: Preparação
Artefato: Relatório de Configuração
Relatório de Configuração
Pessoal: < Papéis dos envolvidos no processo de Teste >
Hardware: < Configuração do computador utilizado na execução dos testes >
Software: < Softwares utilizados para execução dos testes >
Massa: < Nome do Servidor e banco de dados utilizados no Teste >
31
Atividade: Planejamento
Artefato: Plano de Teste
Nesta etapa será criado o Plano de teste que deve ser revisado e
alterado sempre que houver necessidade. Toda modificação importante como
alterações na estratégia de teste utilizada ou pessoal envolvido,
responsabilidades de cada um, deve ser alterada também no Plano de Teste.
Template 3 – Plano de Teste.
Plano de Teste
Código do Plano de Teste: <O código que serve para referência
para identificar o plano de teste>
Nome do Plano de Teste: <O nome para identificar o Plano de
Teste>
Introdução: <Breve descrição do Plano de Teste>
Funcionalidades a serem testadas: <Quais são as funcionalidades 3 a
serem testadas>
Código da Estratégia de Testes: <Inserir o código do documento de
Estratégia de Teste relacionado>
Pessoal: <Papéis das Pessoas envolvidas na
atividade de Teste>
Data da modificação: <Anotar a data, hora e pessoa que
fizer alteração no Plano de Teste>
3
Funcionalidades são os módulos que serão testados.
32
Atividade: Planejamento
Artefato: Estratégia de Testes
Estratégia de Testes
Código da Estratégia de Teste: <O código que serve para
referência para identificar a
Estratégia de Teste>
Nome da Estratégia de Teste: <O nome para identificar a
Estratégia de Teste. >
Característica Risco 1 Risco (n+1) Importância
de Qualidade relativa
<Nome das 7 < Pontuação entre 1 a 3 <Quantidade <Pontuação entre
características dada para cada risco em de riscos 0 a 6. Cada
de qualidade> relação à característica definidas na característica tem
de qualidade do estratégia> uma pontuação
software > única em cada
estratégia>
Atividade: Especificação
Artefato: Caso de Teste – Especificação
33
que possam atender as expectativas de validação da qualidade:
5
Caso não haja escrever “não há”.
34
Tempo gasto: < Os casos de testes podem ter tamanhos
diferentes e tempos de execução diferentes,
mesmo que este tempo varie este campo daria
um tempo médio que este caso de teste leva
para ser executado. >
Atividade: Execução
Artefato: Casos de Teste – Execução
35
Atividade: Resultado
Artefato: Registro de Defeito
Registro de Defeito
Código da Pendência: <O código seqüencial que serve para referência
para identificar a Pendência>
Status: <O erro identificado pode ser classificado em 4
tipos: Melhoria, Baixo Impacto, Médio Impacto,
Alto Impacto. >
Situação: <Novo, Resolvido, Testado, Retorno, Liberado>.
Desenvolvedor: <Nome do desenvolvedor responsável pela
correção do defeito>
36
Descrição: <Informar a descrição do problema de forma
mais detalhada possível. >
Parâmetros: <Se necessário informar os registros necessários
para chegar ao erro. Ex: Código: 01, Nome:
Teste.>
Passo a Passo: <Informar cada passo para a execução do
problema, pode ser separado por números. Os
parâmetros Informados no passo anterior devem
ser informados novamente. Exemplo: 1-Digitar
Código: 01, 2-Digitar Nome: Teste, 3-Clicar em
OK.>
Código do Plano de Teste: <Código do Plano de Teste. >
Código do Caso de Teste: <Código do Caso de Teste Executado para
achar o erro. >
Versão: <Versão do Software que foi localizado o
problema. >
Anexos: <Se necessário incluir uma figura com o erro
ocorrido na execução do caso de teste. >
Atividade: Resultado
Artefato: Relatório de Defeitos
37
7. Exemplo de Uso do Roteiro de Teste Proposto
Relatório de Configuração
Pessoal: Líder do Teste: André;
Testador1: Waldir;
Testador2: Anderson.
Hardware: PC 256, PC 257
Software: Internet Explorer 7
Massa: (Servidor + Banco de dados) S050_Livraria
38
Roteiro 3 – Exemplo de um Plano de Teste
Plano de Teste
Código do Plano de Teste: 01
Nome do Plano de Teste: Livraria_Virtual
Introdução: Este plano de teste tem como objetivo
testar para editora que vende livros
pela Internet, os itens com importância
relativa maior, de acordo com a
estratégia de teste.
Funcionalidades a serem testadas: Login, Cadastro de Produtos, Carrinho
de Compras, Finalizar Compra.
Código da Estratégia de Testes: 01
Pessoal: Líder de Teste e Analista de Teste.
Data da modificação: <Anotar a data, hora e pessoa que
fizer alteração no Plano de Teste>
Estratégia de Testes
Código da Estratégia de Teste: 01
Nome da Estratégia de Teste: Livraria_Virtual
Característica Facilidade Tempo de Conectividade Importância
de Qualidade resposta relativa
Conectividade 1 2 3 6
Continuidade 1 1 2
Segurança 1 1
Eficiência 1 1 2
Funcionalidade 0
Usabilidade 3 2 5
Performance 3 3
A tabela acima apresenta uma pontuação entre 1 a 3 que foi dada para
cada risco em relação à característica de qualidade do software. As
características de qualidade de performance estão muito relacionadas com o
tempo de resposta. A continuidade também pode afetar a performance, pois
39
caso os componentes não se integrem com eficiência, a performance do
software pode ser afetada.
Caso de Teste
Código do Caso de Teste: CT01
Nome do Caso de Teste: Teste Campo Obrigatório
Pré – Condições: Não se aplica.
Pós – Condições: Mensagem de Erro do Sistema.
Detalhamento: *PA: O Ator não informa o login e a
senha.
PA: O Ator seleciona a opção OK.
**PS:: O sistema verifica se os
campos obrigatórios foram
informados
PS: O sistema apresenta a
mensagem “Os campos obrigatórios”
Cronograma: 1º Fase
Tempo gasto (média): 4 min
Característica de Qualidade Segurança
Técnica de Teste Segurança
Data da modificação:
Fluxo ***FA Exceção
40
• * PA – Passo do Ator.
• ** PS – Passo do Sistema.
• *** Nome do Fluxo Fluxo Básico (FB), Fluxo Alternativo (FA);
Esse é apenas um dos muitos casos de teste que podem ser criados
para está funcionalidade. Mesmo tendo apenas dois campos e dois botões,
deveria ser verificado (testado) também:
Fluxo Básico – Digitar um login e senha válidos e clicar no botão OK.
Fluxo Alternativo – Seriam vários, como exemplo o caso de teste CT01 acima,
login válido e senha inválida, login inválido e senha válida, etc.
Botão cancelar – Em alguns softwares o botão cancelar poderia, por exemplo,
limpar o que já foi escrito nos campos login e senha, em outros softwares o
botão cancelar poderia talvez sair do sistema. Como saber o que está certo?
Para isto devem ser verificados os requisitos do sistema.
Um Analista de Teste deve verificar se os requisitos do projeto e as
características de qualidade estão sendo validados na criação dos casos de
teste.
Roteiro 6 - Exemplo de um Registro de Defeito
Registro de Defeito
Código da Pendência: 01
Status: Melhoria.
Situação: Novo.
Desenvolvedor: Igor
Descrição: O sistema não está informando a
mensagem de campo obrigatório de
acordo com os requisitos do sistema.
Parâmetros: Código: Não informar
Nome: Não informar
Passo a Passo: 1-Não informar o Código;
2-Não informar o Nome.
Código do Plano de Teste: 01
Código do Caso de Teste: CT01
Versão: V 3.01
Anexos:
41
8. Considerações Finais
42
9. Referências Bibliográficas
[4] http://www.iso.ch/
[5] http://www.sei.cmu.edu/cmm/cmm.html
[6] http://www-306.ibm.com/software/br/rational/rup.shtml
[7] http://www.abnt.org.br/
[8] http://www.asrconsultoria.com.br
[9] http://www.qaiworldwide.org
[10] http://en.wikipedia.org/wiki/Pareto_principle
43