A realização de testes de software precisos e corretos segue numerosos princípios. O International Software Testing Qualifications Board distingue sete fundamentais, que vamos discutir hoje. Curioso para descobrir? Leia um artigo sobre os principais princípios de teste do ISTQB!
Princípios de teste do ISTQB – índice:
- Os testes revelam defeitos, mas não podem provar sua ausência
- Testes completos são impossíveis
- Testes precoces economizam tempo e dinheiro
- Efeito bola de neve de falhas
- Paradoxo do pesticida
- Depende do contexto
- Anunciar software impecável é um erro
- Resumo
Os testes revelam defeitos, mas não podem provar sua ausência
Os testes aumentam a probabilidade de encontrar erros, o que, por sua vez, facilita as chances de corrigi-los. No entanto, não podem garantir totalmente que o software esteja livre de todos os defeitos, mesmo que a vasta maioria seja detectada e corrigida. Devido à incapacidade de criar software impecável, muitos consideram o processo como negativo por design, já que você nunca obterá um resultado positivo e sempre encontrará alguma “sujeira” nos programas.
Testes completos são impossíveis
A regra prática acima afirma que detectar todas as falhas do software é fútil. No entanto, isso não se aplica a programas simples e curtos. Isso, por sua vez, indica que há uma chance de ver todas as combinações de entradas e pré-condições para testar alguns programas completamente. Ao avaliar software sofisticado, mesmo a melhor IA não consegue executar todas as medições necessárias, quanto mais os testadores manuais. Avaliadores automatizados passarão pelos aplicativos de forma mais eficiente e precisa, mas ainda assim não podem garantir um desempenho impecável. Para isso, você precisa embarcar em tarefas adicionais, como priorização, análise de risco, bem como encontrar e executar outras técnicas de teste.
Testes precoces economizam tempo e dinheiro
Many professionals also call this principle “shifting left.” Quanto mais cedo você detectar defeitos, mais fácil será corrigi-los, portanto, os testes estáticos e dinâmicos devem começar o mais rápido possível. Em resumo:
- Teste estático – avaliando o produto sem executar o código.
- Teste dinâmico – avaliação do código de um módulo ou sistema durante seu desempenho
Detectar defeitos nas primeiras fases de implementação facilita o diagnóstico posterior. Mas quando duas áreas do software interagem, corrigir defeitos se torna problemático devido à incapacidade de identificar qual delas tem o erro. Nesses casos, leva tempo, esforço e mão de obra extras para resolver. No geral, é a resposta rápida a obstáculos que podem evitar que as falhas se multipliquem.
Efeito bola de neve de falhas
A maioria dos erros tende a se agrupar nos módulos mais críticos, então seu exame aprofundado revela e elimina suficientemente a maioria. Esses grupos se tornam o foco principal da análise de risco para mapear e estabelecer a futura conduta das ações. A maioria das falhas aparece após seguir os caminhos que os usuários tomam, mas nesses casos, o conhecimento sozinho não torna os módulos impecáveis.
O princípio de Pareto diz que 80% dos resultados se originam de apenas 20% das causas. Em outras palavras, 80% dos bugs existem em 20% dos módulos. Se você encontrar várias falhas em um módulo, continue investigando, pois elas estarão lá.
Paradoxo do pesticida
Executar os mesmos testes repetidamente pode falhar porque podem ter sido projetados incorretamente desde o início e nunca provarão ser eficazes. Você precisa corrigir e atualizar os testes para aumentar a chance de encontrar novas falhas no software.
Criar um sistema completamente novo de diagnóstico também não resolverá o problema. Seguir as combinações anteriores pode parar o processo de avaliação no mesmo nível. Este princípio é chamado de ‘paradoxo do pesticida’ porque pesticidas que controlam pragas também perdem eficácia após um determinado uso.
Depende do contexto
A forma de executar os testes depende dos assuntos examinados. Assim, testar um programa de contabilidade, um videogame ou um aplicativo de rede social varia substancialmente. Também depende da situação, por exemplo, uma análise focada na praticidade de um aplicativo, como verificar sua atratividade para os usuários, facilidade de uso, camada visual, etc., também difere daquelas avaliações voltadas para atributos funcionais do programa, por exemplo, realizar cálculos corretos.
Anunciar software impecável é um erro
Aplicar vários tipos de ferramentas de diagnóstico não pode garantir aplicativos precisos. Muitos que afirmam e anunciam seus aplicativos como tais estão errados, mas provavelmente é apenas pelos esforços de marketing que fazem essa afirmação. Você pode executar múltiplos testes manuais e automatizados para aumentar a probabilidade de descobrir e corrigir o maior número possível de erros, mas ainda assim, não há garantia de desempenho perfeito. Em alguns casos, os obstáculos dizem respeito ao software em operação, por exemplo, o programa pode não atender a todas as expectativas dos usuários.
Princípios de teste do ISTQB – resumo
É assim que o ISTQB, em um nível básico, apresenta sete princípios de teste do ISTQB que um testador de software deve seguir. Primeiro, eles indicam a inviabilidade de um diagnóstico completo de software, portanto, é crucial, entre outras coisas, modificar os testes, bem como realizar uma busca minuciosa nos módulos-chave. Essas ações aprimoram a busca e a eliminação da maioria dos defeitos, diminuindo a probabilidade de falhas no futuro.
O que é teste de software? Agora você sabe a resposta! Confira nossas outras séries sobre Python e Javascript!
Se você gosta do nosso conteúdo, junte-se à nossa comunidade de abelhas ocupadas no Facebook, Twitter, LinkedIn, Instagram, YouTube, Pinterest.
Robert Whitney
Especialista em JavaScript e instrutor que orienta departamentos de TI. Seu principal objetivo é aumentar a produtividade da equipe, ensinando os outros a cooperar efetivamente enquanto codificam.