Sanity Tests - O que são?
Quando ouvimos falar em Sanity Test, se não soubermos o que realmente é, fazemos uma associação pelo estrangeirismo a uma palavra em português.
Sabes qual é?
Sanidade!
E se formos ver o que esta palavra significa retiramos o seguinte:
1. Qualidade do que é são;
2. Conjunto das condições que permitem a manutenção da saúde. = HIGIENE, SALUBRIDADE ("sanidade", in Dicionário Priberam da Língua Portuguesa [em linha], 2008-2024).
E acredito que, ao saberes o significado desta palavra, rapidamente entendas o real objectivo deste tipo de testes.
Vamos, executando os mesmo, verificar a qualidade do sistema/produto/software.
Numa definição mais teórica, podemos então dizer que os Sanity Tests são um subconjunto de testes de regressão, focados em verificar se uma função ou bug específico que foi corrigido funciona corretamente e não introduziu novos problemas.
Estes testes são normalmente realizados após receber uma nova build, quando há mudanças menores ou correções de bugs, para assegurar e garantir que as funcionalidades principais do sistema continuam a funcionar conforme esperado.
Portanto, em modo resumo, podemos dizer que os principais objectivos destes testes são:
Confirmar que uma pequena parte específica do sistema funciona corretamente após uma modificação ou correção de bug.
Garantir que não foram introduzidos novos defeitos nas áreas verificadas.
Acredito que neste momento devas estar a pensar “Ah, então eu executo Sanity Tests e nem sabia!”. Acredito que sim, que o faças muitas muitas vezes mas sem lhe dares o nome real do tipo de teste que é.
Portanto, quando verificas a sanidade de um sistema, por conta da correção de um bug ou da implantação de novas funcionalidades por meio de novas builds, estás a executar testes de sanidade.
E podes questionar-te neste momento quem é que executa os Sanity Tests, dado que devem ser executados quando existe uma nova entrega de código.
Acredito que sem grande surpresa da tua parte te digo que são os Programadores e a Equipa de QA, mas com focos/objectivos diferentes.
Programadores: podem realizar sanity tests antes de entregar a build à equipa de QA para verificar se as correções funcionam conforme esperado.
Equipas de QA: normalmente executam os sanity tests como uma verificação rápida antes de realizar testes mais detalhados.
Portanto, temos novamente os Sanity Tests executados como um género de Happy Path.
E quais são as condições que temos de garantir como mínimas para poder executar os Sanity Tests?
Build Estável: A build deve estar em um estado compilável e executável, contendo as correções ou mudanças específicas.
Ambiente Configurado: Um ambiente de teste adequado deve estar configurado e a funcionar, incluindo servidores, bases de dados e outros componentes necessários.
Teste Específicos: Casos de teste específicos para as funcionalidades ou bugs corrigidos devem estar definidos e disponíveis para execução.
Vamos a alguns exemplos práticos para ser mais fácil de entender o que são os Sanity Tests?
Exemplo 1) Correção de Bug no Formulário de Login
Teste: Verificar se um bug específico no formulário de login foi corrigido.
Procedimento: Tentar fazer login com as credenciais corretas e incorretas (previamente conhecidas e definidas nas pré-condições do teste) para garantir que o formulário se comporta conforme o esperado, verificando assim a correção do bug e a ausência de novos problemas.
Exemplo 2) Verificação de Nova Funcionalidade de Pesquisa
Teste: Testar se uma nova funcionalidade de pesquisa adicionada ao sistema/software/produto funciona corretamente.
Procedimento: Executar várias buscas com termos diferentes e verificar se os resultados são retornados conforme esperado, confirmando que a nova funcionalidade está operando sem erros.
Exemplo 3) Teste de Atualização de Perfil
Teste: Verificar se a atualização de perfil do(a) utilizador(a) está a funcionar após uma correção.
Procedimento: Editar e salvar mudanças no perfil do(a) utilizador(a) e garantir que as mudanças são corretamente refletidas, sem introduzir novos problemas.
Exemplo 4) Verificação de Bug em Transações
Teste: Confirmar a correção de um bug que estava a afectar a finalização de transações.
Procedimento: Realizar uma série de transações para verificar se o bug foi corrigido e se as transações são concluídas com sucesso.
Exemplo 5) Teste de Integração com API Externa
Teste: Verificar se a integração com uma API externa funciona corretamente após uma atualização.
Procedimento: Realizar chamadas/requests à API e verificar as respostas/responses para garantir que a integração continua a funcionar como esperado após a atualização.
Portanto, os Sanity Tests são uma parte importante no processo de testes de software, porque acabam por se focar na eficaz verificação de uma parte específica do sistema, após uma modificação ou correção.
Estes testes permitem a assegurar que as mudanças não introduziram novos problemas e que o sistema está pronto para testes mais abrangentes.