Introdução a testes

Introdução a Testes em Java

Maria Milusheva

Senior Software Engineer

O que é teste?

Teste de software:

  • Processo de avaliar o software para verificar se ele atende aos requisitos definidos

Testes podem ser:

  • Manuais – necessários, mas limitados e menos confiáveis
  • Automatizados – executam centenas de testes e checagens em segundos

Usaremos JUnit 5 para testes automatizados

Gráfico de uma pessoa programadora

Introdução a Testes em Java

Casos de borda

"If it's not tested, it's broken."$^1$

Caso de borda – entrada ou condição no limite do que é típico ou esperado

Exemplos: variáveis na capacidade máxima, variáveis nulas ou vazias, valores negativos

Gráfico simbolizando um teste

1 Citação originalmente de Bruce Eckel
Introdução a Testes em Java

Exemplo de comportamento inesperado em um caso de borda

Considere o código a seguir:

public int addTwoNumbers(int a, int b) {
    return a + b;
}

⚠ Considere as entradas 2147483647 (valor máximo de int) e 1

➡ A saída é -2147483648 (valor mínimo de int)

Introdução a Testes em Java

Relembrando: tamanhos de variáveis – primitivos têm tamanho limitado

Tabela resumindo tipos primitivos - byte, short, int, long, float, double, char e boolean

Introdução a Testes em Java

Exemplo: lançamento do Ariane 5

Primeiro voo do foguete Ariane 5 em 1996:

  • Mais de 8 anos de desenvolvimento
  • Custo acima de US$ 370 milhões
  • Explodiu 37 segundos após o lançamento
  • Causa: erro de software – overflow de short

Lançamento do foguete Ariane 5 da Agência Espacial Europeia.

Introdução a Testes em Java

Benefícios dos testes

  • Protege contra bugs de casos de borda
  • Melhora o entendimento do projeto e de seus requisitos
  • Acelera o desenvolvimento no longo prazo
  • Automatiza a aplicação dos requisitos
  • Reduz erro humano

light_bulb.jpg

1 https://books.google.com/books/about/Clean_Architecture.html?id=8ngAkAEACAAJ
Introdução a Testes em Java

Vamos praticar!

Introdução a Testes em Java

Preparing Video For Download...