Testowanie aplikacji i systemów - Testowanie automatyczne

1. Korzyści z automatycznego testowania obejmują:
➢ efektywną i szybką weryfikację poprawionych błędów,
➢ możliwość powtórzenia testu, co jest szczególnie użyteczne, gdy chcemy sprawdzić, czy zgłoszone błędy zostały naprawione,
➢ możliwość dogłębnej analizy wyników testów,
➢ tańsze i szybsze generowanie raportów,
➢ przyspieszone wdrażanie testów,
➢ niezawodność w wprowadzaniu danych,
➢ możliwość dostarczenia dużej ilości danych testowych.

2. Weryfikacja to proces sprawdzania lub testowania, czy coś jest zgodne ze specyfikacją. Testowanie oprogramowania to tylko jeden z wielu rodzajów weryfikacji. Z kolei walidacja to proces potwierdzania, czy to, co zostało zapisane w specyfikacji, jest zgodne z oczekiwaniami użytkownika.

3. Metodologia testów:
  • Analiza statyczna i dynamiczna (Analiza statyczna to proces, który polega na przeglądaniu kodu źródłowego w celu wykrycia błędów, nie wymaga to jednak uruchamiania badanego kodu. Z drugiej strony, analiza dynamiczna to proces, w którym oprogramowanie jest uruchamiane i badane pod względem ścieżki wykonania i czasu wykonywania),
  • Czarne i białe skrzynki, Testy funkcjonalne (Testy funkcjonalne, znane również jako testy czarnej skrzynki, polegają na sprawdzaniu funkcji systemu na podstawie wymagań, traktując system jako czarną skrzynkę, która realizuje funkcje w nieznany sposób. Dane wejściowe są wprowadzane, a wyniki na wyjściu są analizowane. Wadą testów funkcjonalnych jest to, że pełne przetestowanie rzeczywistego systemu jest praktycznie niemożliwe z powodu ogromnej liczby kombinacji danych wejściowych i stanów),
  • Testy strukturalne (Kryterium pokrycia wszystkich instrukcji; Kryterium pokrycia instrukcji warunkowych),
  • Poziomy testowania (Testowanie jednostek; Testowanie systemu;  Testowanie zintegrowane).
4. Automatyzacja testowania za pomocą JUnit polega na wykorzystaniu tej biblioteki do tworzenia i uruchamiania testów jednostkowych w języku Java. JUnit jest narzędziem open source, które zostało pierwotnie opracowane przez Kent Becka i Ericha Gammę.

Główne cechy JUnit to:

  • Używanie adnotacji do identyfikacji metod testowych.
  • Możliwość uruchamiania testów przed i po każdej metodzie testowej dzięki adnotacjom @BeforeEach i @AfterEach.
  • Możliwość uruchamiania testów przed i po wszystkich testach w klasie dzięki adnotacjom @BeforeAll i @AfterAll.

Automatyzacja testów z JUnit pozwala na szybkie i efektywne sprawdzanie poprawności kodu, co przyczynia się do zwiększenia jakości oprogramowania i efektywności procesu deweloperskiego. W połączeniu z innymi narzędziami, takimi jak Selenium, JUnit może być również używany do automatyzacji testów aplikacji internetowych.