Atividade: Implementar
Teste do Desenvolvedor
Finalidade
- Implementar um ou mais testes que permitam a validação dos componentes de
software individuais por meio de execução física
- Desenvolver testes que possam ser executados em conjunto com outros testes,
como parte de uma infra-estrutura de teste maior
|
Função:
Implementador
|
Freqüência: Geralmente, uma vez para cada atividade
correspondente que desenvolve elementos de implementação |
Etapas
|
Artefatos de Entrada:
|
Artefatos Resultantes:
|
Mentores de Ferramentas:
|
Informações Adicionais:
|
Detalhes de Detalhamento do Fluxo de Trabalho::
|
Finalidade: |
Identificar o Componente sob Teste e definir um conjunto de testes que
sejam mais proveitosos na iteração atual |
Em um ambiente formal, os componentes e os testes que precisam ser desenvolvidos são
especificados no artefato Design de Testes, o que torna esta etapa opcional. Há outras
ocasiões nas quais os testes do desenvolvedor são conduzidos por Controles de Mudanças,
correções de erro, decisões de implementação que precisam ser validados e testes do
subsistema com apenas o Modelo de Design como entrada. Para cada caso:
- defina a meta: validação da interface do subsistema/componente, validação da
implementação, reprodução de um defeito
- defina o escopo: subsistema, componente, grupo de componentes
- defina o tipo de teste e detalhes: caixa preta, caixa branca, condições prévias,
condições posteriores, invariáveis, condições de execução e entrada/saída, pontos de
controle/observação, ações de limpeza
- decida qual o tempo de duração do teste; por exemplo, um teste criado
especialmente para corrigir um defeito pode ser descartável, mas um que testará as
interfaces externas terá o mesmo ciclo de vida do componente que está sendo testado
Finalidade: |
Determinar a técnica apropriada para implementar o teste |
Há várias técnicas disponíveis para implementar um teste, mas elas podem ser
consideradas em termos de duas categorias gerais: teste manual e automatizado. A maioria
dos testes de desenvolvedor é implementada com o uso das técnicas de teste
automatizado:
- testes programados, utilizando as mesmas técnicas de programação de software e o
mesmo ambiente do componente que está sendo testado ou ferramentas e linguagens de
programação menos complexas (por exemplo, linguagens de script: tcl, baseada em shell,
etc.)
- testes gravados ou capturados, criados com o uso de ferramentas de automação
de testes, as quais capturam as interações entre o componente que está sendo testado e o
restante do sistema e geram os testes básicos
- testes gerados: alguns aspectos do teste, sejam procedurais ou referentes os dados
do teste, poderiam ser gerados automaticamente com o uso de ferramentas mais complexas de
automação de teste
Embora a abordagem mais comum seja a do "teste programado", em alguns casos, testes
relacionados à GUI, por exemplo, a maneira mais eficaz de conduzir um teste é
manualmente, seguindo a seqüência das instruções capturadas em forma de descrição textual.
Finalidade: |
Implementar os testes identificados na etapa/atividade das definições |
Implemente todos os elementos definidos na primeira etapa. Detalhe e especifique
claramente as condições prévias do ambiente de teste e quais serão as etapas responsáveis
por colocar o componente sob teste no estado em que os testes poderão ser conduzidos. Identifique
as etapas de limpeza a serem seguidas a fim de restaurar o ambiente ao estado original. Dê
atenção especial à implementação dos pontos de controle/observação, visto que tais
aspectos poderão exigir que suporte especial seja implementado no componente que está
sendo testado.
Finalidade: |
Criar e manter dados, armazenados externamente para o teste, os
quais serão utilizados durante a execução |
Em quase todos os casos, a separação dos Dados do Teste do Teste conduz a uma solução
mais sustentável. Se o tempo de duração do teste for muito curto, utilizar o código
permanente dos dados do teste talvez seja mais eficaz, mas se muitos ciclos de execução
do teste forem necessários, utilizando conjuntos de dados diferentes, a maneira mais
simples é armazená-los externamente. Haverá outras desvantagens se os dados do teste forem
separados do teste:
- mais de um teste poderia utilizar o mesmo conjunto de dados
- facilidade para modificar e/ou multiplicar
- poderia ser utilizado para controlar a lógica de ramificação condicional do teste
Finalidade: |
Verificar o funcionamento correto do teste |
Teste o Teste. Verifique as instruções de configuração e limpeza do ambiente. Execute
o Teste, observe seu comportamento e corrija os defeitos. Se o teste tiver duração longa,
peça a uma pessoa com menos conhecimento interno que o execute e verifique se há
informações de suporte suficientes. Reveja-o com outras pessoas da equipe de
desenvolvimento e outras partes interessadas.
Finalidade: |
Permitir a análise de impacto e a geração de relatórios de avaliação
dos itens rastreados |
Dependendo do nível de formalidade, você poderá ou não precisar manter relações de
rastreabilidade. Se for esse o caso, utilize os requisitos de rastreabilidade delineados
no Plano de Teste para atualizar as relações de rastreabilidade conforme necessário.
| |
|