…

Boas práticas de gestão de testes

outubro 19, 2022

A disciplina de teste de software passou por significativas mudanças na última década e uma das mais importantes foi a adoção em larga escala de métodos formais de gerenciamento de testes, já que no passado os testes eram executados de forma ad-hoc por profissionais sem as habilidades e sem as ferramentas adequadas. No entanto, agora mais do que nunca, tornou-se indispensável a adoção de boas práticas de gestão de testes para contribuir com o sucesso das iniciativas de testes. Compartilhamos neste post algumas das principais boas práticas que podem ser adotadas pela sua equipe hoje.

Comece a testar tão cedo quanto possível

Sob o ponto de vista do desenvolvimento de software, quanto mais tarde um defeito for encontrado, maior será o custo para a sua correção. Glenford Myers, um dos precursores da área de teste de software, por meio de diversos estudos identificou que os custos para a correção de um defeito chegam a aumentar dez vezes à medida que vazam para as fases finais do ciclo de vida de um processo de desenvolvimento de software. Por exemplo, um defeito que vazou da fase de Especificação dos requisitos para a fase de Arquitetura do sistema, custa dez vezes mais para ser corrigido. No entanto, quando este mesmo defeito vaza da fase de Arquitetura do sistema para a fase de Codificação, o custo para a correção aumenta cem vezes, e assim por diante. Este modelo é comumente chamado de “Regra de 10” de Myers.

 

Planeje o teste em diferentes níveis para uma maior cobertura

Grandes sistemas são constituídos a partir de subsistemas, que são construídos a partir de módulos que, por sua vez, são compostos por procedimentos, métodos e funções. As atividades de testes podem ser divididas em níveis. O nível de teste define a fase do processo de desenvolvimento do software na qual os testes serão realizados. Existem quatro níveis de testes:

  • Teste de unidade: Nesta fase são testadas as menores unidades de software desenvolvidas (por exemplo: métodos de uma classe).
  • Teste de integração: Nesta fase é testada a integração entre os componentes do sistema (por exemplo: classes, módulos, subsistemas, etc).
  • Teste de sistema: Nesta fase o sistema é testado como um todo com o objetivo de encontrar inconformidades entre o que foi implementado e o comportamento descrito nos requisitos.
  • Teste de aceitação: Nesta fase o sistema é testado como um todo com o objetivo de encontrar inconformidades entre o que foi implementado e o comportamento descrito nos requisitos sob o ponto de vista das necessidades do usuário final.

 

Defina um padrão para a especificação de casos de testes

Um caso de teste representa um conjunto de valores de entrada, precondições de execução, resultados esperados e pós-condições de execução desenvolvidas para um determinado objetivo ou condição de teste, tais como para exercitar o caminho de um determinado programa ou verificar o atendimento de um requisito. Casos de teste podem ser documentados de diversas maneiras, passos com resultados esperados, texto livre, ou até mesmo com Gherkin em projetos ágeis usando BDD. O ponto mais importante é garantir que a notação escolhida faça sentido no contexto do produto sendo testado e das metodologias de desenvolvimento adotadas pela equipe.

 

Utilize técnicas durante a especificação dos casos de testes

As técnicas de teste têm o objetivo de auxiliar os analistas de testes a selecionar um subconjunto de casos de testes que garantam a maior cobertura possível. Ou seja, os casos de teste que exercitem a maior quantidade de linhas de código e garantam a maior cobertura possível. Os dois tipos de técnicas mais conhecidos são:

  • Teste Estrutural: Nesta técnica, também conhecida como “Teste de Caixa Branca”, são usados critérios para a geração de casos de teste com o objetivo de identificar defeitos nas estruturas internas do software. Alguns exemplos de técnicas: Teste do caminho básico, Notação de grafo de fluxo, Matrizes de grafos, entre outras.
  • Teste Funcional: Nesta técnica, também conhecida como “Teste de Caixa Preta”, são usados critérios para a geração de casos de teste com o objetivo de avaliar a aderência, ou conformidade do software implementado em relação ao comportamento descrito nos requisitos. Alguns exemplos de técnicas: Particionamento de equivalência, Análise de valor limite, Tabela de decisão, entre outras.

 

Não se esqueça dos ambientes necessários para executar os testes

O gerenciamento dos testes deve sempre abranger o planejamento e a preparação de um ambiente de testes adequado, tanto do ponto de vista da infra-estrutura e software, quanto do ponto de vista dos dados. Testar nos ambientes corretos é essencial para aumentar a probabilidade de um caso de teste revelar um defeito. É importante ressaltar que um ambiente de testes não se limita apenas aos computadores onde os testes serão executados, devemos também levar em consideração a massa de dados, o ambiente físico, o software de apoio, manuais e procedimentos de instalação e configuração, entre outros. 

 

Use uma ferramenta de gerenciamento de testes

O gerenciamento do planejamento, especificação, manutenção e execução de testes requer o uso de uma ferramenta especializada para facilitar a colaboração, prevenir a duplicação de esforços e gerar relatórios confiáveis. O uso de uma ferramenta ajuda na padronização dos processos necessários para planejamento e a gestão do ciclo de vida dos testes, promove a reutilização e rastreabilidade entre os artefatos e amplia a visibilidade do progresso e níveis de qualidade por meio de relatórios e métricas.

 

Time MeloQA

Posts relacionados