Tarefa: Implementar Teste do Desenvolvedor
Esta tarefa descreve como criar um conjunto de testes para validar que o componente esteja funcionando apropriadamente, antes que mais teste formal seja executado no componente.
Disciplinas: Implementação
Objetivo
  • 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
Relacionamentos
FunçõesExecutor Primário: Executores Adicionais:
EntradasObrigatório:
    Opcional:
      Saídas
        Etapas
        Refinar o Escopo e Identificar os Testes
        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 Adequada
        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
        Finalidade:  Implementar os testes identificados na etapa ou tarefa de definição

        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
        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 de Testes
        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
        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.


        Informações Adicionais