Saltar para o conteúdo principal da página
Saltar para o conteúdo principal da página

Definição

Do que trata esta área técnica?

Os testes de software são processos de avaliação da qualidade que ocorrem durante todo o ciclo de vida do desenvolvimento e manutenção de um software, para verificar se este cumpre aos requisitos definidos e funciona conforme esperado.

O principal objetivo dos testes de software é identificar problemas ou erros no software antes do lançamento ou da implementação em ambiente de produção, de forma a reduzir os custos e o tempo associados a correções. Os testes permitem validar os requisitos funcionais, as user stories (histórias de utilizador), o desenho dos interfaces, a acessibilidade e a usabilidade, a segurança e a qualidade do código.

Os testes de software são fundamentais para garantir a qualidade, eficiência e eficácia do produto ou serviço. 

Benefícios

Por que é importante?

Os testes de software proporcionam benefícios que impactam o desenvolvimento, a qualidade e o sucesso do software. Destacam-se:  

  • Identificação antecipada de falhas ou defeitos, para permitir a correção durante as fases iniciais do desenvolvimento
  • Melhororia contínua da qualidade do software, o que garante que os requisitos definidos são cumpridos e funcionam conforme esperado
  • Construir um software mais confiável, através do aumento da confiança dos utilizadores finais na utilização do produto ou serviço
  • Economizar tempo e recursos financeiros, uma vez que corrigir erros nas fases iniciais é menos custoso e demorado do que fazê-lo em fases mais avançada
  • Aumentar a satisfação do utilizador, por responder melhor às suas expectativas
  • Avaliar o desempenho do software e identificar oportunidades de otimização, que resultam numa maior eficiência e escalabilidade
  • Identificar e corrigir vulnerabilidades de segurança, através da proteção do software contra ameaças, ataques ou utilizações incorretas
  • Cumprir com os requisitoscontratuais, legais ou regulamentados e verificar a conformidade do software em avaliação com os requisitos ou normas 

Tipos de testes

Que tipos de testes existem?

Existem vários tipos de testes de software, cada um com um objetivo específico, que se divide em dois grandes grupos: testes técnicos e testes funcionais. 

Os testes técnicos são realizados pelos programadores durante a fase de desenvolvimento. Os testes funcionais são realizados pela equipa de validação interna, antes dos testes de aceitação, e podem ser composta por profissionais especializados ou por Analistas, Product Owner, UX Designer e, por vezes, Gestor de Projeto. 

A escolha dos testes a realizar deve considerar o benefício concreto para o projeto e garantir o cumprimento dos critérios de aceitação. Alguns testes podem não ser necessários consoante o serviço ou produto, como os testes de integração, cuja realização cabe à equipa decidir, uma vez que os testes End-to-End (E2E) normalmente cobrem esta verificação.

Legislação e regulamentos

O que é obrigatório cumprir?

Boas práticas

O que é interessante fazer?

Promover testes unitários e integrados

Promover testes unitários e integrados ao longo do sprint para garantir a qualidade de cada entregável.

Criar o plano de testes

Criar o plano de testes que define quais os testes a executar, em que momento, em que ambiente e com que materiais.

Identificar a metodologia de testes e o template utilizado e definir responsáveis pela execução.

Escrever casos de teste

Escrever os cenários positivos (resultado esperado) e os cenários improváveis (falhas com impacto elevado).

Definir o passo a passo, o resultado esperado para cada teste e a ligação às respetivas user stories, de forma a garantir a cobertura adequada.

Executar testes de aceitação

Executar testes de performance, funcionais, de segurança e de carga. O resultado destes testes determinam se uma release pode disponibilizar novas funcionalidades.

Testar frequentemente a usabilidade e acessibilidade

Testar frequentemente, e em várias etapas do projeto, a usabilidade e acessibilidade do serviço com potenciais utilizadores reais, usando técnicas apropriadas. 

Implementar testes automatizados

Implementar testes automatizados com ferramentas adequadas, através de scripts que validam requisitos funcionais e não funcionais.

Os testes automatizados ajudam a garantir que funcionalidades anteriores continuam a funcionar de forma correta.

Reportar erros e melhorias

Reportar erros e melhorias com as seguintes informações:

  • Ambiente
  • Tipo de utilizador
  • Dados inseridos
  • Passos efetuados
  • Erro obtido
  • Evidências (imagens, vídeos ou o texto)
  • Resultado esperado
  • Momento em que ocorreu
  • Casos de teste associados

Recomenda-se usar uma ferramenta como o Jira, que permite organizar e priorizar estes registos.

Fazer um relatório de testes

Criar relatórios que identifiquem erros e melhorias, ao indicar:

  • Testes executados
  • Testes que passaram ou falharam
  • Erros associados
  • Momento da execução
  • Conclusões de cada teste

Os relatórios podem ser funcionais, de usabilidade ou acessibilidade.