Estratégias de Testes

Existem várias estratégias que podemos adotar para implantar testes de software em projetos. As estratégias de teste servem para nos guiar a um objetivo em comum: eliminar o máximo possível de bugs e desvios de implementação. Basicamente, entregar ao cliente exatamente o que ele requisitou e funcionando.

Para tal podemos adotar alguns tipos de abordagem:

  • Preventiva ou Reativa (em relação ao tempo em que os testes iniciam) e;
  • Analítica ou Heurística (em relação às fontes de informação disponíveis).

Preventiva VS. Reativa

Abordagem Preventiva
Equipe de Testes é envolvida desde o início: planejando as atividades de teste e especificando as atividades de teste são cedo quando possível. Isto pode ocasionar a otimização das atividades de teste e consequente redução de custo, já que os bugs de expecificação e projeto serão encontrados cedo, gerando menos retrabalho. Aplicação de revisão e análise estática antes do desenvolvimento pode contribuir para prevenir defeitos em tempo de execução de testes. Desta forma, pode-se reduzir os custos com execução de testes e retrabalho.

Abordagem Reativa
São atividades nas quais a equipe de testes é envolvida muito tardiamente e a abordagem preventiva não pôde ser escolhida. Nesta situação a análise e projeto do sistema já foi concluído, de tal forma que a equipe de testes precisará ‘explorar’ as funcionalidades a ser entregues. Testes exploratórios são baseados na experiência dos testadores e têm como objetivo executar diversas possibilidades de execução e de avaliação.

Analítica VS. Heurística

Abordagem Analítica

O planejamento dos testes é baseado em dados ou na análise destes dados. O critério de saída (critério que mapeia quando os testes devem parar) é quantificado e sua correlação será modelada. Ex: os testes serão finalizados quando atingirem 90% de cobertura.

A quantidade e a intensidade dos testes serão escolhidos de acordo com múltiplos parâmetros individuais (custo, tempo, cobertura, etc).

Abordagem Heurística

O planejamento de testes é baseado na experiência dos experts em testes (de dentro ou de fora do projeto) e/ou nas regras repassadas pelos papéis-chave do projeto. O motivo é porque os dados não estão disponíveis, a modelagem de dados para testes é muito complicada, ou porque é necessário conhecimento do negócio.

Abordagem Analítica e Heurística na prática

Na prática, a abordagem utilizada é um meio-termo entre os extremos e utiliza diferentes graus de elementos analíticos e estáticos:

Testes “model-based”

Utiliza modelos funcionais abstratos do software sob testes para o projeto de Test Cases para encontrar o “test exit criteria” (critério de encerramento dos testes), e para medir a cobertura dos testes (que ocorre contra o modelo).

Testes estatísticos ou “stochastic (model-based)”

Utiliza modelos estatísticos sobre a distribuição de falhas no objeto sujeito a testes, taxa de defeitos durante o uso do software ou distribuição estatística de casos de uso (bem como perfis operacionais); baseando-se nesta distribuição o esforço de testes é alocado.

Testes baseados em Risco

Utiliza informações do risco do projeto e do produto, e direciona o teste para áreas de maior risco.  Os riscos do projeto são tratados frente à capacidade de entrega do produto. Segundo os padrões I3E para Quality Assurance, gerenciamento de risco comprende:

  • Avaliação do que pode dar errado (avaliação de riscos)
  • Priorização dos riscos identificados
  • Implementação de ações para mitigar ou eliminar estes riscos (Ex. partes críticas do software devem ser testadas mais criteriosamente)
Testes orientados a padrões ou processos

Utiliza regras, recomendações e padrões (como o modelo-V) como cookbock.

Testes orientados a Reuso

Testes em ambientes de reutilização de testes existentes e materiais. O objetivo é configurar os testes mais facilmente para o máximo reuso.

Testes baseados em checklists (ou metódicos)

Utiliza listas de falhas e defeitos desde cedo nos ciclos de teste, listas de defeitos em potencial ou riscos, ou prioriza o critério de qualidade e outros métodos menos formais.

Testes baseados em experiência

Utiliza a experiência do profissional e o feeling dos especialistas envolvidos (para a tecnologia utilizada e o domínio da aplicação)

Anúncios

Um comentário sobre “Estratégias de Testes

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s