Upload
rodrigo-kammers
View
5.890
Download
56
Embed Size (px)
DESCRIPTION
Monografia apresentada ao curso de Engenharia de Software do Centro Universitário Positivo, sobre Teste de Software, como requisito parcial para a conclusão do curso de pós-graduação. Orientador: Prof. Douglas MendesRodrigo Augusto Kammers
Citation preview
UnicenP – Centro Universitário Positivo
Pós-Graduação em Engenharia de Software
Rodrigo Augusto Kammers
O PROCESSO DE TESTE E AS ATIVIDADES ENVOLVIDAS EM
CADA FASE
CURITIBA
2006
Rodrigo Augusto Kammers
Monografia apresentada ao curso de Engenharia
de Software do Centro Universitário Positivo,
sobre Teste de Software, como requisito parcial
para a conclusão do curso de pós-graduação.
Orientador: Prof. Douglas Mendes
CURITIBA
2006
2
Rodrigo Augusto Kammers
Entendendo o processo de teste de software e as atividades envolvidas em cada
fase.
Monografia apresentada ao curso de Engenharia de Software do Centro
Universitário Positivo, sobre Teste de Software, como requisito parcial para a
conclusão do curso de pós-graduação.
Unicenp – 2006
______________________________________
Prof. Douglas Mendes
______________________________________
Prof. Silvio Bortoleto
3
RESUMO
Esta proposta de monografia propõe-se a descrever as fases do processo de
teste e as atividades envolvidas.
Através da apresentação dos problemas e dificuldades geradas pelo não uso
de uma metodologia de testes, mostra-se a necessidade de se estudar e entender o
processo.
Para iniciar o trabalho serão definidos os conceitos de qualidade e testes.
Após isto serão especificadas as etapas e subetapas do processo. E para cada
subetapa, serão identificadas as atividades necessárias para alcançar os objetivos.
Palavras-chave: Teste de Software, Qualidade, Metodologia e Processo de Teste.
4
SUMÁRIO
1. INTRODUÇÃO........................................................................................................9
1.1 TEMA.................................................................................................................9
1.2 PROBLEMA.......................................................................................................9
1.3 OBJETIVOS.....................................................................................................10
1.3.1 Objetivo geral...........................................................................................10
1.3.2 Objetivos específicos..............................................................................11
1.4 ETAPAS...........................................................................................................13
1.5 RESULTADOS ESPERADOS..........................................................................13
2. REVISÃO DA LITERATURA.................................................................................14
2.1 QUALIDADE DE SOFTWARE.........................................................................14
2.2 TESTE DE SOFTWARE..................................................................................14
2.3 IMPORTÂNCIA DOS TESTES.........................................................................15
2.4 CUSTO DOS TESTES.....................................................................................16
2.5 SELEÇÃO DO CONJUNTO DE TESTES........................................................16
2.6 DIMENSÕES DO TESTE.................................................................................17
2.6.1 Fases do teste..........................................................................................18
2.6.1.1 Teste de Unidade................................................................................18
2.6.1.2 Teste de Integração............................................................................18
2.6.1.3 Teste de Sistema................................................................................18
2.6.1.4 Teste de Aceitação.............................................................................18
2.6.2 Tipos de teste...........................................................................................19
2.6.2.1 Características da qualidade...............................................................19
2.6.2.2 Tipos de testes....................................................................................19
2.6.3 Técnicas de teste.....................................................................................21
2.6.3.1 Técnicas Funcionais...........................................................................21
2.6.3.2 Técnicas Estruturais............................................................................22
3. METODOLOGIA....................................................................................................23
4. APRESENTAÇÃO DOS RESULTADOS..............................................................24
4.1 PROCESSO DE TESTE DE SOFTWARE.......................................................24
4.2 DESCRIÇÃO DAS ETAPAS DE TESTE..........................................................25
5
4.2.1 Procedimentos iniciais............................................................................25
4.2.1.1 Elaborar o Guia Operacional de Testes..............................................25
4.2.2 Planejamento...........................................................................................26
4.2.2.1 Elaborar o Plano de Testes.................................................................26
4.2.2.2 Elaborar o projeto de testes................................................................27
4.2.3 Preparação...............................................................................................28
4.2.3.1 Adequar o projeto de testes à Gerência de Configuração e/ou de
controle de mudanças.....................................................................................28
4.2.3.2 Disponibilizar infra-estrutura e ferramentas de teste...........................28
4.2.3.3 Disponibilizar pessoal.........................................................................29
4.2.4 Especificação...........................................................................................30
4.2.4.1 Elaborar casos de testes.....................................................................30
4.2.4.2 Elaborar Roteiros de Teste.................................................................30
4.2.5 Execução..................................................................................................31
4.2.5.1 Preparar dados de testes....................................................................31
4.2.5.2 Executar testes...................................................................................32
4.2.5.3 Solucionar ocorrências de testes........................................................32
4.2.5.4 Acompanhar a execução dos casos de testes....................................33
4.2.5.5 Elaborar relatório final.........................................................................33
4.2.6 Entrega.....................................................................................................34
4.2.6.1 Avaliação e Arquivamento da Documentação....................................34
4.3 ALINHAMENTO COM O PROCESSO DE DESENVOLVIMENTO..................35
5. DISCUSSÃO DOS RESULTADOS.......................................................................37
6. CONCLUSÃO........................................................................................................39
6.1 SÍNTESE DO PROJETO..................................................................................39
6.2 CONTRIBUIÇÕES...........................................................................................39
6.3 LIMITAÇÕES...................................................................................................39
6.4 PESQUISAS FUTURAS...................................................................................40
6
7. REFERÊNCIAS.....................................................................................................41
ANEXO 1 – DOCUMENTOS DE TESTE SEGUNDO A NORMA IEEE STD 829-1998
...................................................................................................................................42
ANEXO 2 - CARACTERÍSTICAS E SUBCARACTERÍSTICAS SEGUNDO A
ISO/IEC 9126-1.........................................................................................................45
ANEXO 3 – MODELO DE PLANO DE TESTE.........................................................47
ANEXO 4 - MODELO DE PROJETO DE TESTE......................................................51
ANEXO 5 - MODELO DE CASOS DE TESTE..........................................................52
ANEXO 6 – MODELO DE PROCEDIMENTOS DE TESTE......................................53
ANEXO 7 - MODELO DE ENCAMINHAMENTO DE ITEM DE TESTE....................54
ANEXO 8 - MODELO DE DIÁRIO DE TESTE..........................................................55
ANEXO 9 - MODELO DE RELATÓRIO DE INCIDENTE DE TESTE.......................57
ANEXO 10 - MODELO DE RELATÓRIO RESUMO DE TESTE...............................58
Anexo 11 – guia operacional de teste........................................................................59
7
LISTA DE FIGURAS
Figura 1 – Custo do teste mais o custo da falha .......................................................16
Figura 2 – Relação entre níveis, tipos e técnicas de teste ........................................18
Figura 3 – Processo de desenvolvimento e processo de teste .................................38
8
1. INTRODUÇÃO
1.1 TEMA
Este trabalho tem como tema o processo de teste de software e as atividades
envolvidas em cada fase.
Assim como as fases de um projeto, o processo de teste é executado por
etapas; que se iniciam com um planejamento e se estendem até a avaliação dos
resultados. Cada uma das etapas compreende um conjunto de atividades, que
devem ser gerenciadas para que no final do processo sejam alcançados os objetivos
esperados.
Conforme os sistemas se tornam mais complexos e cruciais para a empresa,
aumenta a importância de um teste eficaz. Vimos que década após década (70 a
90) aumenta a participação do teste no total dos esforços de um projeto. As
atividades de teste que antes eram executadas apenas na última fase de um projeto,
agora atuam a partir do momento em que ele possua requisitos.
Ao observar a importância e complexidade das atividades envolvidas no teste,
vimos a necessidade do uso de uma metodologia para gerir este processo.
Este trabalho visa à elaboração de uma monografia, onde serão descritas as
fases do processo de teste de software e as atividades envolvidas.
1.2 PROBLEMA
O processo de teste de um software é visto como uma tarefa secundária, de
pouca importância. Visto que suas atividades parecem não agregar valor ao projeto
em questão, para muitos ainda é tratado como um mal necessário, para provar ao
cliente que o produto funciona.
Após analisar as combinações de entradas de dados e plataformas
disponíveis, e criarmos os casos de teste, chegamos a números grandes demais.
Que tornam a tarefa de testar um software 100% praticamente impossível.
Esta análise piora ainda mais a imagem das tarefas de teste, que além de não
adicionar nenhuma funcionalidade a um sistema não garante ao cliente que o
software está livre de defeitos.
9
Através da engenharia de software, e aplicando-se uma metodologia de
testes formal, conseguimos fazer com que a execução das atividades de teste seja
eficaz. Encontrando o maior número de defeitos possível antes do usuário final.
Melhorando a satisfação dos clientes e reduzindo os custos com manutenção e
correção dos erros após a finalização do projeto.
Sem a utilização de um processo formal, fica mais difícil treinar as pessoas da
área de teste adequadamente. A comunicação entre o setor de testes e as outras
áreas da equipe de desenvolvimento fica deficiente. Dificultando a visibilidade da
responsabilidade de cada um sobre a qualidade do produto final do produto.
Quando não se usa uma metodologia formal, as tarefas de teste são
esquecidas, e a tendência é a de serem executadas somente na fase final do
projeto. Mas quando o processo de teste integra-se ao processo de
desenvolvimento, atuando logo nas etapas iniciais do projeto, vários problemas já
podem ser detectados e corrigidos antes mesmo do início da implementação do
código.
1.3 OBJETIVOS
1.3.1 Objetivo geral
O objetivo principal deste trabalho é o de descrever as etapas do processo de
teste juntamente com as atividades envolvidas. Dando uma ênfase maior as
atividades mais relevantes de cada fase.
As etapas do processo de teste são:
Procedimentos iniciais
Planejamento
Preparação
Especificação
Execução
Entrega
No final da descrição do processo, será feito um paralelo das atividades de
teste com as fases de desenvolvimento. E quando for necessária uma descrição
10
mais detalhada das ferramentas, metodologias, modelos de documentos, ou outro
artigo, estes serão acrescentados ao final do projeto por meio de anexos.
1.3.2 Objetivos específicos
Antes de entrar na descrição do processo de teste, serão abordados temas
referentes à qualidade e definição de teste.
Lista dos itens a serem abordados na introdução:
O que é Qualidade?
O que é teste?
Importância do teste
Custos do teste versus custo de correção dos erros
Tipos de testes
Teste unitário
Teste de integração
Teste de sistema
Teste de aceitação
Técnicas de teste
Caixa branca
Caixa preta
Tipos de teste
Qualidade
Performance
Usabilidade...
Para cada subetapa, serão levantadas as atividades que levam a criação do
produto a que ela se destina. Abaixo temos algumas tabelas que definem as
subetapas, e quais produtos devem ser criados em cada uma destas fases.
1 - Procedimentos iniciais
Subetapa Produto
11
Elaborar o Guia Operacional de
Testes
Guia Operacional de teste
2 - Planejamento
Subetapa Produto
Estabelecer Plano de Testes Plano de testes – nova versão
Análise de Riscos do Projetos de Testes
Estabelecer Projeto de teste Projeto de teste
3 - Preparação
Subetapa Produto
Adequar o projeto de testes à
Gerência de Configuração e/ou de
controle de mudanças
Registro e controle das diversas versões
do produto:funcional, desenvolvimento,
produto e operacional
Disponibilizar infra-estrutura e
ferramentas de teste
Infra-estrutura e ferramentas de teste
disponíveis para a equipe de testes
Disponibilizar pessoal Equipe de testes definida e capacitada
4 - Especificação
Subetapa Produto
Elaborar casos de testes Casos de Testes(atual e nova versão)
“Scripts” de testes(se usar ferramentas de
automação)
Especificação das necessidades de
dados de testes
Elaborar Roteiros de Teste Roteiros de testes
5 - Execução
Subetapa Produto
Preparar dados de testes Bases/Arquivos de teste disponíveis
Executar testes Resultado dos testes
Relatório de defeitos encontrados
Ajustes no material de testes
12
Solucionar ocorrências de testes Relatório de defeitos encontrados com
status resolvido ou a avaliar
Acompanhar a execução dos
casos de testes
Análise do andamento dos Casos de
Testes
Elaborar relatório final Relatório final dos testes
6 - Entrega
Subetapa Produto
Avaliação e Arquivamento da
Documentação
Relatórios de não conformidade
Relatório final de testes
Documentação arquivada
1.4 ETAPAS
Para entender estes objetivos, este projeto está composto pelas seguintes
etapas:
- Esta introdução, onde se apresenta o tema, problema e objetivos;
- A revisão da literatura, onde se examinam os conceitos ligados a qualidade
e ao teste de software;
- A metodologia utilizada neste trabalho;
- O desenvolvimento do trabalho, que consiste na apresentação das etapas
do teste de software e as atividades envolvidas;
- A discussão dos resultados, onde comparamos a teoria com a prática vivida
pelo autor;
- A conclusão, onde se revê o caminho percorrido neste trabalho e são
sugeridos temas futuros.
1.5 RESULTADOS ESPERADOS
Após a conclusão deste trabalho, espera-se com o documento final, alcançar
os seguintes objetivos:
13
Tornar-se uma referência para a estruturação dos processos de um
setor de testes.
Demonstrar para a organização, a importância das atividades de teste.
Demonstrar para a organização, a economia de manutenção gerada
devido a descoberta de defeitos através da atividade de teste.
Contribuir para o processo de formação de mão de obra especializada
2. REVISÃO DA LITERATURA
2.1 QUALIDADE DE SOFTWARE
Na década de 80, iniciou-se uma abordagem da área da qualidade que visa à
melhoria do processo. Segundo este conceito, a qualidade de um produto ou
serviço, somente pode ser assegurada através da qualidade do processo.
Nessa abordagem, o objetivo é controlar a produção e eliminar a introdução
de elementos que possam gerar não conformidade ao produto final.
Para o desenvolvimento de software, metodologias como o CMMI, PSP e o
TSP colaboraram para assegurar a qualidade do software. E dentro destas
metodologias existem atividades de teste que contribuem na garantia da qualidade
do produto.
E as atividades de teste têm conquistado bastante espaço e autonomia dentro
das organizações. E à medida que se tornam mais complexas, necessitam de
metodologias específicas para que seus processos sejam executados plenamente. E
é neste ponto onde a qualidade do processo de teste se reflete na qualidade do
produto final de software.
2.2 TESTE DE SOFTWARE
Existem varias definições para teste de software, entre elas podemos
destacar as seguintes:
É o processo de executar um programa ou sistema com a intenção de
encontrar defeitos (Glen Meyers).
14
Qualquer atividade que a partir da avaliação de um atributo ou capacidade de
um sistema seja possível determinar se ele alcança os resultados desejados
(Bill Hetzel).
O processo de operação de um sistema ou componente em específicas
condições, observando ou registrando os resultados, e fazendo uma
avaliação em alguns aspectos do sistema ou componente (IEEE).
Na prática, podemos definir o teste como o processo de executar um
programa, utilizando-o completamente e de todas as formas possíveis, a fim de
verificar se ele atende aos requisitos especificados. E tendo como objetivo principal
descobrir defeitos antes que o software seja liberado para o cliente final.
Desta forma, vimos que o teste contribui na satisfação do cliente,
assegurando que o produto entregue chegue com a qualidade esperada. E dentro
da organização, garantindo que os padrões internos sejam cumpridos, reduzindo
assim o custo com re-trabalho após cada fase onde o teste é aplicado.
2.3 IMPORTÂNCIA DOS TESTES.
Além de contribuir para a qualidade do software, o teste tem um papel
fundamento na diminuição dos custos de manutenção e correção do produto.
Segundo Ron Patton, no seu livro Software Testing, os custos para a correção
de um problema aumentam exponencialmente no decorrer do projeto. Quanto mais
tarde for detectado um erro, menor é a chance de existir uma solução viável; que
cause pouco impacto, utilize poucos recursos e se adapte ao tempo disponível.
Por exemplo, um erro que seja identificado logo após a fase de definição de
requisitos, pode ter como correção apenas alguns ajustes na documentação dos
requisitos e no planejamento do projeto. Se este mesmo erro for detectado somente
após a finalização da etapa de implementação, pode ter como conseqüência a
mudança de toda a arquitetura deste produto.
2.4 CUSTO DOS TESTES
15
Vimos que o teste contribui bastante na diminuição dos custos diretos, como
manutenção, suporte e re-trabalho. E também nos custos indiretos, como na
qualidade dos produtos e na satisfação dos clientes. Mas como podemos decidir
quanto devemos investir no teste para que tenhamos o máximo de retorno possível?
Já concluímos que por mais testes que façamos sempre estaremos sujeitos
ao aparecimento de uma falha no produto. Mas quanto mais investimos no teste,
menor será o custo da utilizado para a manutenção. Podemos notar com isso o
aparecimento de um custo total. Este valor total representa a soma do investimento
feito nos testes com aqueles que serão empregados na manutenção e correção.
Se traçarmos um gráfico deste custo total (figura 1), e se conseguirmos na
prática atingir o seu ponto de menor valor, teremos então alcançado o ponto onde a
relação custo benefício mais nos favorece.
Figura 1 – Custo do teste mais o custo da falha
2.5 SELEÇÃO DO CONJUNTO DE TESTES
Quando um produto é enviado para ser testado, uma difícil tarefa durante o
planejamento é a de decidir quais os testes que serão realizados. Dentro de uma
quantidade de tipos de testes e uma variedade de configurações de ambiente
possíveis, podemos chegar à conclusão de que a execução do teste poderá se
tornar custosa demais, ou até extrapolar as datas de finalização do projeto.
Para determinar os testes que serão executados, e quais não, podemos
utilizar como fator de decisão, uma análise de riscos com seus respectivos impactos,
relacionados a cada teste levantado. Uma ferramenta de qualidade que sugerimos
para auxiliar nesta escolha é a matriz GUT.
16
Para definir as prioridades, utilizando a matriz GUT, são definidos valores
para os indicadores de gravidade, urgência e tendência. Para indicar o peso de cada
um destes itens, são utilizadas algumas perguntas chave. Tendo isto, basta
multiplicar para cada item o peso de seus indicadores. Quanto maior o valor maior
será a prioridade de execução deste teste.
Indicador Descrição Perguntas e pesosGravidade Aquilo que afeta
profundamente o resultado. È o dano causado caso o teste não seja executado
O dano é extremamente importante? (5) O dano é muito importante? (4) O dano é importante? (3) O dano é relativamente importante? (2) O dano é pouco importante? (1)
Urgência Pressão do tempo que o sistema sofre. Define qual a importância de se fazer este teste no momento atual.
Tenho que tomar uma ação muito urgente? (5) Tenho que tomar uma ação urgente? (4) Tenho que tomar uma ação relativamente urgente?
(3) Posso aguardar? (2) Não há pressa? (1)
Tendência É o estado que a situação pode apresentar, caso não seja tomada nenhuma medida corretiva. Indica a tendência do erro se agravar com o passar do tempo, caso ele ocorra.
Se não fizer nada, a situação vai piorar muito? (5) Se não fizer nada, a situação vai piorar? (4) Se não fizer nada, a situação vai permanecer? (3) Se não fizer nada, a situação vai melhorar? (2) Se não fizer nada, a situação vai melhorar muito?
(1)
2.6 DIMENSÕES DO TESTE
Para entender as diversas fases e tipos de testes, podemos visualizá-lo em
três dimensões. Sendo que cada uma destas dimensões representa uma de
classificação do testes.
Estas classificações são aplicadas segundo estas visões:
Fase de desenvolvimento – relaciona o teste com a fase de
desenvolvimento onde ele é aplicado.
Tipo de teste – relaciona o teste à característica de qualidade que está
sendo avaliada.
Técnica de teste – são as técnicas utilizadas para se executar o teste.
A figura abaixo nos mostra os níveis de testes com seus tipos associados.
17
Cenpra - Figura 2 – Relação entre níveis, tipos e técnicas de teste
2.6.1 Fases do teste
2.6.1.1 Teste de Unidade
Este é o estágio mais baixo da escala de testes e são aplicados nos menores
componentes de código criados. São aplicados de maneira individual a cada
unidade do sistema. Utiliza as técnicas de teste de caixa branca para a sua
execução, e normalmente é realizado pelo próprio programador;
2.6.1.2 Teste de Integração
È o processo de verificar a interação entre os componentes. Para que esta
fase seja executada, os módulos já devem ter passado pelos testes unitários. Será
dado mais ênfase à interface entre os módulos que estão sendo analisados.
2.6.1.3 Teste de Sistema
Nesta etapa o software é testado por completo. Os teste que são aplicados
são do tipo caixa-preta. Nesta fase se verifica a conformidade com os requisitos,
simulando um ambiente de produção real.
2.6.1.4 Teste de Aceitação
18
Os testes de aceitação, também chamados de teste Alfa e Beta, são
realizados para permitir ao usuário final validar todos os requisitos. Nesta fase o
cliente confirma se todas as suas necessidades foram atendidas pelo sistema.
2.6.2 Tipos de teste
A classificação dos tipos de teste é feita tendo como referência a
característica de qualidade que se deseja alcançar. Existem testes específicos para
se atingir cada uma das características relacionadas pela norma ISO/IEC 9126-1.
2.6.2.1 Características da qualidade
Na tabela abaixo, são mostrados os tipos de características de qualidade e
sua descrição.
Característica Descrição
Funcionalidade
Evidenciar que o conjunto de funções atende às
necessidades explícitas e implícitas para a finalidade
a que se destina o produto.
Confiabilidade
Evidenciar que o desempenho se mantém ao longo
do tempo e em condições estabelecidas.
Usabilidade Evidenciar a facilidade para a utilização do software
Manutenibilidade
Evidenciar que há facilidade para correções,
atualizações e alterações.
Portabilidade
Evidenciar que é possível utilizar o produto em
diversas plataformas com pequeno esforço de
adaptação.
2.6.2.2 Tipos de testes
A quantidade de tipos de teste existente é bastante grande. E tem um
relacionamento direto com o tipo produto de software que esta sendo testado, e com
19
o ambiente onde será utilizado. Abaixo relacionamos os tipos de testes mais
freqüentemente utilizados:
Testes de Carga: visam avaliar a resposta de um software sob uma
pesada carga de dados, repetição de certas ações de entrada de dados,
entrada de valores numéricos grandes, consultas complexas a base de
dados, grande quantidades de usuários simultâneos para verificar o nível
de escalabilidade.
Testes Back-to-back: o mesmo teste executado em versões diferentes do
software e os resultados são comparados.
Testes de Configuração: verificam se o software está apto a funcionar
em diferentes versões ou configurações de ambientes (hardware e
software).
Testes de Usabilidade: verificam o nível de facilidade de uso do software
pelos usuários.
Testes de Instalação: verificam o processo de instalação parcial, total ou
atualização do software.
Testes de Segurança: validam a capacidade de proteção do software
contra acessos interno ou externo não autorizados.
Testes de Recuperação: validam a capacidade e qualidade da
recuperação do software após falhas de hardware ou problemas externos.
Testes de Compatibilidade: validam a capacidade do software de
executar em um particular ambiente de hardware/software/sistema
operacional ou rede.
Testes de Desempenho/Performance: visam garantir que o sistema
atende os níveis de desempenho e tempo de resposta acordados com
usuários e definidos nos requisitos.
Testes Funcionais: grupos de testes que validam se o que foi
especificado foi implementado.
Teste de Qualidade de Código: grupos de testes com o intuito de
verificar o código fonte dos programas em consonância com padrões,
melhores práticas, instruções não executadas e outros.
Testes de Alterações: visam rastrear alterações de programas durante o
processo de teste.
20
Testes de Recuperações de Versões: verificam a capacidade de retornar
a uma versão anterior do software.
Testes de Interoperabilidade: avaliam as condições de integração com
outros softwares e /ou ambientes.
Testes de Sobrevivência: avaliam a capacidade do software em
continuar operando mesmo quando algum elemento (software ou
hardware) fica inoperante ou para de funcionar.
Testes Estéticos: avaliam toda a documentação do projeto, tais como
modelos, requisitos, etc.
Teste Embutido: avalia a capacidade de integração entre o hardware e o
software.
Teste de Conferência de Arquivos: verificam alterações nos arquivos
usados.
Testes Alfa: são executados quando o desenvolvimento está próximo a
sua conclusão.
Testes Beta: são executados quando o desenvolvimento e testes estão
praticamente concluídos.
Teste de Verificação de Sites Web: verificam problemas que possam
haver no site como links inválidos, arquivos órfãos, ligações entre páginas
(Molinari, 2003).
2.6.3 Técnicas de teste
2.6.3.1 Técnicas Funcionais
Os testes funcionais têm por objetivo a verificação da entrada dos dados, do
processamento, e da resposta a este processamento. Através destes métodos
também são verificados se o sistema atende aos requisitos de negócio. Estes
métodos são do tipo caixa-preta.
Alguns exemplos destes tipos de teste são:
Teste baseado em casos de uso
Valores limites
21
Particionamento de equivalência
2.6.3.2 Técnicas Estruturais
Estas técnicas têm por objetivo determinar defeitos na estrutura interna ou no
código do software. Também são chamadas de teste de caixa-branca, e são
normalmente feitas pelos programadores na fase dos testes de unidades.
Alguns exemplos destes tipos de teste são:
Teste de caminhos
Teste de comandos
Teste de ramos
Teste de condições
22
3. METODOLOGIA
Este trabalho tem como objetivo levantar todas as atividades necessárias
para gerir o processo de teste. Auxiliando assim na coordenação das tarefas
realizadas pela equipe de testes, e apontando também os principais pontos para que
o processo de teste esteja alinhado com o processo de desenvolvimento.
Antes de entrar na descrição do processo, é necessário fundamentar os
aspectos essenciais envolvidos nestas atividades. Para isso foi feita uma pesquisa
através de livros e da Internet, identificando os conceitos e metodologias
conhecidas.
Após isto foi feito um estudo mais detalhado sobre a norma IEEE Std 829-
1998, para se identificar e entender os itens necessários para a elaboração dos
documentos de testes. E com base nesta norma e na bibliografia pesquisada, foram
listadas as atividades de teste que contribuem na elaboração destes documentos.
E para que esta metodologia seja mais facilmente aplicada, foi feito um
paralelo do processo de teste com o de desenvolvimento. Assim como a criação de
modelos de todos os documentos citados pela norma IEEE Std 829-1998.
23
4. APRESENTAÇÃO DOS RESULTADOS
4.1 PROCESSO DE TESTE DE SOFTWARE
Como toda atividade de produção de software, o teste requer um
planejamento detalhado. E durante todo o processo, possuir uma documentação
bem estruturada melhora a visibilidade das fases do teste. Uma boa documentação
contribui para o gerenciamento da execução dos testes, e é uma forma de
comunicação entre as partes envolvidas no teste e no projeto como um todo. A
norma IEEE Std 829-1998 descreve um conjunto de oito documentos básicos de
teste de software, que devem ser gerados na atividade de gerência do teste de
software. Esta documentação cobre desde a preparação até o registro dos
resultados. A metodologia de teste que será descrita a seguir, é baseada
principalmente na produção da documentação descrita por esta norma. E as
atividades relacionadas em cada fase do processo de teste, terão como objetivo
principal a geração e manutenção da documentação prevista pela norma.
A norma separa as atividades de teste em três etapas: preparação, execução
e registro do teste. Mas para uma melhor distribuição das atividades envolvidas,
Trayahú Moreira Filho, em seu livro Teste de Software, propõe uma metodologia
dividida em seis partes; sendo que as quatro primeiras são voltadas a preparação, a
quinta é direcionada para a execução e a sexta a finalização do teste.
Estas etapas são:
Planejamento
Procedimentos iniciais
Preparação
Especificação
Execução
Entrega
Mas para que o processo atenda os documentos da norma IEEE Std 829-
1998, devem ser criados os seguintes documentos:
Plano de testes
Especificação do projeto de teste
Especificação dos casos de teste
24
Especificação dos procedimentos de teste
Relatório de encaminhamento dos itens de teste
Diário do teste
Registro de incidentes de teste
Relatório resumo de teste
4.2 DESCRIÇÃO DAS ETAPAS DE TESTE
Para entender melhor cada etapa de teste, elas foram divididas em
subetapas. Cada subetapa agrupa atividades comuns que produzem um
determinado artefato.
Cada uma destas subetapas é composta pelos seguintes itens:
Insumos – são os itens que são pré-requisitos para a realização da
subetapa.
Produtos – são os documentos gerados pela subetapa.
Atividades – tarefas que precisam ser realizadas para conseguir gerar
os produtos esperados.
Nas atividades de teste descritas por Trayahú Moreira Filho, foram feitas
algumas alterações a fim de se gerar todos os documentos propostos pela norma
IEEE a que se foi proposto
4.2.1 Procedimentos iniciais
O projeto de teste se inicia com a análise dos requisitos de negócio. E através
deste estudo deverá ser criado um documento guia para a execução do processo de
teste. Com estes dados iniciais já é possível prever uma lista de atividades de teste,
necessidades de recursos de pessoal e ambiente.
4.2.1.1 Elaborar o Guia Operacional de Testes
Produto
Guia Operacional de teste (termo utilizado por Trayahú Moreira Filho, descrito
no anexo 11)
25
Insumos
Requisitos do negócio
Modelos de dados
Diagramas de fluxo de dados
Diagramas de contexto
Atividades
Planejar as atividades sobre os requisitos de negócio e fazer a sua análise.
Identificar os riscos que envolvem os requisitos de negócio.
Fazer entrevistas com a equipe de desenvolvimento.
Estabelecer datas para a elaboração do plano de teste e projeto de teste.
Elaborar o documento Guia Operacional de Teste
4.2.2 Planejamento
O objetivo desta etapa é o de elaborar o projeto de plano de testes e o projeto
de testes. Sua finalidade é diminuir os riscos do negócio e direcionar as próximas
atividades do teste.
4.2.2.1 Elaborar o Plano de Testes
Produtos
Plano de testes
Insumos
Guia operacional de teste – GOT
Planejamento do sistema que está sendo desenvolvido
Atividades
Identificar o tamanho em pontos de função, ou outra medida, do sistema a ser
testado.
Relacionar as atividades de testes, indicando as datas de início e término, por
subsistema ou módulo para , pelo menos, os seguintes testes:
Testes Unitários, Integração, Testes de Sistema, Testes de Aceitação.
Caracterizar as medições para calcular os indicadores de qualidade e
desempenho.
26
Prever os recursos (hardware,software, pessoal, ambiente) e a estratégia
para a sua obtenção e capacitação (ver a etapa de preparação).
Definir a alocação de responsabilidades para as atividades e testes
específicos.
Definir a necessidade de dados para testes.
Definir os relatórios de acompanhamento do processo de testes e de controle
de correções de defeitos, caso sejam necessários outros relatórios além
daqueles já padronizados.
Definir as regras para a classificação dos defeitos e da sua severidade, caso
já não estejam padronizados.
Identificar os riscos do projeto.
Elaborar o Plano de Testes.
Alinhar o Plano de Testes ao Planejamento do Sistema.
Planejar o cronograma de testes.
Aprovar o Plano de Testes.
4.2.2.2 Elaborar o projeto de testes
Produtos
Especificação do projeto de teste
Análise de riscos do projeto de testes.
Insumos
Plano de teste
Guia operacional de teste – GOT
Atividades
Elaborar a análise de riscos do projeto de testes.
Analisar os requisitos do sistema.
Analisar os diagramas do sistema a fim de entender as tecnologias envolvidas
Planejar os tipos de testes que serão realizados (testes estáticos e dinâmicos,
teste unitário, teste de integração, teste de sistema, teste de aceitação)
Identificar as técnicas estruturais ou funcionais que serão executadas.
Definir a infra-estrutura necessária.
Dividir o teste de acordo com os módulos do sistema
Construir documento de Projeto de testes.
27
4.2.3 Preparação
O objetivo principal desta etapa é preparar o ambiente para a realização dos
testes. As necessidades de equipamentos, pessoal, ferramentas de automação,
hardware e software são levantadas e planejadas.
4.2.3.1 Adequar o projeto de testes à Gerência de Configuração e/ou de controle de
mudanças
Produto
Registro e controle das diversas versões do produto:funcional,
desenvolvimento, produto e operacional
Insumos
Arquitetura do ambiente de desenvolvimento
Arquitetura do ambiente de produção
Ferramentas e procedimentos de Gerência de Configuração e de mudança
Atividades
Definir o nível de controle de versão e controle de mudanças necessárias
para o projeto.
Definir os perfis de acesso.
Definir processos de sincronização entre a equipe do projeto e a equipe de
testes.
Disponibilizar o processo/ferramenta.
Definir o baseline (grupo de produtos) do projeto de testes.
4.2.3.2 Disponibilizar infra-estrutura e ferramentas de teste
Produtos
Infra-estrutura e ferramentas de teste disponíveis para a equipe de testes
Insumos
Projeto de testes
Arquitetura básica do ambiente
28
Arquitetura do ambiente de produção
Ferramentas de teste
Atividades
Instalar hardware e software necessários.
Instalar ferramentas de testes a serem utilizadas.
Configurar ambiente conforme necessidades do projeto.
Estabelecer perfis de atualização.
Disponibilizar para a equipe do projeto.
Resolver problemas referentes a acessos a informações ou processos.
Definir a origem da massa de testes e a forma de sua dispinibilização.
Preparar os ambientes de teste em conformidade com o ambiente real onde o
sistema será processado.
4.2.3.3 Disponibilizar pessoal
Produto
Equipe de testes definida e capacitada
Insumos
Projeto de Testes
Plano de Testes
Ferramentas de Testes
Descrição do ambiente de testes
Atividades
Avaliar o projeto e o plano de testes.
Levantar as características do ambiente de teste.
Levantar as características das ferramentas a serem utilizadas.
Avaliar a disponibilidade e a experiência da equipe de teste do projeto.
Avaliar as necessidades de treinamento.
Capacitar a equipe de testes, se necessário.
Avaliar o tamanho do sistema em pontos de teste ou em outra métrica
adotada para a organização.
29
4.2.4 Especificação
Nesta fase são elaborados os casos de teste e os roteiros de teste. Estes
roteiros são elaborados a medida que os itens do projeto sejam disponibilizados
para a equipe de teste.
4.2.4.1 Elaborar casos de testes
Produtos
Casos de Testes
“Scripts” de testes
Especificação das necessidades de dados de testes
Insumos
Projeto de Testes
Plano de Testes
Documentação técnica do sistema
Necessidades de dados de teste
Posição quanto aos testes já realizados
Atividades
Elaborar Casos de Testes.
Ajustar Casos de Testes existentes.
Preparar “Scripts” de testes (se usar ferramenta automatizada).
Especificar as necessidades de dados de testes.
Revisar os Casos de Testes.
4.2.4.2 Elaborar Roteiros de Teste
Produtos
Roteiros e procedimentos de testes
Insumos
Casos de testes
Planos de Testes
Fluxo de execução dos programas previsto pela equipe de desenvolvimento
Atividades
30
Elaborar os Roteiros de Testes
Analisar o Fluxo de execução dos programas ou os Casos de Usos.
Compatibilizar o fluxo ou os Casos de Usos com os Casos de Testes.
Revisar os Roteiros de Testes.
4.2.5 Execução
O objetivo desta fase é a execução dos testes planejados na fase de
especificação. Nesta fase os testes são executados e os seus resultados
registrados.
4.2.5.1 Preparar dados de testes
Produtos
Bases/Arquivos de teste disponíveis
Insumos
Casos de Testes
“Scripts” de Testes
Roteiros de Testes
Documentação do sistema
Especificação das necessidades de dados de testes
Processo de criação de bases e/ou arquivos de teste
Atividades
Levantar disponibilidade das bases de dados ou arquivos de testes.
Definir o processo de captura de dados.
Elaborar os procedimentos necessários a disponibilização das bases de
dados ou arquivos.
Acordar com os usuários os dados que serão utilizados nos testes.
Acertar com os usuários a condução dos testes em função dos dados a
serem utilizados.
Testar a base de dados de teste.
4.2.5.2 Executar testes
31
Produtos
Resultado dos testes
Relatório de incidentes de teste
Ajustes no material de testes
Insumos
Relatório de encaminhamento de itens de teste
Roteiros de Testes
Casos de Testes
“Scripts” de Testes
Resultados esperados
Atividades
Executar os Roteiros de Testes, Casos de Testes e “Scripts” de Testes
previstos.
Examinar os resultados obtidos versus os resultados esperados.
Emitir relatório de defeitos encontrados.
Registrar os defeitos encontrados.
Acertar com os usuários a execução e condução dos testes.
Submeter aos usuários os resultados de testes.
Caso seja constatado algum defeito nos Casos de Testes, Roteiros de
Testes, “Scripts” de Testes e/ou Resultados esperados, efetuar as correções
devidas.
4.2.5.3 Solucionar ocorrências de testes
Produtos
Relatório de defeitos encontrados com status resolvido ou a avaliar
Insumos
Relatório de Defeitos com status a resolver
Resultados dos testes
Atividades
Analisar os Relatórios de Defeitos encontrados e os Resultados de Testes
correspondentes.
Identificar o módulo/programa/compontente que originou a ocorrência.
32
Identificar e corrigir o problema no módulo/programa/compontente.
Disponibilizar nova versão do módulo/programa/compontente na ferramenta
de gerência de configuração.
Atualizar o Relatório de Defeitos encontrados com o status correspondente.
Corrigir os “Scripts” de testes e/ou Casos de Testes, se for o caso.
4.2.5.4 Acompanhar a execução dos casos de testes
Produtos
Diário de testes
Insumos
Relatório de defeitos(resumo)
Resultado dos testes(resumo)
Projeto de teste
Plano de testes
Casos de testes
Roteiros de testes
Atividades
Obter os Relatórios de Defeitos encontrados (resumo).
Elaborar totalizações, relatórios, documentos e gráficos pertinentes conforme
o Projeto de Testes do projeto.
Elaborar relatório de Análise dos Resultados de Testes.
Submeter os Resultados de Testes aos usuários e desenvolvedores.
Disponibilizar e divulgar o relatório.
4.2.5.5 Elaborar relatório final
Produtos
Relatório resumo dos testes
Insumos
Análise dos resultados do teste
Projeto de teste
Resultados de testes
Relatórios de defeitos – resumo
33
Plano de Testes
Atividades
Avaliar o grau de cumprimento dos objetivos dos testes definidos no Projeto
de teste e nos Planos de Testes.
Elaborar o Relatório Final.
Dimensionar o tamanho final do projeto de teste em Pontos de Testes ou em
outra métrica usada na organização.
Buscar o tamanho final do sistema que foi testado, junto à equipe de
desenvolvimento.
Realizar reunião formal junto às áreas envolvidas visando a terminar o projeto
de testes.
Avaliar o nível de criticidade dos defeitos encontrados e alinhavar possíveis
ações de melhoria de qualidade.
4.2.6 Entrega
Nesta etapa encerra-se o projeto de testes. A documentação é arquivada e as
informações relevantes à melhoria do processo ou pendências são reportadas.
4.2.6.1 Avaliação e Arquivamento da Documentação
Produtos
Relatórios de não conformidade
Relatório final de testes
Documentação arquivada
Insumos
Documentos de testes
Atividades
Avaliar toda a documentação do processo de testes.
Arquivar a documentação do processo de testes.
Elaborar relatório de não conformidades e de conformidades, se for o caso.
Elaborar relatório final de testes.
34
Avaliar os indicadores de testes.
4.3 ALINHAMENTO COM O PROCESSO DE DESENVOLVIMENTO
Durante o processo de teste, existem diversas tarefas que dependem de
informações da equipe de desenvolvimento, e da mesma forma, o desenvolvimento
também necessita dos dados gerados pelo teste. Estas informações são importantes
para que se possa dar continuidade as suas tarefas, ou que os desvios encontrados
sejam corrigidos o mais rápido possível.
Devido a isto é necessário que as duas equipes conheçam claramente estes
pontos de ligação. Os seus cronogramas devem estar sincronizados, para que não
haja perdas de recursos ou tempo gerados por estas dependências. Assim que uma
destas informações ou produtos estiverem finalizados, a outra equipe deve ser
avisada para que possa usufruir destes resultados.
Na figura 3 é mostrado o relacionamento entre os dois processos.
35
Figura 3 – Processo de desenvolvimento e processo de teste
36
5. DISCUSSÃO DOS RESULTADOS
Através deste trabalho, notamos a complexidade que o processo de teste
possui. E que para que ele tenha êxito, é fundamental que as etapas de
planejamento sejam elaboradas com muito critério e detalhamento.
Além disto, as atividades de teste devem estar alinhadas com o processo de
desenvolvimento. Se não houver esta cooperação entre as equipes o processo pode
não ter êxito.
E para que o processo ocorra de modo organizado, deve ser dado ênfase ao
preenchimento correto e pleno da documentação referente a cada etapa do teste.
37
38
6. CONCLUSÃO
6.1 SÍNTESE DO PROJETO
Através da pesquisa feita através de livros e da Internet, foram reforçados os
conceitos essenciais para a atividade de teste. E após esta análise vimos a
importância que possui a norma IEEE Std 829-1998 para o processo.
Com base nisto foram listadas todas as atividades necessárias para se
preencher corretamente as documentações citadas. E para dar um apoio no uso da
metodologia descrita, foram construídos modelos todos os modelos descritos pela
norma.
Antes de encerrar o projeto, foi feito um paralelo do processo de teste com o
de desenvolvimento. Para reforçar os pontos onde o teste interage com o
desenvolvimento.
Desta forma, conseguimos descrever os processos, suas atividades, e a
documentação necessária para a gestão do setor de testes.
6.2 CONTRIBUIÇÕES
Podemos citar as seguintes contribuições deste trabalho:
O levantamento da importância da norma IEEE Std 829-1998, como
base para a construção de um processo de software.
A elaboração de um roteiro para que se possa estruturar e coordenar
uma equipe de testes.
6.3 LIMITAÇÕES
Apesar deste trabalho ainda não ter sido aplicado em um projeto real,
podemos verificar que as atividades levantadas contribuem para a produção dos
documentos descritos pela norma IEEE Std 829-1998.
Para que uma pessoa possa executar as atividades contidas nesta pesquisa,
é necessário ter conhecimento das técnicas de teste e suas aplicações, o que não
foi visto em detalhes neste trabalho.
39
6.4 PESQUISAS FUTURAS
Este trabalho visou mais o aspecto administrativo do processo de teste. Por
isso, possíveis complementações deste projeto poderiam focar na execução do teste
propriamente dito. As sugestões das pesquisas seriam:
Estudo das técnicas de teste e como aplicá-las
Elaboração de casos de teste
Testes automatizados
Execução de teste para aplicações WEB.
40
7. REFERÊNCIAS
Beizer, Boris. Black-Box Testing: techniques for funcional testing of software and systems. New York: Wiley, 1995.
NOBIATO CRESPO, Adalberto. Uma Metodologia para Teste de Software no Contexto da Melhoria de Processo. Campinas. Disponível em: <http://bibliotecadigital.sbc.org.br/download.php?paper=254>
HETZEL, Bill. The Complete Guide to Software Testing. 2ª Edição. John Wiley &Sons, 1988.
The Institute of Electrical and Electronics Engineers. IEEE Std 829: Standard for Software Test Documentation. New York: IEEE Computer Society, 1998.
The International Organization for Standardization and The International Electrotech-nical Commission. ISO/IEC 9126-1 Product Quality. 1ª Edição, 2001.
Moreira Filho, Trayahú R. TESTE DE SOFTWARE. 5ª Edição. Alta Books Ltda,
2003.
Pressman, R. Engenharia de Software. 5ª Edição. Mc GrawHill, 2002.
PRESSMAN, R. S. Engenharia de Software. 5ª Edição. Rio de Janeiro: Mc Graw-Hill, 2002.
MYERS, G.J. The Art of Software Testing. 1ª Edição. New York: Wiley, 1979, 177p.
41
ANEXO 1 – DOCUMENTOS DE TESTE SEGUNDO A NORMA IEEE STD 829-1998
1 Plano de teste
Descrever o escopo, métodos, recursos, e calendário das atividades de teste.
Identifica os itens a serem testados, as características a serem testadas, as tarefas
de teste a serem realizadas, o responsável por cada tarefa, e os riscos associados
ao plano de testes.
Um plano de teste deve possuir a seguinte estrutura:
a) Identificador do plano de teste
b) Introdução
c) Itens de teste
d) Características que serão testadas
e) Características que não serão testadas
f) Metodologia
g) Critérios de aceitação
h) Critério de suspensão e requerimentos de reinicialização
i) Produtos de teste
j) Atividades de teste
k) Necessidades do ambiente
l) Responsabilidades
m) Necessidades de contratação e treinamento
n) Cronograma
o) Riscos e contingências
p) Aprovações.
2 Especificação do projeto de teste
Para especificar os refinamentos da metodologia de teste e identificar os
componentes a serem testados no projeto e seus testes associados.
O projeto de teste deve ter a seguinte estrutura:
a) Identificador do projeto de teste
b) Componentes a serem testados
c) Refinamentos da metodologia
d) Identificação dos testes
e) Critérios de aceitação
42
3. Especificação do caso de teste
Definir um caso de teste identificado por um projeto de teste
Um caso de teste deve conter a seguinte estrutura:
a) Identificador da especificação do caso de teste
b) Itens de teste
c) Especificações de entrada
d) Especificações de saída
e) Necessidades de ambiente
f) Requerimentos de procedimentos especiais
g) Dependencia de outro caso de teste.
4 Especificação de procedimento de teste
Especificar os passos para execução de um conjunto de casos de teste. São
os passos usados para analisar um item de software em ordem para avaliar as suas
características.
Um procedimento de teste deve conter a seguinte estrutura.
a) Identificador da especificação do procedimento de teste
b) Propósito
c) Requerimentos especiais
d) Passos para executar o procedimento
5 Relatório de encaminhamento de item de teste
Identificar os itens de teste que estão sendo enviados para o teste. Inclui a
pessoa responsável por cada item, sua localização física e seu status. As variações
entre o requerimento do item corrente e o projeto são registrados neste relatório.
Um relatório de entrega de item de teste deve ter a seguinte estrutura:
a) Identificador do relatório de encaminhamento de item de teste
b) Itens entregues
c) Localização
d) Status
e) Aprovações
6 Diário de teste
43
Fornecer um registro cronológico dos detalhes relevantes sobre a execução
dos testes.
O diário de teste deve ter a seguinte estrutura:
a) Identificador do diário de teste
b) Descrição
c) Atividades e eventos de entrada
7 Relatório de incidente de teste
Documentar qualquer evento que ocorra durante o processo de teste que
requeira investigação.
Um relatório de incidente de teste dever ter a seguinte estrutura:
a) Identificador do relatório de incidente de teste
b) Sumário
c) Descrição do incidente
d) Impacto
8 Relatório resumo de teste
Sumarizar os resultados das atividades designadas para o teste e fornecer
avaliações baseadas nestes resultados.
Um sumário de relatório de teste deve ter a seguinte estrutura:
a) Identificador do relatório resumo de teste
b) Sumário
c) Variações
d) Avaliação detalhada
e) Sumário dos resultados
f) Avaliação
g) Sumário das atividades
h) Aprovações
44
ANEXO 2 - CARACTERÍSTICAS E SUBCARACTERÍSTICAS SEGUNDO A
ISO/IEC 9126-1
Características Subcaracterísticas Descrição
Funcionalidade
Adequação Presença de conjunto de funções e
sua apropriação para as tarefas
Acurácia Geração de resultados ou efeitos
corretos
Interoperabilidade Capacidade de interagir com outros
sistemas
Conformidade Estar de acordo com normas,
convenções, regulamentações
Segurança de
acesso
Capacidade de evitar acesso não
autorizado a programas e dados
Confiabilidade
Maturidade Freqüência de falhas
Tolerância a falhas Manter nível de desempenho em caso
de falha
Recuperabilidade Capacidade de se restabelecer e
restaurar dados após falhas
Usabilidade
Inteligibilidade Facilidade de entendimento dos
conceitos utilizados
Apreensibilidade Facilidade de aprendizado
Operacionabilidade Facilidade de operar e controlar a
operação
Eficiência
Comportamento em
relação ao tempo
Tempo de resposta, de
processamento.
Comportamento em
relação a recursos
Quantidade de recursos utilizados
Manutenibilidade Analisabilidade Facilidade de diagnosticar deficiências
e causas de falhas
Modificabilidade Facilidade de modificação e remoção
de defeitos
Estabilidade Ausência de riscos de efeitos
45
inesperados
Testabilidade Facilidade de ser testado
Portabilidade
Adaptabilidade Capacidade de ser adaptado a
ambientes diferentes
Capacidade para
ser instalado
Facilidade de instalação
Conformidade Acordo com padrões ou convenções
de portabilidade
Capacidade para
substituir
Substituir outro software
46
ANEXO 3 – MODELO DE PLANO DE TESTE
Empresa
Projeto Versão Data
PLANO DE TESTEObjetivo: descrever o escopo, métodos, recursos, e calendário das atividades de teste. Identifica os itens a serem testados, as características a serem testadas, as tarefas de teste a serem realizadas, o responsável por cada tarefa, e os riscos associados ao plano de testes.
Identificador
IntroduçãoSumariza os itens de software e as características que serão testadas. A necessidade para cada item e seu histórico pode se incluído neste item.Referência aos seguintes documentos, quando existirem: Autorização do projeto Plano do projeto Plano de qualidade Plano de gerenciamento de configuração Políticas relevantes Padrões relevantes.
Identifica os itens de teste incluindo seu nível de versão e revisão. Também especifica as características de transmissão de mídia que impactam nos requerimentos de hardware ou indicam a necessidade de transformações lógicas ou físicas antes do inicio dos testes (Ex: programas que precisam ser transferidos de fita para disco).
Itens de testeItem Versão Descrição
Referências a fontes dos seguintes itens de documentação, se existirem: especificação de requerimento, especificação de projeto, guia de usuário, guia de operação, guia de instalação.
ReferênciasDocumento Data de criação Fonte de origem
Características que serão testadas e características que não serão testadas. Identifica todas as características de software e combinações a serem testadas. Identifica o a especificação do projeto de teste associada a cada característica e cada
combinação de características. Características
Característica Descrição Sim Não
FuncionalidadeEvidenciar que o conjunto de funções atendem às necessidades explícitas e implícitas para a finalidade a que se destina o produto.
ConfiabilidadeEvidenciar que o desempenho se mantém ao longo do tempo e em condições estabelecidas.
Usabilidade Evidenciar a facilidade para a utilização do software
Eficiência
Manutenibilidade Evidenciar que há facilidade para correções, atualizações e alterações.
PortabilidadeEvidenciar que é possível utilizar o produto em diversas plataformas com pequeno esforço de adaptação.
Estágios do teste
47
Característica Descrição Sim Não
Teste Unitário
Validar individualmente cada um dos componentes utilizados naimplementação das funcionalidades do sistema. São realizados aolongo do fluxo de implementação.
Teste de Integração
Validar a integração entre componentes e pacotes desenvolvidospara implementação das funcionalidades do sistema. Sãorealizados ao longo do fluxo de implementação após os testesunitários e integração dos componentes.
Teste de Sistema
Validar se todos os elementos do sistema foram adequadamenteintegrados e estão de acordo com os requisitos especificados.São realizados pela equipe de desenvolvimento, no fluxo detestes, conforme definido no Plano.
Teste de Aceitação
Validar se o sistema está de acordo com os requisitosespecificados. O teste de aceitação deverá ser realizado pelocliente em ambiente de homologação e seu sucesso indica que osistema está pronto para ser posto em produção.
Especifica os critérios para determinar quando um teste passou ou falhouCritérios de aceitação
Item de teste Descrição dos critérios
Especifica os critérios utilizados para suspender ou reiniciar um teste ou parte dele. Especifica as atividades de teste que precisarão ser repetidas, quando o teste for reiniciado.
Critério de suspensão e requerimentos de reinicialização
Identifica os documentos que serão gerados pelo processo de teste. Os seguintes documentos poderão se incluídos:
ProdutosCaracterística Sim NãoPlano de teste
Especificações do projeto de teste
Especificações dos casos de teste
Especificações dos procedimentos de testes
Relatórios de encaminhamento de itens de teste
Diário de teste
Relatórios de incidentes de teste
Relatórios de resumo de teste
48
Identifica o conjunto de tarefas necessárias para realizar o teste. Identifica todas as dependências entre as tarefas e as habilidades requeridas para cada uma delas.
Tarefas e cronogramaCódigo Descrição da tarefa Dependências Observações Responsável Data
Especifica as propriedades desejadas e necessárias para o ambiente de teste. Esta especificação deve conter as características físicas dos aparatos, incluindo hardware, comunicações e sistemas de software, seu modo de uso, e qualquer outro software ou necessidade para suportar os testes. Também especifica o nível de segurança que deve ser fornecido pelos aparatos de teste, softwares de sistemas, e componentes proprietários como software, dados e hardware. Identifica as ferramentas de teste necessárias
Necessidades do ambienteItem DescriçãoHardwareSoftwareSegurançaFerramentas
ResponsabilidadesIdentifica os grupos responsáveis por gerenciar, projetar, preparar, executar, verificar e resolver. Em adição, identifica os grupos responsáveis por fornecer itens de teste indicados nas necessidades de ambiente.
Estes grupos podem ser desenvolvedores, testadores, operadores, representantes de clientes, suporte técnico, gerência, administradores de dados e suporte de qualidade.
Grupo Tarefa
Ger
enc
iar
Pro
jeta
r
Pre
par
ar
Exe
cuta
r
Ver
ifica
r
Re
solv
er
DesenvolvedorTestadorOperadorClienteSuporte GerênciaAdmin. BDQualidade
Necessidades de contratação e treinamentoEspecifica contratações de pessoal necessárias e as habilidades. Identifica necessidades de treinamento para fornecer as habilidades necessárias.
ContrataçãoGrupo Função Habilidades necessárias Quantidade
49
TreinamentosGrupo Treinamento Habilidades necessárias Quantidade
Riscos e contingênciasIdentifica os riscos associados a plano de teste. Especifica os planos de contingência para cada possível atraso do cronograma.
Riscos e contingênciasRisco Gravidade Contingência
AprovaçõesEspecifica os nomes e cargos de todas as pessoas que precisam aprovar o plano de teste. Fornece espaço para assinaturas e datas.
_______________________________________ _________________Gerente do Teste Data
_______________________________________ _________________Gerente do Desenvolvimento Data
______________________________________ _________________Gerente de Qualidade Data
50
ANEXO 4 - MODELO DE PROJETO DE TESTE
Empresa
Projeto Versão Data
PROJETO DE TESTEObjetivo: Para especificar os refinamentos da metodologia de teste e identificar os componentes a serem testados no projeto e seus testes associados.
Identificador
Identifica os itens de teste incluindo seu nível de versão e revisão.
Itens de testeItem Versão Descrição
MetodologiaCód. item Fase Tipo Estágio Abordagem TécnicaItem a ser testado ou validado
Fase do projeto Tipo de teste Estágio de teste Caixa preta / caixa branca
Automática / Manual
Identificação dos testes
Lista o identificador e uma breve descrição de cada caso de teste associado a este projeto.Casos de teste
Cód. item Descrição
51
ANEXO 5 - MODELO DE CASOS DE TESTE
Empresa
Projeto Versão Data
CASO DE TESTEObjetivo: Definir um caso de teste identificado por um projeto de teste.
Identificador
Identifica os itens de teste incluindo seu nível de versão e revisão.
Itens de testeCód. Item Nome Requisitos associadosCódigo Nome do caso de teste Nome do caso de uso associado ou requisito
Identificador Nome do caso de teste
Descrição Descrição sucinta do caso de teste
Responsável Responsável pela especificação do caso de teste
Requisito Código do caso de uso ou requisito associado
Tipo de teste Tipo de teste a ser realizado
Abordagem Caixa-branca ou caixa-preta
Técnica Automática ou manual
Dados de testePré-condições Condição inicial exigida para execução do caso de teste
Pós-condições Situação esperada após a execução do caso de teste
Passos Descrição dos passo, incluindo referências aos procedimentos indicados
52
ANEXO 6 – MODELO DE PROCEDIMENTOS DE TESTE
Empresa
Projeto Versão Data
PROCEDIMENTOS DE TESTEObjetivo: Especificar os passos para execução de um conjunto de casos de teste. São os passos usados para analisar um item de software em ordem para avaliar as suas características.
Identificador Identificador do procedimento de teste
Descrição Descrição sucinta do procedimento de teste. Indicando os casos de teste relacionados.
Configuração do ambienteFerramentas de apoioDados necessários
Tipo de teste a ser realizado
Passos Descrição dos passos para execução do procedimento.
Passo 1Passo 2Passo 3
Informações adicionaisRegistro Descreve métodos especiais ou formatos para registrar os resultados da execução do teste, os
incidentes observados, e outros eventos pertinentes ao teste.
Configuração Descreve a seqüência de ações necessárias para preparar a execução do procedimento.
Inicialização Descreve as ações necessárias para iniciar a execução do procedimento.
Medição Descreve como as medições do teste serão feitas
Desligamento Descreve as ações necessárias para suspender o teste quando eventos não programados ocorrerem.
Reinicialização Identifica um ponto para reiniciar o procedimento e descreve as ações necessárias para reiniciar o procedimento a partir do ponto de inicio.
Parada Descreve as ações necessárias para fazer uma execução parar.
Restauração Descreve as ações necessárias para restaurar um ambiente.
Contingências Descreve as ações necessárias para lidar com anomalias que possam ocorrer durante a execução do procedimento.
53
ANEXO 7 - MODELO DE ENCAMINHAMENTO DE ITEM DE TESTE
Empresa
Projeto Versão Data
ENCAMINHAMENTO DE ÍTEM DE TESTE
Objetivo: Identificar os itens de teste que estão sendo enviados para o teste. Inclui a pessoa responsável por cada item, sua localização física e seu status. As variações entre o requerimento do item corrente e o projeto são registrados neste relatório.
Itens entreguesItem Versão Descrição Localização Status
Observações
AprovaçõesEspecifica os nomes e cargos das pessoas que aprovaram a entrega do item. Fornece espaço para assinaturas e datas.
_______________________________________ _________________Responsável do teste pelo recebimento Data
_______________________________________ _________________Responsável pela entrega Data
54
ANEXO 8 - MODELO DE DIÁRIO DE TESTE
Empresa
Projeto Versão Data
DIÁRIO DE TESTE
Objetivo: Fornecer um registro cronológico dos detalhes relevantes sobre a execução dos testes.
TestesCód. Proc. Versão Descrição Responsável OK Data
55
Cód. ProcedimentoFuncionários presentes
Resultados do procedimentoInformações do ambiente
Eventos anormais
Identificador relatórios de incidentes
Cód. ProcedimentoFuncionários presentes
Resultados do procedimentoInformações do ambiente
Eventos anormais
Identificador relatórios de incidentes
Cód. ProcedimentoFuncionários presentes
Resultados do procedimentoInformações do ambiente
Eventos anormais
Identificador relatórios de incidentes
Cód. ProcedimentoFuncionários presentes
Resultados do procedimentoInformações do ambiente
Eventos anormais
Identificador relatórios de incidentes
Cód. ProcedimentoFuncionários presentes
Resultados do procedimentoInformações do ambiente
Eventos anormais
Identificador relatórios de incidentes
56
ANEXO 9 - MODELO DE RELATÓRIO DE INCIDENTE DE TESTE
Empresa
Projeto Versão Data
RELATÓRIO DE INCIDENTE DE TESTE
Objetivo: Documentar qualquer evento que ocorra durante o processo de teste que requeira investigação.
Identificador
Sumariza o incidente. Identifica os itens de teste envolvidos e indica sua versão e revisão. Referencia a especificação do procedimento de teste, especificação do caso de teste, e diário de teste.
SUMÁRIO
Entradas
Resultados esperados
Resultados alcançados
Eventos anormais
Anomalias
Data e hora
Passos do procedimento
Ambiente
Tentativas de repetição
Testadores
Observadores
Impacto
57
ANEXO 10 - MODELO DE RELATÓRIO RESUMO DE TESTE
Empresa
Projeto Versão Data
RELATÓRIO RESUMO DE TESTE
Objetivo: Sumarizar os resultados das atividades designadas para o teste e fornecer avaliações baseadas nestes resultados.
Identificador
Sumariza a avaliação dos itens de teste. Identifica os itens testados, indicando sua versão e revisão. Indica o ambiente aonde os testes foram feitos.
SUMÁRIO
ResultadosCasos de teste
Fase Iteração Teste OK Erro Falha Total Data Responsáveis
AprovaçõesEspecifica os nomes e cargos de todas as pessoas que aprovaram o relatório. Fornece espaço para assinaturas e datas.
_______________________________________ _________________Gerente do Teste Data
_______________________________________ _________________Gerente do Desenvolvimento Data
______________________________________ _________________Gerente de Qualidade Data
58
ANEXO 11 – GUIA OPERACIONAL DE TESTE
Resumo do documento descrito por Trayahú Moreira Filho, no seu livro Teste de Software.
ObjetivoFormalizar o acordo entre as partes envolvidas (desenvolvedores, testadores
e usuários).
Itens do documento
a) Objetivos: definir as responsabilidades de cada um dos envolvidos e descrever o plano preliminar de trabalho.b) Líder do projeto de teste: indicar o líder do projeto de teste.c) Data: informar as datas de início é término da atividade.
59