-
Notifications
You must be signed in to change notification settings - Fork 0
Testowanie Oprogramowania
Cykl życia rozwoju oprogramowania obejmuje różne fazy tworzenia oprogramowania, które obejmują analizę wymagań, definiowanie wymagań, projektowanie, kodowanie, testowanie i wdrażanie. Testowanie oprogramowania odgrywa kluczową rolę w procesie tworzenia oprogramowania, ponieważ umożliwia jego wydajne wdrażanie. Ma ono na celu przede wszystkim weryfikację oraz walidację oprogramowania.
Weryfikacja oprogramowania pozwala skontrolować, czy wytwarzane oprogramowanie jest zgodne ze specyfikacją. Walidacja zaś sprawdza, czy oprogramowanie jest zgodne z oczekiwaniami użytkownika. Testowanie oprogramowania może być wdrożone w dowolnym momencie wytwarzania oprogramowania (w zależności od stosowanej metody). W zakresie tego projektu omówione zostaną cztery platformy testowe o nazwach JUnit, TestNG, Mockito oraz EasyMock.
Testy można podzielić na kilka sposobów:
- ze względu na weryfikowane obiekty (przykładowo testy klas, komponentów, podsystemów, systemu lub zintegrowanych systemów)
- na białoskrzynkowe (strukturalne), weryfikujące kod źródłowy oraz czarnoskrzynkowe testujące warstwę interfejsu
- bazujące na wymaganiach (testy weryfikujące zgodność implementacji z wymaganiami, np. testy funkcjonalne, testy graficznego interfejsu użytkownika)
- ze względu na metodę weryfikacji z wyróżnieniem testów statycznych, bez uruchomienia aplikacji i testów dynamicznych wymagającej pracę na uruchomionym oprogramowaniu
Częstym błędem jest stawianie znaku równości między testami funkcjonalnymi, a testami czarnej skrzynki. Testy funkcjonalne mogą wymagać umiejętności czytania kodu źródłowego, czego nie wymaga się przy testach interfejsów zewnętrznych.
Dodatkowo można wyróżnić testy wykonane w określonym celu:
- retesty – testy poprawek defektów
- testy regresywne – testy oprogramowania po wykonaniu zmian, niekoniecznie w kodzie (przykładowo aktualizacji wersji systemu operacyjnego)
Testy dzieli się na pięć poziomów:
- Testy jednostkowe - metoda testowania tworzonego oprogramowania poprzez wykonywanie testów weryfikujących poprawność działania pojedynczych elementów (jednostek) programu – np. metod lub obiektów w programowaniu obiektowym lub procedur w programowaniu proceduralnym.
- Testy akceptacyjne (w których możemy wyróżnić również specyficzne dla oprogramowania komercyjnego testy alfa i testy beta) - metoda testowania oprogramowania, której celem nie jest wykrycie błędów, a jedynie uzyskanie formalnego potwierdzenia wykonania oprogramowania odpowiedniej jakości.
- Testy integracyjne komponentów - metoda testowania oprogramowania, wykonywana w celu wykrycia defektów w interfejsach i interakcjach pomiędzy modułami lub systemami. Testy integracyjne komponentów są przeprowadzane w celu oceny zgodności komponentu z określonymi wymaganiami funkcjonalnymi.
- Testy systemowe - metoda testowania tworzonego oprogramowania mają na celu sprawdzenie zgodności zintegrowanego już systemu z ustalonymi w poprzednich częściach wymaganiami. Testy te wykonywane są w sposób całościowy, wykorzystując do tego technikę czarnej skrzynki.
- Testy integracyjne z systemami - metoda testowania tworzonego oprogramowania, która podobnie jak w przypadku testowania integracyjnego komponentów jest wykonywana w celu wykrycia defektów w interfejsach i interakcjach pomiędzy modułami lub systemami. Jednak w tym przypadku przeprowadzane są one w celu oceny zgodności systemu z określonymi wymaganiami funkcjonalnymi.
-
Etap 1
-
Etap 2
-
Etap 3
-
Etap 4
-
Etap 5
-
Etap 6
-
Etap 7