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::   

Refinar o Escopo e Identificar os Testes Para o início da página

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

Selecionar a Técnica de Implementação Apropriada Para o início da página

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.

Implementar o Teste Para o início da página

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.

Estabelecer Conjuntos de Dados Externos Para o início da página

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

Verificar a Implementação do Teste Para o início da página

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.

Manter Relacionamentos de Rastreabilidade Para o início da página

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.


Rational Unified Process   2003.06.15