Testes de software Flashcards
O que é teste de software?
O teste de software é o processo de executar um software com dois objetivos principais:
1) demonstrar ao desenvolvedor e ao cliente que o software atende aos requisitos especificados;
2) descobrir falhas ou defeitos no software que apresente comportamento incorreto, não desejável ou em não conformidade com sua especificação.
Quais são as características de um bom teste?
1) Alta probabilidade de encontrar defeitos.
2) Não é redundante: cada teste deve ter uma finalidade diferente (mesmo que seja sutilmente diferente).
3) Deverá ser “o melhor da raça”: os limites de tempo e recursos podem obrigar a escolha de um subconjunto de testes, ele deve ter a maior probabilidade de revelar uma classe inteira de erros.
4) Não deve ser nem muito simples nem muito complexo. Ainda que seja possível combinar testes, essa abordagem pode mascarar erros. O ideal é executar cada um separadamente.
Quais são os princípios fundamentais dos testes?
1) Um teste pode demonstrar a presença de defeitos, mas não pode provar que eles não existem.
2) Testes exaustivos são impossíveis: testar todas as combinações de entradas e pré-condições é inviável, exceto para casos triviais.
3) Os testes devem ser feitos o mais antecipadamente possível. Os defeitos encontrados nas fases iniciais são mais baratos de serem corrigidos do que os encontrados já em fase de produção. Inclusive, existe técnicas de testar antes mesmo da implementação.
4) É preciso identificar áreas mais sensíveis no código para priorizá-las. Seguindo o Princípio de Pareto, 80% dos defeitos são causados por 20% do código.
5) Paradoxo do pesticida: os testes precisam ser revisitados com frequência, já que aplicá-los repetidamente vai tornando-os inúteis.
6) Testes dependem do contexto (web x desktop, rede social x sistema bancário).
7) Ausência de defeitos é uma ilusão. Identificar e corrigir os problemas de um software não garantem que ele está pronto.
O que é testabilidade?
É a facilidade com que um programa de computador pode ser testado.
Quais características levam um software a ser testável?
1) Operabilidade: quanto melhor funciona, mais eficientemente pode ser testado.
2) Observabilidade: o que você vê é o que você testa.
3) Controlabilidade: quanto melhor você pode controlar o software, mais o teste pode ser automatizado e otimizado.
4) Decomponibilidade: controlando o escopo, podemos isolar problemas mais rapidamente e realizar testes mais inteligentes.
5) Simplicidade: quanto menos houver a testar, mais rapidamente podemos testá-lo.
6) Estabilidade: quanto menos modificações, menos interrupções no teste.
7) Compreensibilidade: quanto mais informações temos, de forma mais inteligente vamos testar.
Quais são as etapas do processo de teste?