SlideShare une entreprise Scribd logo
1  sur  60
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......................................................................................15
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...............................................................................19
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...........................29
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..................................................................31
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.........................................................33
4.2.5.4 Acompanhar a execução dos casos de testes....................................33
4.2.5.5 Elaborar relatório final..........................................................................34
4.2.6 Entrega.......................................................................................................35
4.2.6.1 Avaliação e Arquivamento da Documentação.....................................35
4.3 ALINHAMENTO COM O PROCESSO DE DESENVOLVIMENTO..................35
5. DISCUSSÃO DOS RESULTADOS........................................................................38
6. CONCLUSÃO.........................................................................................................40
6.1 SÍNTESE DO PROJETO...................................................................................40
6.2 CONTRIBUIÇÕES.............................................................................................40
6.3 LIMITAÇÕES.....................................................................................................40
6.4 PESQUISAS FUTURAS....................................................................................41
6
7. REFERÊNCIAS ......................................................................................................42
ANEXO 1 – DOCUMENTOS DE TESTE SEGUNDO A NORMA IEEE STD 829-1998
.....................................................................................................................................43
ANEXO 2 - CARACTERÍSTICAS E SUBCARACTERÍSTICAS SEGUNDO A
ISO/IEC 9126-1...........................................................................................................46
ANEXO 3 – MODELO DE PLANO DE TESTE..........................................................48
ANEXO 4 - MODELO DE PROJETO DE TESTE.......................................................52
ANEXO 5 - MODELO DE CASOS DE TESTE...........................................................53
ANEXO 6 – MODELO DE PROCEDIMENTOS DE TESTE.......................................54
ANEXO 7 - MODELO DE ENCAMINHAMENTO DE ITEM DE TESTE.....................55
ANEXO 8 - MODELO DE DIÁRIO DE TESTE...........................................................56
ANEXO 9 - MODELO DE RELATÓRIO DE INCIDENTE DE TESTE........................58
ANEXO 10 - MODELO DE RELATÓRIO RESUMO DE TESTE...............................59
ANEXO 11 – GUIA OPERACIONAL DE TESTE.......................................................60
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
10
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
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.
11
1 - Procedimentos iniciais
Subetapa Produto
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
Solucionar ocorrências de testes Relatório de defeitos encontrados com
status resolvido ou a avaliar
Acompanhar a execução dos Análise do andamento dos Casos de
12
casos de testes 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:
• 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.
13
• 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).
• 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).
14
• 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
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
15
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.
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
16
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 pesos
Gravidade 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.
18
2.6.1.4 Teste de Aceitação
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
Manutenibilidad
e
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.
20
 Testes de Alterações: visam rastrear alterações de programas durante o
processo de teste.
 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.
21
Alguns exemplos destes tipos de teste são:
• Teste baseado em casos de uso
• Valores limites
• 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
24
• Especificação dos casos de teste
• 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
25
• Guia Operacional de teste (termo utilizado por Trayahú Moreira Filho, descrito
no anexo 11)
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:
26
Testes Unitários, Integração, Testes de Sistema, Testes de Aceitação.
• Caracterizar as medições para calcular os indicadores de qualidade e
desempenho.
• 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
27
• 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.
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.
28
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
• 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
29
• 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.
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.
30
• 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
• 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
31
• 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
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.
32
• 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.
• 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
33
• 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
• 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.
34
• 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.
• 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
35
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.
36
Figura 3 – Processo de desenvolvimento e processo de teste
37
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.
38
39
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.
40
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.
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.
41
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
Electrotechnical 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.
42
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
43
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
44
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
45
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
Manutenibilidad
e
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
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
46
de portabilidade
Capacidade para
substituir
Substituir outro software
47
ANEXO 3 – MODELO DE PLANO DE TESTE
Empresa
Projeto Versão Data
PLANO DE TESTE
Objetivo: 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ção
Sumariza 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 teste
Item 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ências
Documento 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
Funcionalidade
Evidenciar que o conjunto de funções atendem à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
Eficiência
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.
48
Estágios do teste
Característica Descrição Sim Não
Teste Unitário
Validar individualmente cada um dos componentes utilizados na
implementação das funcionalidades do sistema. São realizados ao
longo do fluxo de implementação.
Teste de Integração
Validar a integração entre componentes e pacotes desenvolvidos
para implementação das funcionalidades do sistema. São
realizados ao longo do fluxo de implementação após os testes
unitários e integração dos componentes.
Teste de Sistema
Validar se todos os elementos do sistema foram adequadamente
integrados e estão de acordo com os requisitos especificados.
São realizados pela equipe de desenvolvimento, no fluxo de
testes, conforme definido no Plano.
Teste de Aceitação
Validar se o sistema está de acordo com os requisitos
especificados. O teste de aceitação deverá ser realizado pelo
cliente em ambiente de homologação e seu sucesso indica que o
sistema está pronto para ser posto em produção.
Especifica os critérios para determinar quando um teste passou ou falhou
Crité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:
Produtos
Característica Sim Não
Plano 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
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 cronograma
Código Descrição da tarefa Dependências Observações Responsável Data
49
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 ambiente
Item Descrição
Hardware
Software
Segurança
Ferramentas
Responsabilidades
Identifica 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
Gerenciar
Projetar
Preparar
Executar
Verificar
Resolver
Desenvolvedor
Testador
Operador
Cliente
Suporte
Gerência
Admin. BD
Qualidade
Necessidades de contratação e treinamento
Especifica contratações de pessoal necessárias e as habilidades. Identifica necessidades de treinamento para fornecer as
habilidades necessárias.
Contratação
Grupo Função Habilidades necessárias Quantidade
Treinamentos
Grupo Treinamento Habilidades necessárias Quantidade
50
Riscos e contingências
Identifica os riscos associados a plano de teste. Especifica os planos de contingência para cada possível atraso do
cronograma.
Riscos e contingências
Risco Gravidade Contingência
Aprovações
Especifica 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
51
ANEXO 4 - MODELO DE PROJETO DE TESTE
Empresa
Projeto Versão Data
PROJETO DE TESTE
Objetivo: 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 teste
Item Versão Descrição
Metodologia
Cód. item Fase Tipo Estágio Abordagem Técnica
Item 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
52
ANEXO 5 - MODELO DE CASOS DE TESTE
Empresa
Projeto Versão Data
CASO DE TESTE
Objetivo: 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 teste
Cód. Item Nome Requisitos associados
Có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 teste
Pré-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
53
ANEXO 6 – MODELO DE PROCEDIMENTOS DE TESTE
Empresa
Projeto Versão Data
PROCEDIMENTOS DE TESTE
Objetivo: 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
ambiente
Ferramentas de
apoio
Dados
necessários
Tipo de teste a ser realizado
Passos Descrição dos passos para execução do procedimento.
Passo 1
Passo 2
Passo 3
Informações
adicionais
Registro 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.
54
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 entregues
Item Versão Descrição Localização Status
Observações
Aprovações
Especifica 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
55
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.
Testes
Cód. Proc. Versão Descrição Responsável OK Data
56
Cód. Procedimento
Funcionários presentes
Resultados do
procedimento
Informações do ambiente
Eventos anormais
Identificador relatórios de
incidentes
Cód. Procedimento
Funcionários presentes
Resultados do
procedimento
Informações do ambiente
Eventos anormais
Identificador relatórios de
incidentes
Cód. Procedimento
Funcionários presentes
Resultados do
procedimento
Informações do ambiente
Eventos anormais
Identificador relatórios de
incidentes
Cód. Procedimento
Funcionários presentes
Resultados do
procedimento
Informações do ambiente
Eventos anormais
Identificador relatórios de
incidentes
Cód. Procedimento
Funcionários presentes
Resultados do
procedimento
Informações do ambiente
Eventos anormais
Identificador relatórios de
incidentes
57
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
58
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
Resultados
Casos de teste
Fase Iteração Teste OK Erro Falha Total Data Responsáveis
Aprovações
Especifica 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
59
ANEXO 11 – GUIA OPERACIONAL DE TESTE
Resumo do documento descrito por Trayahú Moreira Filho, no seu livro Teste
de Software.
Objetivo
Formalizar 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.
60

Contenu connexe

Tendances

Banco de questões qualidade de software
Banco de questões qualidade de softwareBanco de questões qualidade de software
Banco de questões qualidade de softwareBruno Nascimento
 
Qualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normasQualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normasAlex Camargo
 
Monografia Qualidade de Software
Monografia Qualidade de SoftwareMonografia Qualidade de Software
Monografia Qualidade de SoftwareOscarlino Silva
 
Tecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De SoftwareTecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De Softwaremarthahuback
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de softwareRondinelli Mesquita
 
Mock objects - Teste de código com dependências
Mock objects - Teste de código com dependênciasMock objects - Teste de código com dependências
Mock objects - Teste de código com dependênciasDenis L Presciliano
 
[MoT SP #1] PRISMA para Testes Baseados em Risco
[MoT SP #1] PRISMA para Testes Baseados em Risco[MoT SP #1] PRISMA para Testes Baseados em Risco
[MoT SP #1] PRISMA para Testes Baseados em RiscoJúlio de Lima
 
Testes de Software - Fundamentos
Testes de Software - FundamentosTestes de Software - Fundamentos
Testes de Software - FundamentosLucas Amaral
 
Planejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilPlanejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilAriane Izac
 
X-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de SoftwareX-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de SoftwareAlexandreBartie
 
Metodologias Ágeis para o Desenvolvimento de Software
Metodologias Ágeis para o Desenvolvimento de SoftwareMetodologias Ágeis para o Desenvolvimento de Software
Metodologias Ágeis para o Desenvolvimento de SoftwareAdolfo Neto
 

Tendances (20)

Banco de questões qualidade de software
Banco de questões qualidade de softwareBanco de questões qualidade de software
Banco de questões qualidade de software
 
Qualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normasQualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normas
 
Monografia Qualidade de Software
Monografia Qualidade de SoftwareMonografia Qualidade de Software
Monografia Qualidade de Software
 
Tecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De SoftwareTecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De Software
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
 
Teste de Aceitação: problemas, desafios e abordagens
Teste de Aceitação: problemas, desafios e abordagensTeste de Aceitação: problemas, desafios e abordagens
Teste de Aceitação: problemas, desafios e abordagens
 
Mock objects - Teste de código com dependências
Mock objects - Teste de código com dependênciasMock objects - Teste de código com dependências
Mock objects - Teste de código com dependências
 
Les 7 principes généraux des tests
Les 7 principes généraux des testsLes 7 principes généraux des tests
Les 7 principes généraux des tests
 
Test link
Test linkTest link
Test link
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
[MoT SP #1] PRISMA para Testes Baseados em Risco
[MoT SP #1] PRISMA para Testes Baseados em Risco[MoT SP #1] PRISMA para Testes Baseados em Risco
[MoT SP #1] PRISMA para Testes Baseados em Risco
 
Padrões de Projeto (GoF)
Padrões de Projeto (GoF)Padrões de Projeto (GoF)
Padrões de Projeto (GoF)
 
Testes de Software - Fundamentos
Testes de Software - FundamentosTestes de Software - Fundamentos
Testes de Software - Fundamentos
 
Aula 7 - Modelagem de Software
Aula 7 - Modelagem de SoftwareAula 7 - Modelagem de Software
Aula 7 - Modelagem de Software
 
Planejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilPlanejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágil
 
X-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de SoftwareX-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de Software
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
 
Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
 
Metodologias Ágeis para o Desenvolvimento de Software
Metodologias Ágeis para o Desenvolvimento de SoftwareMetodologias Ágeis para o Desenvolvimento de Software
Metodologias Ágeis para o Desenvolvimento de Software
 

En vedette

Pré teste
Pré testePré teste
Pré testeisa
 
Estratégias e Técnicas de Testes - Parte 2
Estratégias e Técnicas de Testes - Parte 2Estratégias e Técnicas de Testes - Parte 2
Estratégias e Técnicas de Testes - Parte 2Lorena Caldas
 
4 modelo de relatorio de processos.
4 modelo de relatorio de processos.4 modelo de relatorio de processos.
4 modelo de relatorio de processos.edilsoncampos
 
Reflexoes Sobre O Processo De Avaliacao Monografia
Reflexoes Sobre O Processo De Avaliacao MonografiaReflexoes Sobre O Processo De Avaliacao Monografia
Reflexoes Sobre O Processo De Avaliacao Monografiaguestb8565
 
Segurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultadosSegurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultadosAlex Camargo
 
Escolas de Testes de Software
Escolas de Testes de SoftwareEscolas de Testes de Software
Escolas de Testes de SoftwareAlan Carlos
 
Workshop - Testes de Segurança
Workshop - Testes de SegurançaWorkshop - Testes de Segurança
Workshop - Testes de SegurançaAlan Carlos
 
Adotando checklists no teste de software
Adotando checklists no teste de softwareAdotando checklists no teste de software
Adotando checklists no teste de softwaremauriciootaviano10
 
Estimativas de Software - Fundamentos, Técnicas e Modelos... e o principal, i...
Estimativas de Software - Fundamentos, Técnicas e Modelos... e o principal, i...Estimativas de Software - Fundamentos, Técnicas e Modelos... e o principal, i...
Estimativas de Software - Fundamentos, Técnicas e Modelos... e o principal, i...Fatto Consultoria e Sistemas
 
TCC 1 - Um método para o desenvolvimento de software baseado em microserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviçosTCC 1 - Um método para o desenvolvimento de software baseado em microserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviçosThiago Pereira
 
SBTM Testes Exploratórios Guiados à Sessão - LinguÁgil
SBTM Testes Exploratórios Guiados à Sessão - LinguÁgilSBTM Testes Exploratórios Guiados à Sessão - LinguÁgil
SBTM Testes Exploratórios Guiados à Sessão - LinguÁgilLorena Caldas
 
Software livre e matemática - slideshow - v. 1
Software livre e matemática - slideshow - v. 1Software livre e matemática - slideshow - v. 1
Software livre e matemática - slideshow - v. 1Ricardo Pinheiro
 
Monitoramento de Redes TCP/IP - Monografia
Monitoramento de Redes TCP/IP - MonografiaMonitoramento de Redes TCP/IP - Monografia
Monitoramento de Redes TCP/IP - MonografiaPietro Scherer
 
TCC Virgilio Rocha Ximenes
TCC Virgilio Rocha XimenesTCC Virgilio Rocha Ximenes
TCC Virgilio Rocha XimenesVirgilio Ximenes
 
Estratégias e Técnicas de Testes - Parte1
Estratégias e Técnicas de Testes - Parte1Estratégias e Técnicas de Testes - Parte1
Estratégias e Técnicas de Testes - Parte1Lorena Caldas
 
46468277 procedimento-de-tubulacao
46468277 procedimento-de-tubulacao46468277 procedimento-de-tubulacao
46468277 procedimento-de-tubulacaoalexromfx
 
Tópicos para a realização de um trabalho escrito
Tópicos para a realização de um trabalho escritoTópicos para a realização de um trabalho escrito
Tópicos para a realização de um trabalho escritoAdriana Sousa
 
Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville minastestingconference
 

En vedette (20)

Pré teste
Pré testePré teste
Pré teste
 
Estratégias e Técnicas de Testes - Parte 2
Estratégias e Técnicas de Testes - Parte 2Estratégias e Técnicas de Testes - Parte 2
Estratégias e Técnicas de Testes - Parte 2
 
4 modelo de relatorio de processos.
4 modelo de relatorio de processos.4 modelo de relatorio de processos.
4 modelo de relatorio de processos.
 
Reflexoes Sobre O Processo De Avaliacao Monografia
Reflexoes Sobre O Processo De Avaliacao MonografiaReflexoes Sobre O Processo De Avaliacao Monografia
Reflexoes Sobre O Processo De Avaliacao Monografia
 
Segurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultadosSegurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultados
 
Escolas de Testes de Software
Escolas de Testes de SoftwareEscolas de Testes de Software
Escolas de Testes de Software
 
Workshop - Testes de Segurança
Workshop - Testes de SegurançaWorkshop - Testes de Segurança
Workshop - Testes de Segurança
 
Plano de teste
Plano de testePlano de teste
Plano de teste
 
Adotando checklists no teste de software
Adotando checklists no teste de softwareAdotando checklists no teste de software
Adotando checklists no teste de software
 
Estimativas de Software - Fundamentos, Técnicas e Modelos... e o principal, i...
Estimativas de Software - Fundamentos, Técnicas e Modelos... e o principal, i...Estimativas de Software - Fundamentos, Técnicas e Modelos... e o principal, i...
Estimativas de Software - Fundamentos, Técnicas e Modelos... e o principal, i...
 
TCC 1 - Um método para o desenvolvimento de software baseado em microserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviçosTCC 1 - Um método para o desenvolvimento de software baseado em microserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviços
 
SBTM Testes Exploratórios Guiados à Sessão - LinguÁgil
SBTM Testes Exploratórios Guiados à Sessão - LinguÁgilSBTM Testes Exploratórios Guiados à Sessão - LinguÁgil
SBTM Testes Exploratórios Guiados à Sessão - LinguÁgil
 
Software livre e matemática - slideshow - v. 1
Software livre e matemática - slideshow - v. 1Software livre e matemática - slideshow - v. 1
Software livre e matemática - slideshow - v. 1
 
Monitoramento de Redes TCP/IP - Monografia
Monitoramento de Redes TCP/IP - MonografiaMonitoramento de Redes TCP/IP - Monografia
Monitoramento de Redes TCP/IP - Monografia
 
TCC Virgilio Rocha Ximenes
TCC Virgilio Rocha XimenesTCC Virgilio Rocha Ximenes
TCC Virgilio Rocha Ximenes
 
Teste
TesteTeste
Teste
 
Estratégias e Técnicas de Testes - Parte1
Estratégias e Técnicas de Testes - Parte1Estratégias e Técnicas de Testes - Parte1
Estratégias e Técnicas de Testes - Parte1
 
46468277 procedimento-de-tubulacao
46468277 procedimento-de-tubulacao46468277 procedimento-de-tubulacao
46468277 procedimento-de-tubulacao
 
Tópicos para a realização de um trabalho escrito
Tópicos para a realização de um trabalho escritoTópicos para a realização de um trabalho escrito
Tópicos para a realização de um trabalho escrito
 
Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville
 

Similaire à Processo de teste de software e suas fases

Um estudo de caso para a avaliação do Scrum sob a Óptica do MPS.BR Nível G
Um estudo de caso para a avaliação do Scrum sob a Óptica do MPS.BR Nível GUm estudo de caso para a avaliação do Scrum sob a Óptica do MPS.BR Nível G
Um estudo de caso para a avaliação do Scrum sob a Óptica do MPS.BR Nível GMarcos Vinícius Godinho
 
K19 k31-csharp-e-orientacao-a-objetos
K19 k31-csharp-e-orientacao-a-objetosK19 k31-csharp-e-orientacao-a-objetos
K19 k31-csharp-e-orientacao-a-objetosTrioBlack Trioblack
 
Csharp e orientacao a objetos
Csharp e orientacao a objetosCsharp e orientacao a objetos
Csharp e orientacao a objetosLeonardo Silva
 
K19 k11-orientacao-a-objetos-em-java
K19 k11-orientacao-a-objetos-em-javaK19 k11-orientacao-a-objetos-em-java
K19 k11-orientacao-a-objetos-em-javaOnilson Oliveira
 
K19 k11-orientacao-a-objetos-em-java
K19 k11-orientacao-a-objetos-em-javaK19 k11-orientacao-a-objetos-em-java
K19 k11-orientacao-a-objetos-em-javavicnetepc
 
K19 k23-integracao-de-sistemas-com-webservices-jms-e-ejb
K19 k23-integracao-de-sistemas-com-webservices-jms-e-ejbK19 k23-integracao-de-sistemas-com-webservices-jms-e-ejb
K19 k23-integracao-de-sistemas-com-webservices-jms-e-ejbVinicius Fonseca
 
Planejamento em desenvolvimento_de_sistemas
Planejamento em desenvolvimento_de_sistemasPlanejamento em desenvolvimento_de_sistemas
Planejamento em desenvolvimento_de_sistemasTiago
 
Caelum csharp-dotnet-fn13
Caelum csharp-dotnet-fn13Caelum csharp-dotnet-fn13
Caelum csharp-dotnet-fn13Moisés Moura
 
K19 k32-desenvolvimento-web-com-aspnet-mvc
K19 k32-desenvolvimento-web-com-aspnet-mvcK19 k32-desenvolvimento-web-com-aspnet-mvc
K19 k32-desenvolvimento-web-com-aspnet-mvcTrioBlack Trioblack
 
Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22Moisés Moura
 
As esferas plásticas bubbledeck para construção civil
As esferas plásticas bubbledeck para construção civilAs esferas plásticas bubbledeck para construção civil
As esferas plásticas bubbledeck para construção civilGuilherme Camargos
 
Pmbok3rd portuguese
Pmbok3rd portuguesePmbok3rd portuguese
Pmbok3rd portugueseStanlay Cruz
 
Caelum java-web-vraptor-hibernate-ajax-fj28
Caelum java-web-vraptor-hibernate-ajax-fj28Caelum java-web-vraptor-hibernate-ajax-fj28
Caelum java-web-vraptor-hibernate-ajax-fj28Valdinho Pereira
 
Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22Valdinho Pereira
 

Similaire à Processo de teste de software e suas fases (20)

Um estudo de caso para a avaliação do Scrum sob a Óptica do MPS.BR Nível G
Um estudo de caso para a avaliação do Scrum sob a Óptica do MPS.BR Nível GUm estudo de caso para a avaliação do Scrum sob a Óptica do MPS.BR Nível G
Um estudo de caso para a avaliação do Scrum sob a Óptica do MPS.BR Nível G
 
K19 k31-csharp-e-orientacao-a-objetos
K19 k31-csharp-e-orientacao-a-objetosK19 k31-csharp-e-orientacao-a-objetos
K19 k31-csharp-e-orientacao-a-objetos
 
Csharp e orientacao a objetos
Csharp e orientacao a objetosCsharp e orientacao a objetos
Csharp e orientacao a objetos
 
design patterns java
design patterns javadesign patterns java
design patterns java
 
K19 k11-orientacao-a-objetos-em-java
K19 k11-orientacao-a-objetos-em-javaK19 k11-orientacao-a-objetos-em-java
K19 k11-orientacao-a-objetos-em-java
 
K19 k11-orientacao-a-objetos-em-java
K19 k11-orientacao-a-objetos-em-javaK19 k11-orientacao-a-objetos-em-java
K19 k11-orientacao-a-objetos-em-java
 
K19 k23-integracao-de-sistemas-com-webservices-jms-e-ejb
K19 k23-integracao-de-sistemas-com-webservices-jms-e-ejbK19 k23-integracao-de-sistemas-com-webservices-jms-e-ejb
K19 k23-integracao-de-sistemas-com-webservices-jms-e-ejb
 
K19 sql
K19 sqlK19 sql
K19 sql
 
Planejamento em desenvolvimento_de_sistemas
Planejamento em desenvolvimento_de_sistemasPlanejamento em desenvolvimento_de_sistemas
Planejamento em desenvolvimento_de_sistemas
 
Caelum csharp-dotnet-fn13
Caelum csharp-dotnet-fn13Caelum csharp-dotnet-fn13
Caelum csharp-dotnet-fn13
 
K19 k32-desenvolvimento-web-com-aspnet-mvc
K19 k32-desenvolvimento-web-com-aspnet-mvcK19 k32-desenvolvimento-web-com-aspnet-mvc
K19 k32-desenvolvimento-web-com-aspnet-mvc
 
Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22
 
As esferas plásticas bubbledeck para construção civil
As esferas plásticas bubbledeck para construção civilAs esferas plásticas bubbledeck para construção civil
As esferas plásticas bubbledeck para construção civil
 
Pmbok3rd portugueseprint
Pmbok3rd portugueseprintPmbok3rd portugueseprint
Pmbok3rd portugueseprint
 
Pmbok3rd portuguese
Pmbok3rd portuguesePmbok3rd portuguese
Pmbok3rd portuguese
 
Caelum java-web-vraptor-hibernate-ajax-fj28
Caelum java-web-vraptor-hibernate-ajax-fj28Caelum java-web-vraptor-hibernate-ajax-fj28
Caelum java-web-vraptor-hibernate-ajax-fj28
 
Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22
 
K19 k12-desenvolvimento-web-com-jsf2-e-jpa2
K19 k12-desenvolvimento-web-com-jsf2-e-jpa2K19 k12-desenvolvimento-web-com-jsf2-e-jpa2
K19 k12-desenvolvimento-web-com-jsf2-e-jpa2
 
Guia final
Guia finalGuia final
Guia final
 
Gerenciamento escopo 10
Gerenciamento escopo 10Gerenciamento escopo 10
Gerenciamento escopo 10
 

Processo de teste de software e suas fases

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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......................................................................................15 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...............................................................................19 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
  • 6. 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...........................29 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..................................................................31 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.........................................................33 4.2.5.4 Acompanhar a execução dos casos de testes....................................33 4.2.5.5 Elaborar relatório final..........................................................................34 4.2.6 Entrega.......................................................................................................35 4.2.6.1 Avaliação e Arquivamento da Documentação.....................................35 4.3 ALINHAMENTO COM O PROCESSO DE DESENVOLVIMENTO..................35 5. DISCUSSÃO DOS RESULTADOS........................................................................38 6. CONCLUSÃO.........................................................................................................40 6.1 SÍNTESE DO PROJETO...................................................................................40 6.2 CONTRIBUIÇÕES.............................................................................................40 6.3 LIMITAÇÕES.....................................................................................................40 6.4 PESQUISAS FUTURAS....................................................................................41 6
  • 7. 7. REFERÊNCIAS ......................................................................................................42 ANEXO 1 – DOCUMENTOS DE TESTE SEGUNDO A NORMA IEEE STD 829-1998 .....................................................................................................................................43 ANEXO 2 - CARACTERÍSTICAS E SUBCARACTERÍSTICAS SEGUNDO A ISO/IEC 9126-1...........................................................................................................46 ANEXO 3 – MODELO DE PLANO DE TESTE..........................................................48 ANEXO 4 - MODELO DE PROJETO DE TESTE.......................................................52 ANEXO 5 - MODELO DE CASOS DE TESTE...........................................................53 ANEXO 6 – MODELO DE PROCEDIMENTOS DE TESTE.......................................54 ANEXO 7 - MODELO DE ENCAMINHAMENTO DE ITEM DE TESTE.....................55 ANEXO 8 - MODELO DE DIÁRIO DE TESTE...........................................................56 ANEXO 9 - MODELO DE RELATÓRIO DE INCIDENTE DE TESTE........................58 ANEXO 10 - MODELO DE RELATÓRIO RESUMO DE TESTE...............................59 ANEXO 11 – GUIA OPERACIONAL DE TESTE.......................................................60 7
  • 8. 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
  • 9. 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
  • 10. 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 10
  • 11. 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 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. 11
  • 12. 1 - Procedimentos iniciais Subetapa Produto 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 Solucionar ocorrências de testes Relatório de defeitos encontrados com status resolvido ou a avaliar Acompanhar a execução dos Análise do andamento dos Casos de 12
  • 13. casos de testes 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: • 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. 13
  • 14. • 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). • 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). 14
  • 15. • 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 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 15
  • 16. 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. 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 16
  • 17. 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 pesos Gravidade 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
  • 18. 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. 18
  • 19. 2.6.1.4 Teste de Aceitação 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 Manutenibilidad e 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
  • 20. 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. 20
  • 21.  Testes de Alterações: visam rastrear alterações de programas durante o processo de teste.  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. 21
  • 22. Alguns exemplos destes tipos de teste são: • Teste baseado em casos de uso • Valores limites • 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
  • 23. 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
  • 24. 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 24
  • 25. • Especificação dos casos de teste • 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 25
  • 26. • Guia Operacional de teste (termo utilizado por Trayahú Moreira Filho, descrito no anexo 11) 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: 26
  • 27. Testes Unitários, Integração, Testes de Sistema, Testes de Aceitação. • Caracterizar as medições para calcular os indicadores de qualidade e desempenho. • 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 27
  • 28. • 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. 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. 28
  • 29. 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 • 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 29
  • 30. • 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. 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. 30
  • 31. • 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 • 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 31
  • 32. • 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 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. 32
  • 33. • 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. • 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 33
  • 34. • 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 • 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. 34
  • 35. • 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. • 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 35
  • 36. 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. 36
  • 37. Figura 3 – Processo de desenvolvimento e processo de teste 37
  • 38. 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. 38
  • 39. 39
  • 40. 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. 40
  • 41. 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. 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. 41
  • 42. 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 Electrotechnical 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. 42
  • 43. 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 43
  • 44. 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 44
  • 45. 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 45
  • 46. 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 Manutenibilidad e 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 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 46
  • 48. ANEXO 3 – MODELO DE PLANO DE TESTE Empresa Projeto Versão Data PLANO DE TESTE Objetivo: 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ção Sumariza 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 teste Item 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ências Documento 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 Funcionalidade Evidenciar que o conjunto de funções atendem à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 Eficiência 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. 48
  • 49. Estágios do teste Característica Descrição Sim Não Teste Unitário Validar individualmente cada um dos componentes utilizados na implementação das funcionalidades do sistema. São realizados ao longo do fluxo de implementação. Teste de Integração Validar a integração entre componentes e pacotes desenvolvidos para implementação das funcionalidades do sistema. São realizados ao longo do fluxo de implementação após os testes unitários e integração dos componentes. Teste de Sistema Validar se todos os elementos do sistema foram adequadamente integrados e estão de acordo com os requisitos especificados. São realizados pela equipe de desenvolvimento, no fluxo de testes, conforme definido no Plano. Teste de Aceitação Validar se o sistema está de acordo com os requisitos especificados. O teste de aceitação deverá ser realizado pelo cliente em ambiente de homologação e seu sucesso indica que o sistema está pronto para ser posto em produção. Especifica os critérios para determinar quando um teste passou ou falhou Crité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: Produtos Característica Sim Não Plano 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 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 cronograma Código Descrição da tarefa Dependências Observações Responsável Data 49
  • 50. 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 ambiente Item Descrição Hardware Software Segurança Ferramentas Responsabilidades Identifica 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 Gerenciar Projetar Preparar Executar Verificar Resolver Desenvolvedor Testador Operador Cliente Suporte Gerência Admin. BD Qualidade Necessidades de contratação e treinamento Especifica contratações de pessoal necessárias e as habilidades. Identifica necessidades de treinamento para fornecer as habilidades necessárias. Contratação Grupo Função Habilidades necessárias Quantidade Treinamentos Grupo Treinamento Habilidades necessárias Quantidade 50
  • 51. Riscos e contingências Identifica os riscos associados a plano de teste. Especifica os planos de contingência para cada possível atraso do cronograma. Riscos e contingências Risco Gravidade Contingência Aprovações Especifica 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 51
  • 52. ANEXO 4 - MODELO DE PROJETO DE TESTE Empresa Projeto Versão Data PROJETO DE TESTE Objetivo: 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 teste Item Versão Descrição Metodologia Cód. item Fase Tipo Estágio Abordagem Técnica Item 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 52
  • 53. ANEXO 5 - MODELO DE CASOS DE TESTE Empresa Projeto Versão Data CASO DE TESTE Objetivo: 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 teste Cód. Item Nome Requisitos associados Có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 teste Pré-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 53
  • 54. ANEXO 6 – MODELO DE PROCEDIMENTOS DE TESTE Empresa Projeto Versão Data PROCEDIMENTOS DE TESTE Objetivo: 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 ambiente Ferramentas de apoio Dados necessários Tipo de teste a ser realizado Passos Descrição dos passos para execução do procedimento. Passo 1 Passo 2 Passo 3 Informações adicionais Registro 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. 54
  • 55. 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 entregues Item Versão Descrição Localização Status Observações Aprovações Especifica 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 55
  • 56. 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. Testes Cód. Proc. Versão Descrição Responsável OK Data 56
  • 57. Cód. Procedimento Funcionários presentes Resultados do procedimento Informações do ambiente Eventos anormais Identificador relatórios de incidentes Cód. Procedimento Funcionários presentes Resultados do procedimento Informações do ambiente Eventos anormais Identificador relatórios de incidentes Cód. Procedimento Funcionários presentes Resultados do procedimento Informações do ambiente Eventos anormais Identificador relatórios de incidentes Cód. Procedimento Funcionários presentes Resultados do procedimento Informações do ambiente Eventos anormais Identificador relatórios de incidentes Cód. Procedimento Funcionários presentes Resultados do procedimento Informações do ambiente Eventos anormais Identificador relatórios de incidentes 57
  • 58. 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 58
  • 59. 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 Resultados Casos de teste Fase Iteração Teste OK Erro Falha Total Data Responsáveis Aprovações Especifica 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 59
  • 60. ANEXO 11 – GUIA OPERACIONAL DE TESTE Resumo do documento descrito por Trayahú Moreira Filho, no seu livro Teste de Software. Objetivo Formalizar 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. 60