terça-feira, abril 03, 2007

A disciplina de Teste

O objetivo fundamental é verificar a qualidade do sistema. Esta disciplina ganha intensidade ao longo da fase de Construção e tende a perder esta intensidade apenas no início da fase de Transição. Ou seja, implementação e teste não devem ser atividades serializadas. Equipes de desenvolvimento e teste podem trabalhar de forma paralela. Em geral é isso o que acontece entre as demais disciplinas também, mas está explicitamente descrito neste post para que alguns paradigmas tradicionais, como este que envolve implementação e teste, sejam esquecidos.

Apenas um artefato é produzido nesta disciplina:

  • Modelo de Teste


  • Este modelo define um Plano de Teste, formado por duas fases principais: testes unitários e testes de integração.

    Os teste unitários são fundamentais para garantir que cada um dos componentes integrantes da arquitetura do software esteja se comportando adequandamente. Este tipo de teste consiste na criação de casos de teste.

    Cada caso de teste possui uma responsabilidade bem específica, geralmente a verificação da execução de um método do componente. O caso de teste deve prever a execução de todos os caminhos possíveis a serem percorridos durante a execução. É importante que o caso de teste também preveja variações nos dados recebidos (dados normais, dados limite e dados ruins).

    Vamos supor que um determinado componente da arquitetura do seu sistema seja responsável por cálculos matemáticos complexos. Certa operação deste componente se propõe a calcular o valor fatorial de um número inteiro qualquer. Por se tratar de um cálculo que envolve valores muito altos, a operação possui um tratamento para considerar apenas os valores entre 1 e 100. Neste caso, dados normais são valores como 20, 50, 70. Já os dados limites, compreendem valores como 0, 1, 2, 99, 100, 101. Por fim, os dados ruins seriam números como -10, -1, 110, 200.

    Após validar os componentes, estes devem ser integrados.
    Os testes de integração podem ser orientados por casos de teste. Porém, neste caso, procuramos validar comportamentos mais abstratos, de maior granularidade.


O Engenheiro de Teste é um profissional especializado em metodologias para este fim. No exterior, esta é uma posição de muito prestígio em uma equipe de desenvolvimento, com plano de carreira bem definido e alta remuneração. É o profissional que efetivamente autoriza a publicação de um determinado sistema.

Infelizmente, esta realidade não é percebida em nosso país...

Nenhum comentário:

 
> blogblogs.com.br