Smoke Tests - O que são?

Smoke tests, também conhecidos como "build verification tests" (BVT), são um conjunto básico de testes que têm como objetivo verificar se as funcionalidades principais de um software estão a funcionar corretamente após uma nova compilação ou atualização.

São como uma verificação inicial para garantir que a aplicação está estável o suficiente para uma execução mais profundada, detalhada e exaustiva de testes.

Qual o objetivo deste tipo de testes?

  • Detectar falhas críticas que possam impedir a continuidade dos testes.

  • Verificar a integridade básica da aplicação/software/produto após uma nova compilação de código.


Mas quem é que executa estes testes e quando é que o faz?

Ora bem, embora falemos de testes (e normalmente esse termo é automaticamente associado a um QA) o que é certo é que os Smoke Tests podem ser executados também pelo programadores. Mas como assim? Passo a explicar:

  • Programadores: podem executar smoke tests antes de entregar a build à equipa de QA para garantir que o código básico está a funcionar.

  • Equipa de Testes: normalmente executam smoke tests como uma verificação inicial antes de proceder com testes mais detalhados.

Os Smoke Tests podem então ser também considerados como um happy path.

E quando é que são mesmo executados?

Existem vários momentos possíveis, sendo eles:

  • Após cada nova build do software.

  • Antes de iniciar um ciclo completo de testes de regressão ou testes mais detalhados.

  • Em pipelines de integração contínua (CI) para garantir que a nova alteração não quebrou a build já existente e em execução.


E como já deves ter entendido, existem algumas condições básicas necessárias para que estes testes possam ser executados com sucesso. E quais são elas?

  • Uma build estável: o software deve estar num estado compilável e executável.

  • Ambiente configurado: um ambiente de teste adequado deve estar configurado e a funcionar sem problemas, incluindo os servidores, as bases de dados e outros componentes necessários.

  • Scripts de teste preparados: os scripts ou casos de teste para os smoke tests devem estar prontos e disponíveis para execução, antes da build ser disponibilizada.

  • Acesso a ferramentas de automação: ferramentas de automação (se aplicável) devem estar configuradas e prontas para utilização.


Vamos a exemplos práticos de Smoke Tests, para ser mais fácil entenderes o que são.

Exemplo 1) Login básico

  • Teste: Verificar se o sistema permite que um utilizador faça login com credenciais válidas.

  • Procedimento: Entrar com um nome de utilizador e senha conhecidos (ou seja, já registados na base de dados= e verificar se o login é bem-sucedido.

Exemplo 2) Navegação principal

  • Teste: Verificar se as principais páginas do site ou aplicação/software estão acessíveis.

  • Procedimento: Navegar para a página inicial, páginas de produtos e página de contacto, e garantir que todas carregam corretamente e dentro de um determinado periodo de tempo.

Exemplo 3) Opção de pesquisar

  • Teste: Verificar se a funcionalidade de procura e pesquisa está a funcionar correctamente.

  • Procedimento: Realizar uma pesquisa por um termo conhecido e verificar se resultados relevantes (previamente identificados) são apresentados.

Exemplo 4) Criação de novos registos

  • Teste: Verificar se novos registos podem ser criados.

  • Procedimento: Tentar criar um(a) novo(a) utilizador(a) e verificar se o processo é concluído com sucesso.

Exemplo 5) Processamento de transações

  • Teste: Verificar se uma transação básica (por exemplo, compra ou transferência) pode ser processada.

  • Procedimento: Executar uma compra ou uma transação financeira (de forma simulada!) e garantir que é processada sem erros.


Portanto, os smoke tests são uma parte importante do processo de desenvolvimento e testes de software, ao permitirem uma verificação inicial para garantir que o software/produto/sistema está suficientemente estável para testes mais detalhados (manuais ou automatizados) e ao ajudarem a identificar problemas críticos no início do processo, permitindo economizar tempo e recursos no longo prazo.

 
Anterior
Anterior

Porquê ser QA?

Próximo
Próximo

Quality Control (QC) VS Quality Assurance (QA)?