Co to jest piramida testów – testowanie oprogramowania
Dziś w zagadnieniach podstaw testowania oprogramowania poruszymy temat czym jest piramida testów. Jest to pojęcie, które powinien znać każdy Dev oraz QA. Znajomość piramidy pozwoli nam w przyszłości prawidłowo ustalić priorytety oraz ilość testów.
Sama piramida nie jest niczym innym jak graficznym przedstawieniem testów – od tych najbardziej fundamentalnych, stanowiącą bazę dobrze wytwarzanego oprogramowania, aż po sam koniec przepływu, mającego gwarantować jakość.
Taki obrazek pozwala nam zwizualizować również, na których płaszczyznach powinniśmy skupić się, testując aplikację. Często rysunek ją przedstawiający odnosi się również do szybkości ich wykonywania oraz izolacji.
Można powiedzieć, że w piramidzie istnieją dwie zależności.
1. Pierwsza odnosi się do stopnia izolacji testów. Czym wyżej piramidy jesteśmy, tym testy będą mniej wyizolowane.
2. Druga zasada odnosi się do szybkości testów. Czym wyżej piramidy jesteśmy, tym testy będą wolniejsze.
Solidne fundamenty – unit testy
Jak możesz zauważyć – u podstawy naszej piramidy leżą testy jednostkowe. Są to podstawowe testy, jakie możemy wykonać. Dlaczego są podstawą? Wpływa na to kilka powodów – po pierwsze są relatywnie najtańszymi testami, a po drugie pozwalają sprawdzać nasz kod w izolowany sposób, co przekłada się na wynik testu czy metoda, obiekt zwraca to, co powinna.
Zgodnie z przepływami w piramidzie testy jednostkowe są najbardziej wyizolowane oraz najszybsze. W tej warstwie dostaniemy najszybszy feedback, co podczas developmentu aplikacji znacznie przyspiesza pracę.To, na co trzeba zwrócić jeszcze uwagę to fakt, że liczba testów jednostkowych powinna być większa od ilości testów integracyjnych oraz testów E2E/UI.
Testy integracyjne
Kiedy mamy już pewność, że wyizolowane testy jednostkowe dały nam gwarancje poprawnych rezultatów, przychodzi pora na testy integracyjne.
Tutaj mamy do czynienia z mniejszą izolacją, ponieważ musimy sprawdzić poprawność działania ze sobą kilku komponentów, które w aplikacji współpracują ze sobą. Jeśli zatem nasza aplikacja używa bazy danych sprawdzamy czy zapis i odczyt z bazy następuje prawidłowo.
Zadaniem testów integracji jest sprawdzenie poprawnego działania między komponentami oraz ustalenie miejsc, gdzie przypuszczamy, że awaria ma największe prawdopodobieństwo bytu.
Testy integracyjne możemy postrzegać jako miejsca, w których następuje połączenie dwóch modułów wpływających na siebie. Przykładowo: zapis i odczyt z bazy danych przez inny moduł.
Testy UI, end to end
Na szczycie piramidy znajdują się testy UI, end to end, są one tylko dopełnieniem pozostałych dwóch podstaw naszej piramidy. Na tym poziomie testujemy zachowanie aplikacji bądź systemu w sposób, jaki często robi to końcowy odbiorca oprogramowania. Testy end to end sprawdzają, czy komponenty aplikacji działają poprawnie.
Na tym etapie przechodzimy ścieżki, w jakich użytkownik używa aplikacji, sprawdzając czy aplikacja jako całość nie posiada błędów.
Zgodnie z przepływami, testy UI są najbardziej zintegrowane oraz najwolniejsze. Tutaj czas od uruchomienia testów do końcowego feedbacku może być liczony nawet w godzinach. Wszystko zależy od ilości testów na tej warstwie. Aby skrócić ten czas, stosuje się również różne zabiegi (równoległe uruchamianie testów w tym samym czasie).
Liczę, że po budowie naszej piramidy nie będziesz miał już problemów z określeniem, które testy są fundamentalne oraz jak wyglądają przepływy w naszej piramidzie.
Jeśli podobał Ci się ten post, proszę polub nasz profil na Facebooku oraz podziel się tym wpisem z innymi QA, Developerami :).
1 komentarz