Fundamentalmente, para introduzir-se a ideia do Processo de Testes de Software e suas respectivas etapas, é importante entender em primeiro lugar que a realização de um teste se trata de todas as atividades envolvidas antes, durante e após a execução deste, de forma que “colocar a mão na massa” em busca de erros em um produto digital nada mais é do que uma das várias etapas abrangidas por todo um processo.

Esse é um tema que se faz necessário quando o objetivo dos envolvidos no desenvolvimento do produto é agregar qualidade ao software, fugindo do estigma das empresas de executar apenas testes funcionais comuns, em busca da maior satisfação de seus usuários.

Mas então, o que é Teste de Software?

Como dito anteriormente, a execução do teste em si representa uma porcentagem pequena de um todo chamado Teste de Software.

Testar, de acordo com Myers, trata da atividade de analisar um programa na intenção de descobrir erros e defeitos. Já o teste de software, segundo o Syllabus do ISTQB, é um processo que inclui muitas atividades diferentes, e a execução do teste (incluindo a verificação dos resultados) é apenas uma dessas atividades.

O teste é composto por diversas atividades: Planejamento e Controle, Análise e Modelagem, Implementação e Execução, Avaliação dos Critérios de Saída e Relatórios, e por fim as Atividades de Encerramento do Teste. Essas atividades podem acontecer de forma concorrente e não necessariamente numa ordem específica, dado que a definição de qual atividade, quando e como ela vai acontecer depende da estratégia de teste utilizada no projeto.

O Processo de Teste de Software, então, tem como objetivo dar formato às atividades, passos, artefatos, papéis e responsabilidades envolvidas em um teste, de forma a organizar e permitir o controle do ciclo pelos seus envolvidos.

Ilustrativo das etapas envolvidas no Processo de Teste

Vamos a cada uma dessas etapas

Planejamento e Controle

A primeira etapa do processo de teste envolve as atividades que determinam quais serão as abordagens dos testes, visando atingir os propósitos do cliente, tendo em vista todas as restrições impostas pelo contexto do projeto

Planejamento

Nesta etapa procura-se entender, inicialmente:

  • Metas e objetivos do projeto e do cliente;
  • Riscos do projeto;
  • Escopo do trabalho: (o que testar? como testar?).

Os principais objetivos da etapa de planejamento são verificar a missão, definir os objetivos e as atividades de teste a serem realizadas.

É durante essa etapa que se cria o Plano de Teste, um documento que descreve o escopo, abordagem, recursos e cronograma das atividades de teste. Nele, estão documentadas as exceções quanto à abordagem do teste, recursos a serem utilizados, equipe envolvida e as técnicas a serem aplicadas.

Durante do planejamento do teste, é importante ter em mente de maneira clara o propósito dessa etapa, que visa definir:

  • Os objetivos do teste;
  • O escopo;
  • As abordagens (técnicas, cobertura, pessoas, hardware, software, etc.)
  • Os recursos;
  • As políticas de teste;
  • O cronograma:
    • Agendamento das atividades de análise e modelagem;
    • Agendamento das atividades de implementação, execução e avaliação.
  • Os critérios de saída.

Controle

O Controle do Teste é a comparação entre o progresso atual e aquilo que foi definido durante o planejamento. Na etapa de controle, o status e os desvios do plano são reportados. Pode-se entender a etapa de controle como o monitoramento do projeto de testes, pois é onde acompanhamos se este está seguindo na direção para qual ele foi planejado e ações corretivas são executadas, caso necessário, para garantir que os objetivos do teste sejam atingidos.

Durante o Controle do Teste, procura-se realizar:

  • A medição dos resultados;
  • A análise dos resultados;
  • O monitoramento do progresso, cobertura e critérios de saída;
  • A execução de ações corretivas, caso necessário;
  • A tomada de decisões:
    • O que deve ser feito caso um desvio seja detectado?

A etapa de Planejamento e Controle do teste geralmente é responsabilidade do gerente do processo de teste, pois engloba atividades de gestão.

Análise e Modelagem do Teste

É durante a etapa de Análise e Modelagem que as condições do teste são produzidas.

Uma Condição de Teste define “o quê” será testado. Pode ser definida, de acordo com o BSTQB, como um item ou evento de um componente ou sistema que pode ser verificado por meio de um ou mais casos de teste. Ou seja, pode ser uma função, transação, característica, atributo de qualidade ou elemento estrutural. Tem como propósito transformar os objetivos do teste em algo tangível.

Essa etapa do processo de teste tem o propósito de exercitar eficientemente as condições de uso do software, procurando atingir o máximo de cobertura com o mínimo de casos de teste.

Aqui, especificamos as condições de teste (cobertura de itens) para um item de teste (componente ou funcionalidade do software que deve ser testado), detalhando a abordagem do teste e identificando os casos de teste de alto nível associados.

Durante a Análise e Modelagem do teste procura-se realizar:

  • A revisão da base de teste;
  • A identificação das condições de teste;
  • A identificação dos requisitos de dados do teste;
  • A priorização das condições de teste;
  • A avaliação da testabilidade dos requisitos e sistema;
  • A modelagem do setup (ambiente de testes);
  • A identificação de requisitos de infraestrutura;
  • A identificação de ferramentas que serão utilizadas.

Implementação e Execução

Durante a etapa de Implementação e Execução do teste, procura-se realizar a especificação dos procedimentos e/ou scripts de teste através da combinação de casos de teste em ordem particular.

Ou seja: é hora de transformar condições de teste em casos e procedimentos de teste. Casos de teste lógicos devem ser transformados em casos de teste concretos, que serão utilizados posteriormente para a execução.

Principais atividades envolvidas na Implementação do teste:

  • Identificar, desenvolver, finalizar, implementar e priorizar Casos de Teste;
  • Desenvolver e priorizar procedimentos de teste;
  • Criar dados de teste;
  • Preparar equipamento de teste;
  • Automatizar casos de teste;
  • Implementar e verificar o ambiente de testes corretamente;
  • Verificar e atualizar a rastreabilidade bidirecional entre a base de teste e os casos de teste.

Principais atividades envolvidas na execução do teste:

  • Executar procedimentos de teste, suítes de teste e casos de teste, baseados em priorização;
  • Registrar resultados da execução do teste;
  • Comparar os resultados atuais com os resultados esperados;
  • Identificar defeitos (bugs);
  • Reportar defeitos e falhas;
  • Executar novamente casos de teste que falharam;
  • Executar casos de teste automatizados;
  • Realizar testes de regressão.

Dentro desse contexto, é muito importante ter em mente de forma clara as definições e diferenças entre erros, defeitos e falhas, visando a realização de reports e análises mais precisas:

Erros: Envolvem a ação humana e se manifestam a qualquer momento do desenvolvimento do software.

Defeitos: A manifestação de erros da ação humana, aquilo que usualmente chamamos de Bug.

Falhas: Diferenças indesejadas entre aquilo que se observa e o que é esperado.

Avaliação dos Critérios de Saída e Relatórios

A etapa de Avaliação é o momento em que, assim como sugere o nome, se avalia a execução realizada, dados os objetivos definidos nas etapas anteriores do processo. Avaliamos então se serão necessários mais testes, se os critérios de saída devem ser alterados e, por fim, elaboramos um relatório de testes resumido para todos os interessados no projeto, que normalmente se concentram na camada de gestão.

É daí que vem a importância de um relatório pensado em entregar métricas claras tanto para quem tem o viés técnico quanto para quem não conta com esse tipo de conhecimento, mas ainda sim é ponto focal da comunicação.

Tais critérios de saída podem ser definidos através de uma restrição de tempo imposta pelo contexto, número de requisitos cobertos, porcentagem de testes executados, número de defeitos que permanecem no produto, ou ainda se todos os casos de testes foram executados e aprovados, dentre outros.

Tais critérios são acordados com os interessados no projeto e permitem que um processo de teste seja considerado ou não como concluído.

Encerramento

Na última etapa desse processo, realiza-se as Atividades de Encerramento do teste, onde coletamos todos os dados de todas as outras etapas para consolidar a experiência final obtida, o “testware” (documentação gerada pelo processo de teste como planos de teste, condições de teste, casos de teste, base de teste utilizada, etc.), fatos e números consolidados.

Nesta etapa ainda checamos se todos os entregáveis planejados foram realmente entregues, fechamos relatórios e incidentes, documentamos o aceite do sistema, finalizamos e arquivamos o testware, ambientes de teste, infraestrutura de teste para reuso, analisamos as lições aprendidas para determinar as mudanças para futuros projetos, e melhoramos a maturidade dos testes com as informações obtidas.

Autor