Skip to content

Instantly share code, notes, and snippets.

@Dpbm
Last active September 22, 2022 14:15
Show Gist options
  • Save Dpbm/c6fa85af4b4b03c7a7f097d0e3105aef to your computer and use it in GitHub Desktop.
Save Dpbm/c6fa85af4b4b03c7a7f097d0e3105aef to your computer and use it in GitHub Desktop.
Minhas anotações do mini curso de testes que fiz (apenas conceitos básicos que foram passados)

Erro, defeito e Falha, Definições

  • Erro: ação humana que produz um resultado incorreto (engano)
  • Defeito: manifestação do erro (bug)
  • Falha: evento inesperado proveniente do defeito, do qual representa a diferença entre o que você esperava e o que você vê na aplicação

Princípios do teste

1 - Testes são feitos para mostrar a presença de defeitos, não a ausência deles 2 - Você não consegue testar tudo, você deve elencar o que é mais importante para a sua bateria de testes 3 - Sempre faça testes desde o começo do projeto 4 - Defeitos se agrupam (efeito cascata) 5 - Se você sempre fizer o mesmo teste, um momento o defeito vai passar (paradoxo do pesticida) 6 - O teste depende do seu contexto 7 - Ausência de defeitos é ilusão

Níveis de teste

  • Teste de componente(unidade)

    • Testa coisas pequenas, como funções e classes
    • Pega, geralmente, problemas lógica e problemas de fluxo de dados
    • Quanto mais testes de unidade você fizer, mais rápido você pode encontrar e resolver o problema, deixando mais barata a manutenção
  • Teste de integração

    • Vê se as unidades do software se integram(juntam) da forma como esperado
    • Pega, geralmente, problemas de comunicação entre partes e problemas de fluxo
  • Teste de sistema

    • Vê o comportamento do sistema como um todo
  • Teste de aceite

    • Verifica se o cliente aceita o resultado
    • se para todos os clientes está funcionando bem

Pirâmide de testes (Martin Fowler)

Quanto mais na base da pirâmide de testes, mais fácil, rápido e barato é para corrigir (testes unitários), e quanto mais para cima os testes vão, mais caro e demorado é (testes de aceite e de sistema)

Tipos de teste

  • Funcional: Verifica o comportamento das funções do software
  • Não funcional: Verifica usabilidade, eficiência e performance
  • Caixa branca: Verifica se a estrtura interna está sólida
  • Teste da mudança
    • confirmação: Verifica se o erro foi de fato corrigido
    • regressão: Verifica se alguma parte do software não foi afetada pela correção
  • teste estático: Verifica se o software está se comportando como descrito pela documentação

Testes de caixa preta

  • step 1 Particionamento de equivalência Particiona dados em válidos (que o sistema deve aceitar) e inválidos (que o sistema deve rejeitar)

  • step 2 análise de valor limite vê o tamanho da partição dos dados e pega os limites dessas partições para usar no teste, fazendo com que não seja necessário testar todos os milhares de casos possíveis, apenas os mais críticos

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment