Wprowadzenie do testowania

Wprowadzenie do testowania w Javie

Maria Milusheva

Senior Software Engineer

Czym jest testowanie?

Testowanie oprogramowania:

  • Proces oceny oprogramowania pod kątem spełnienia określonych wymagań

Testowanie może być:

  • Manualne – niezbędne, lecz ograniczone i mniej niezawodne
  • Automatyczne – pozwala wykonać setki testów w ciągu sekund

Do automatycznego testowania użyjemy JUnit 5

Grafika przedstawiająca programistę

Wprowadzenie do testowania w Javie

Przypadki brzegowe

„Jeśli coś nie jest testowane, to jest zepsute."$^1$

Przypadek brzegowy – dane wejściowe lub warunek na granicy lub skraju typowego zakresu

Przykłady: zmienne przy maksymalnej pojemności, zmienne null lub puste, wartości ujemne

Grafika symbolizująca test

1 Quote originally by Bruce Eckel
Wprowadzenie do testowania w Javie

Przykład nieoczekiwanego zachowania dla przypadku brzegowego

Rozważmy poniższy kod:

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

⚠ Rozważmy dane wejściowe 2147483647 (maksymalna wartość int) i 1

➡ Wynik to -2147483648 (minimalna wartość int)

Wprowadzenie do testowania w Javie

Przypomnienie: rozmiary zmiennych – typy prymitywne mają ograniczony rozmiar

Tabela podsumowująca typy prymitywne: byte, short, int, long, float, double, char i boolean

Wprowadzenie do testowania w Javie

Przykład: start rakiety Ariane 5

Pierwszy lot rakiety Ariane 5 w 1996 roku:

  • Ponad 8 lat w fazie rozwoju
  • Koszt ponad 370 milionów dolarów
  • Eksplozja 37 sekund po starcie
  • Przyczyną był błąd w oprogramowaniu: przepełnienie short

Start rakiety Ariane 5 Europejskiej Agencji Kosmicznej.

Wprowadzenie do testowania w Javie

Zalety testowania

  • Ochrona przed błędami w przypadkach brzegowych
  • Lepsze zrozumienie projektu i jego wymagań
  • Przyspiesza rozwój w dłuższej perspektywie
  • Automatyzuje egzekwowanie wymagań
  • Ochrona przed błędami ludzkimi

light_bulb.jpg

1 https://books.google.com/books/about/Clean_Architecture.html?id=8ngAkAEACAAJ
Wprowadzenie do testowania w Javie

Czas na ćwiczenia!

Wprowadzenie do testowania w Javie

Preparing Video For Download...