Introduzione al testing

Introduzione al Testing in Java

Maria Milusheva

Senior Software Engineer

Che cos'è il testing?

Software Testing:

  • Processo per valutare se il software soddisfa i requisiti specificati

Tipi di testing:

  • Manuale: necessario ma limitato e meno affidabile
  • Automatico: esegue centinaia di test e check in pochi secondi

Useremo JUnit 5 per il testing automatico

Grafica di uno sviluppatore

Introduzione al Testing in Java

Casi limite

"Se non è testato, è rotto."$^1$

Caso limite: input o condizione all'estremo/bordo di ciò che è tipico o atteso

Esempi: variabili alla capacità massima, variabili null o vuote, valori negativi

Grafica che simboleggia un test

1 Citazione originaria di Bruce Eckel
Introduzione al Testing in Java

Esempio di comportamento inatteso in un caso limite

Considera il seguente codice:

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

⚠ Considera gli input 2147483647 (valore massimo di int) e 1

➡ L'output è -2147483648 (valore minimo di int)

Introduzione al Testing in Java

Ripasso: dimensioni variabili — i primitivi sono limitati

Tabella dei tipi primitivi: byte, short, int, long, float, double, char e boolean

Introduzione al Testing in Java

Esempio: lancio di Ariane 5

Primo volo del razzo Ariane 5 nel 1996:

  • Oltre 8 anni di sviluppo
  • Costo oltre 370 milioni di dollari
  • Esploso 37 secondi dopo il lancio
  • Causa: errore software, overflow di short

Lancio del razzo Ariane 5 dell'Agenzia Spaziale Europea.

Introduzione al Testing in Java

Vantaggi del testing

  • Protegge da bug nei casi limite
  • Migliora la comprensione del progetto e dei requisiti
  • Nel lungo periodo accelera lo sviluppo
  • Automatizza il rispetto dei requisiti
  • Riduce l'errore umano

light_bulb.jpg

1 https://books.google.com/books/about/Clean_Architecture.html?id=8ngAkAEACAAJ
Introduzione al Testing in Java

Passons à la pratique !

Introduzione al Testing in Java

Preparing Video For Download...