A diferença entre os testes Smoke e Sanity é o tópico mais mal compreendido em Teste de Software. Existe uma enorme quantidade de literatura sobre o assunto, mas a maioria deles é confusa. O artigo a seguir tenta resolver a confusão.
As principais diferenças entre o Teste de Fumaça e o Teste de Sanidade podem ser aprendidas com a ajuda do diagrama a seguir -
Teste de fumaça vs teste de sanidade
Para apreciar o diagrama acima, vamos primeiro entender -
O que é uma compilação de software?
Se você estiver desenvolvendo um programa de computador simples que consiste em apenas um arquivo de código-fonte, você só precisa compilar e vincular esse arquivo para produzir um arquivo executável. Esse processo é muito simples.
Normalmente, não é esse o caso. Um projeto de software típico consiste em centenas ou mesmo milhares de arquivos de código-fonte. Criar um programa executável a partir desses arquivos de origem é uma tarefa complicada e demorada.
Você precisa usar um software de "construção" para criar um programa executável e o processo é chamado de "Compilação de software"
Teste de Fumaça
O Smoke Testing é uma técnica de teste de software realizada após a criação do software para verificar se as funcionalidades críticas do software estão funcionando bem. Ele é executado antes que quaisquer testes funcionais ou de regressão detalhados sejam executados. O principal objetivo do teste de fumaça é rejeitar um aplicativo de software com defeitos para que a equipe de QA não perca tempo testando um aplicativo de software danificado.
No Smoke Testing, os casos de teste optaram por cobrir a funcionalidade ou componente mais importante do sistema. O objetivo não é realizar testes exaustivos, mas verificar se as funcionalidades críticas do sistema estão funcionando bem.
Por exemplo, um teste de fumaça típico seria - Verifique se o aplicativo foi iniciado com êxito, verifique se a GUI está respondendo ... etc.
DIFERENÇA CHAVE
- O Smoke Testing tem como objetivo verificar a “estabilidade”, enquanto o Sanity Testing tem como objetivo verificar a “racionalidade”.
- O Smoke Testing é feito por desenvolvedores ou testadores, enquanto o Sanity Testing é feito por testadores.
- O Smoke Testing verifica as funcionalidades críticas do sistema, enquanto o Sanity Testing verifica as novas funcionalidades, como correções de bugs.
- O teste de fumaça é um subconjunto do teste de aceitação, enquanto o teste de Sanidade é um subconjunto do Teste de regressão.
- O teste de fumaça é documentado ou com script, enquanto o teste Sanity não é.
- O teste de fumaça verifica todo o sistema de ponta a ponta, enquanto o teste de sanidade verifica apenas um componente específico.
O que é o teste de sanidade?
O teste de sanidade é um tipo de teste de software executado após o recebimento de uma versão do software, com pequenas alterações no código ou na funcionalidade, para verificar se os bugs foram corrigidos e se nenhum outro problema foi introduzido devido a essas alterações. O objetivo é determinar se a funcionalidade proposta funciona aproximadamente conforme o esperado. Se o teste de sanidade falhar, o build é rejeitado para economizar tempo e custos envolvidos em um teste mais rigoroso.
O objetivo "não" é verificar completamente a nova funcionalidade, mas determinar se o desenvolvedor aplicou alguma racionalidade (sanidade) ao produzir o software. Por exemplo, se sua calculadora científica der o resultado de 2 + 2 = 5! Então, não faz sentido testar as funcionalidades avançadas como sin 30 + cos 50.
Teste de fumaça versus teste de sanidade - Principais diferenças
A seguir está a diferença entre os testes de Sanidade e Fumaça:
Teste de Fumaça | Teste de Sanidade |
---|---|
O teste de fumaça é realizado para verificar se as funcionalidades críticas do programa estão funcionando bem | O teste de sanidade é feito para verificar se a nova funcionalidade / bugs foram corrigidos |
O objetivo deste teste é verificar a "estabilidade" do sistema para prosseguir com testes mais rigorosos | O objetivo do teste é verificar a "racionalidade" do sistema para proceder a testes mais rigorosos |
Este teste é realizado pelos desenvolvedores ou testadores | Os testes de sanidade em testes de software geralmente são realizados por testadores |
O teste de fumaça geralmente é documentado ou com script | O teste de sanidade geralmente não é documentado e não tem script |
O teste de fumaça é um subconjunto do teste de aceitação | O teste de sanidade é um subconjunto do teste de regressão |
O teste de fumaça exercita todo o sistema de ponta a ponta | O teste de sanidade exerce apenas o componente específico de todo o sistema |
O teste de fumaça é como o exame geral de saúde | O Teste de Sanidade é como um exame de saúde especializado |
Pontos a serem observados.
- Os testes Sanity e Smoke são maneiras de evitar perda de tempo e esforço, determinando rapidamente se um aplicativo é muito falho para merecer qualquer teste rigoroso.
- O teste de fumaça também é chamado de teste de aceitação do testador.
- O teste de fumaça executado em uma determinada construção também é conhecido como teste de verificação de construção .
- Uma das melhores práticas da indústria é conduzir um teste diário de construção e teste em projetos de software.
- Os testes de fumaça e sanidade podem ser executados manualmente ou usando uma ferramenta de automação . Quando ferramentas automatizadas são usadas, os testes geralmente são iniciados pelo mesmo processo que gera o próprio build.
- De acordo com as necessidades de teste, você pode ter que executar os testes de sanidade e fumaça na compilação do software. Nesses casos, primeiro você executará os testes de fumaça e, em seguida, os testes de sanidade. Na indústria, casos de teste para Teste de Sanidade são comumente combinados com os de testes de fumaça, para acelerar a execução do teste. Portanto, é comum que os termos sejam frequentemente confundidos e usados indistintamente
Clique aqui se o vídeo não estiver acessível
Leia mais sobre Smoke Testing em engenharia de software