pl

Piramida testów

Jak rozplanować przeprowadzanie testów w projekcie? Wszystkim zaangażowanym w proces zależy, aby były one zaprojektowane w sposób optymalny i jak najlepiej rozplanowane zostały zasoby zespołu. Jednym z rozwiązań pomagających to zrobić jest koncepcja piramidy testów. Pokazuje ona, jakie powinny być proporcje między poszczególnymi rodzajami testów i dlaczego.

Piramida testów to podział liczby testów w zależności od ich typów. Najważniejszymi czynnikami jest szybkość testów, ich cena oraz stabilność. Tych najszybszych i najtańszych powinno być najwięcej, przez co tworzą podstawę piramidy. Jeżeli na wykonanie testów musimy poświęcić więcej czasu, są one mniej stabilne lub angażują pracę ludzką, powinnyśmy brać je pod uwagę rzadziej – tworząc z nich czubek piramidy.

Jakie dokładnie rodzaje testów umieszczone są w „piramidzie”?

Na samym początku skupiamy się na testach jednostkowych. Są to podstawowe testy, jakie można wykonać. Są one tańsze w utrzymaniu i szybsze w wykonaniu, dodatkowo można je przeprowadzić w sposób wyizolowany. Ich ilość powinna być większa niż ilości testów integracyjnych oraz testów E2E.

Jeśli zweryfikowaliśmy poprawność działania pojedynczych elementów dzięki unit testom, możemy przejść do testów integracyjnych. Wykonuje się je, aby wykryć defekty w interfejsach i interakcjach pomiędzy modułami lub systemami. Aktualnie aplikacje składają się z wielu współpracujących ze sobą systemów, należy więc sprawdzić czy komunikacja pomiędzy nimi nie jest zakłócona. Oprócz tego, ważnym zadaniem jest tu wyznaczenie miejsc w oprogramowaniu, gdzie potencjalne awarie są najbardziej prawdopodobne.

Ostatnim elementem piramidy są testy End-To-End. Na tym poziomie testujemy zachowanie aplikacji bądź systemu w sposób, jaki często robi to końcowy odbiorca oprogramowania. Przechodzimy wszystkie ścieżki, w jakich użytkownik używa aplikacji, sprawdzając czy aplikacja jako całość nie posiada błędów. Są one dopełnieniem pozostałych dwóch pięter naszej piramidy. Ponieważ powinny być one przeprowadzane na środowisku produkcyjnym, mogą być niestabilne. Dodatkowo, są one czasochłonne, a co za tym idzie - ich koszt jest znacznie wyższy. Mimo to, są one niezbędnym elementem wytwarzania oprogramowania.

Czasem można się spotkać z efektem odwróconej piramidy. Zjawisko to występuje w bardzo specyficznych warunkach, gdy z jednej strony testów jednostkowych jest niewiele bądź nie istnieją (tak samo jak testy integracyjne), a z drugiej istnieje dużo testów na warstwie UI, zarówno automatycznych jak i manualnych.

Jest to oczywiście tylko jeden z wielu sposobów rozplanowania działań w zakresie testowania, a temat tworzenia planu testów jest bardzo obszerny.

pl