Auf dieser Seite
software_testing_pyramid
Agile w QA Automatyzacja testów Najlepsze metody
Lesezeit: 20 min
20 stycznia, 2026

Piramida Testowania Oprogramowania: Kompletny Przewodnik

Twój pakiet testów end-to-end właśnie padł po raz trzeci w tym tygodniu. Nie z powodu rzeczywistych błędów, ale dlatego, że ktoś zmienił nazwę klasy CSS. Tymczasem krytyczna logika walidacji płatności, którą wdrożyłeś w poprzednim sprincie, od dwóch dni po cichu korumpuje dane użytkowników, a Twoje testy integracyjne tego nie wyłapały. Tak właśnie wygląda sytuacja, gdy strategia testowania jest odwrócona do góry nogami: drogie testy na szczycie wychwytują problemy kosmetyczne, podczas gdy prawdziwe problemy prześlizgują się przez nieprzetestowane ścieżki kodu u podstawy. Piramida testowania oprogramowania odwraca ten scenariusz. Jak? Wyjaśnimy to szczegółowo w tym kompleksowym przewodniku. Zanurzmy się razem w szczegółach.

photo
Robert Weingartz

Czym jest piramida testowania?

Mike Cohn wprowadził piramidę testowania w książce „Succeeding with Agile”. To prosty model wizualny pokazujący, jak rozłożyć wysiłki testowe na trzech poziomach. Wyobraź sobie piramidę. Szeroka podstawa testów jednostkowych u dołu. Mniejsza środkowa warstwa testów integracyjnych. Jeszcze mniejsza górna sekcja testów end-to-end. Ten kształt jest strategiczny, bez względu na to, jak przypadkowo może brzmieć. Większość Twoich wysiłków testowych powinna odbywać się na dole.

Testing pyramid

Pomyśl o tym w ten sposób. Test jednostkowy wykonuje się w milisekundach i zawodzi tylko wtedy, gdy kod się psuje. Test end-to-end trwa minuty i może zawieść, ponieważ Twoje środowisko testowe jest wolne. Który chcesz uruchamiać za każdym razem, gdy zapisujesz plik? Oto, czym zajmuje się każdy poziom:

  • Testy jednostkowe (podstawa): Pojedyncze funkcje lub metody w izolacji
  • Testy integracyjne (środek): Jak komponenty współpracują ze sobą
  • Testy end-to-end (szczyt): Pełna ścieżka użytkownika przez Twoją aplikację

Im wyżej wspinasz się po piramidzie, tym wolniejsze i bardziej kruche stają się Twoje testy. Testy jednostkowe wychwytują błędy logiczne w sekundach. Testy integracyjne wychwytują problemy interfejsowe w minutach. Testy end-to-end wychwytują problemy z doświadczeniem użytkownika, miejmy nadzieję, zanim zrobią to Twoi użytkownicy.

Poziomy Piramidy Testowania

Teraz, gdy rozumiesz podstawową strukturę, zagłębmy się w to, co każdy poziom faktycznie robi w praktyce. Każda warstwa służy innemu celowi i wychwytuje różne typy problemów. Zrozumienie, kiedy i jak używać każdego z nich, zadecyduje o tym, czy Twoja strategia testowania pomaga, czy szkodzi szybkości rozwoju.

Testy jednostkowe (podstawa piramidy)

Testy jednostkowe weryfikują, czy poszczególne funkcje robią dokładnie to, co powinny robić. Ni mniej, ni więcej. Pomyśl o testowaniu funkcji calculateDiscount() z różnymi danymi wejściowymi, aby upewnić się, że za każdym razem zwraca właściwy procent. Te testy wykonują się tysiącami w sekundach. Dają programistom natychmiastową informację zwrotną, gdy coś się psuje. Żadnego czekania na wolne pakiety testowe czy radzenia sobie z niestabilnymi wywołaniami sieciowymi.

Dobry test jednostkowy jest izolowany. Bez wywołań bazy danych. Bez żądań API. Bez dostępu do systemu plików. Tylko czyste testowanie logiki. Te same dane wejściowe zawsze dają ten sam wynik. Jeśli Twój test czasami przechodzi, a czasami zawodzi przy identycznym kodzie, to nie jest test jednostkowy. To ból głowy.

Popularne narzędzia do testów jednostkowych to:

  • JavaScript: Jest, Mocha, Jasmine
  • Python: pytest, unittest
  • Java: JUnit, TestNG
  • C#: NUnit, MSTest

Popular unit testing tools include:

  • JavaScript: Jest, Mocha, Jasmine
  • Python: pytest, unittest
  • Java: JUnit, TestNG
  • C#: NUnit, MSTest.

Oto magia: testy jednostkowe wychwytują regresje natychmiast. Piszesz funkcję, testujesz, czy działa, a potem sześć miesięcy później ktoś ją modyfikuje dla nowej funkcjonalności. Jeśli zepsują pierwotne zachowanie, test natychmiast zawodzi. Żadnych sesji debugowania. Żadnych rozmów w stylu „u mnie działało”. Większość Twoich wysiłków testowych powinna dziać się tutaj. Dąż do tego, aby ten poziom dźwigał ciężar pracy.

Testy integracyjne (warstwa środkowa)

Testy integracyjne weryfikują, czy Twoje komponenty faktycznie współpracują ze sobą. Czy Twój serwis użytkowników poprawnie komunikuje się z bazą danych. Czy Twój procesor płatności łączy się z systemem zamówień bez błędów. Te testy przekraczają granice, których testy jednostkowe nie mogą dotknąć.

W przeciwieństwie do testów jednostkowych, testy integracyjne działają na rzeczywistych systemach. Wywołują faktyczne bazy danych. Wykonują żądania HTTP do prawdziwych serwisów. Wchodzą w interakcję z systemem plików. To sprawia, że są wolniejsze i czasami zawodne, ale wychwytują problemy, które testy jednostkowe pomijają.

Pomyśl o niezgodnościach interfejsów. Twój serwis użytkowników oczekuje pola „userId”, ale baza danych zwraca „user_id”. Testy jednostkowe tego nie wyłapią, ponieważ wszystko mockują. Testy integracyjne zawiodą natychmiast, gdy spróbują połączyć prawdziwe komponenty.

Popularne narzędzia do testów integracyjnych to:

  • Testowanie API: Postman, REST Assured, Supertest
  • Baza danych: DBUnit, TestContainers
  • Kolejki komunikatów: JMSUnit, EmbeddedAMQ

Skup testy integracyjne na krytycznych granicach systemu. Przetestuj przepływ uwierzytelniania od żądania logowania przez generowanie tokena do zapisu w bazie danych. Nie próbuj testować każdej możliwej ścieżki użytkownika. To zadanie dla testów E2E.

Testy end-to-end (szczyt piramidy)

Testy end-to-end symulują prawdziwych użytkowników klikających przez Twoją aplikację. Wypełniają formularze. Nawigują między stronami. Wykonują całe przepływy pracy od początku do końca. Te testy weryfikują, że wszystko współpracuje, aby dostarczyć rzeczywiste doświadczenie użytkownika.

Testy E2E są kosztowne, ale niezbędne. Wychwytują problemy, które prześlizgują się przez inne warstwy testów. Czy klient może sfinalizować zakup? Czy może zresetować hasło? Czy może przesłać plik i zobaczyć go w swoim panelu? To pytania, na które odpowiadają testy E2E.

Kompromisy są znaczące. Testy E2E wykonują się w minutach zamiast sekund. Zawodzą losowo z powodu problemów z czasem, problemów sieciowych czy dziwactw przeglądarki. Zmiany UI łamią je nieustannie. Dlatego potrzebujesz ich mniej.

Popularne narzędzia do testów E2E to:

  • Web: Cypress, Selenium, Playwright
  • Mobile: Appium, Detox, Espresso
  • API: Postman, Karate

Bądź selektywny z testami E2E. Nie testuj każdej funkcjonalności; testuj krytyczne ścieżki biznesowe. Logowanie użytkownika. Finalizacja zakupu. Zarządzanie kontem. Eksport danych. Wybierz przepływy pracy, które absolutnie muszą działać, aby Twój biznes przetrwał.

Czy Twój zespół ma trudności z wdrożeniem efektywnej strategii testowania, która równoważy szybkość i jakość? Piramida testowania oferuje przejrzystą strukturę, ale zarządzanie różnymi typami testów w ramach zwinnego przepływu pracy wymaga odpowiedniego zestawu narzędzi. Tutaj właśnie wyróżnia się aqua cloud jako Twoje kompleksowe rozwiązanie do zarządzania testami.

Dzięki aqua cloud możesz bezproblemowo organizować i śledzić testy na wszystkich poziomach piramidy, od testów jednostkowych u podstawy po testy end-to-end na szczycie. Możliwości generowania przypadków testowych oparte na AI pomagają szybko tworzyć testy zgodne z zasadami piramidy testowania, oszczędzając nawet do 98% czasu Twojego zespołu. Śledzenie pokrycia w czasie rzeczywistym natychmiast ujawnia luki w strategii testowania, zapewniając utrzymanie idealnej równowagi typów testów przy jednoczesnym osiągnięciu 100% pokrycia wymagań. Dla zespołów zwinnych, które nieustannie dostarczają kod, integracja aqua z narzędziami takimi jak Jira, Confluence i Azure DevOps utrzymuje wszystkich zsynchronizowanych, z pełną identyfikowalnością między wymaganiami, przypadkami testowymi i defektami. Koniec z domysłami, które wymagania pozostają nieprzetestowane lub gdzie leżą Twoje ryzyka jakościowe.

Wdróż zrównoważoną, efektywną piramidę testowania i dostarczaj oprogramowanie wyższej jakości szybciej

Wypróbuj aqua cloud za darmo

Korzyści z Piramidy Testowania

Piramida testowania ma kilka korzyści, które nie pozostają tylko na papierze – dostarcza mierzalne ulepszenia Twojego procesu rozwoju. Oto co się zmienia, gdy znajdziesz właściwą równowagę. Te korzyści kumulują się z czasem, czyniąc Twój zespół szybszym, a oprogramowanie bardziej niezawodnym.

Szybsze Pętle Informacji Zwrotnej

Testy jednostkowe dają programistom informację zwrotną w sekundach. Napisz funkcję, uruchom test, zobacz, czy działa. Żadnego czekania na buildy. Żadnych pipeline’ów wdrożeniowych. Żadnych cykli testowania ręcznego. Ta szybkość zmienia sposób pracy programistów. Wychwytują błędy natychmiast, zamiast godziny później podczas testów integracyjnych. Problemy są naprawiane, gdy kod jest jeszcze świeży w ich umyśle. Przełączanie kontekstu staje się minimalne. Według badania Microsoft, zespoły wdrażające piramidę testowania redukują ogólny czas debugowania nawet o 60%.

Niższe Koszty Testowania

Stworzenie testu end-to-end zajmuje 4-8 godzin. Stworzenie testu jednostkowego zajmuje 10-30 minut. Matematyka jest prosta – otrzymujesz więcej pokrycia na zainwestowaną godzinę, gdy skupiasz się na podstawie piramidy. Koszty utrzymania podążają tym samym wzorcem. Testy jednostkowe psują się tylko wtedy, gdy zmienia się logika. Testy E2E psują się, gdy ktoś aktualizuje klasę CSS, zmienia etykietę przycisku lub modyfikuje środowisko wdrożeniowe.

Rozważ to porównanie:

Typ testu Czas tworzenia Czas wykonania Koszt utrzymania
Test jednostkowy 10-30 min < 1 sek Niski
Test integracyjny 1-2 godz. 5-30 sek Średni
Test E2E 4-8 godz. 1-5 min Wysoki

Ulepszone Pokrycie Testami

Podejście piramidalne sprawia, że testowanie większej części aplikacji staje się wykonalne. Projekt może mieć tysiące testów jednostkowych, ale tylko dziesiątki testów E2E, a mimo to osiągnąć lepsze ogólne pokrycie.

Lepsza niezawodność testów

Testy jednostkowe są deterministyczne. Te same dane wejściowe, ten sam wynik, za każdym razem. Testy E2E zawodzą z dziesiątek powodów, które nie mają nic wspólnego z Twoim kodem: timeout’y sieciowe, aktualizacje przeglądarki, awarie usług zewnętrznych i race conditions. Gdy Twój pakiet testów składa się głównie z testów jednostkowych, awarie faktycznie coś znaczą. Programiści ufają wynikom. Czerwone buildy otrzymują uwagę zamiast być ignorowane jako „prawdopodobnie niestabilne”.

Wspiera Ciągłą Integrację

Testy jednostkowe wykonują się w sekundach, więc mogą działać przy każdym commit’cie. Testy integracyjne wykonują się w minutach, więc mogą działać przy każdym merge’u. Testy E2E wykonują się w godzinach, więc działają nocami lub przed wydaniami. To tworzy szybki pipeline informacji zwrotnej. Programiści wiedzą natychmiast, czy coś zepsuli. Zespół wie szybko, czy istnieją problemy integracyjne. Krytyczne ścieżki użytkownika są walidowane, zanim zobaczą je klienci.

Jak Wdrożyć Piramidę Testowania w Swoim Workflow

Przejdźmy teraz do praktyki.

Większość zespołów nie zaczyna z idealną piramidą. Prawdopodobnie masz rozproszone testy, ciężkie poleganie na ręcznym QA lub odwróconą piramidę z zbyt wieloma wolnymi testami E2E. Oto jak to naprawić bez przepisywania wszystkiego od zera.

1. Oceń Swój Obecny Mix Testowy

Policz swoje testy. Ile masz testów jednostkowych? Ile testów integracyjnych? Ile testów E2E? Większość zespołów odkrywa, że są „top-heavy” – dziesiątki kruchych testów UI i ledwo kilka testów jednostkowych. Przyjrzyj się też czasom wykonywania testów. Jeśli Twój „szybki” pakiet testów trwa 20 minut, masz problemy z piramidą.

2. Zacznij od Testowania Jednostkowego

Zacznij od fundamentu. Wybierz podstawowy moduł swojej aplikacji i zwiększ jego pokrycie testami jednostkowymi. Skup się na:

  • Logice biznesowej ze złożonymi regułami
  • Kodzie, który zmienia się często
  • Obszarach z wcześniejszymi błędami

Oprzyj się pokusie testowania prostych getterów i setterów. Testuj logikę, która naprawdę ma znaczenie.

3. Ustaw Konkretne Cele

Nie dąż natychmiast do idealnych proporcji. Jeśli obecnie masz 10% testów jednostkowych, dąż najpierw do 40%. Potem 60%. Potem 70%.
Ustaw też cele czasowe. „Nowe funkcjonalności muszą zawierać testy jednostkowe.” „Poprawki błędów potrzebują testów regresji.” „Refaktoryzacja wymaga najpierw pokrycia testami.” To daje wszystkim jasny kierunek bez bycia nadmiernie nakazowym.

4. Dodaj Testy Integracyjne Strategicznie

Gdy masz już solidne pokrycie testami jednostkowymi, zidentyfikuj kluczowe punkty integracji w swoim systemie:

  • Kontrakty API między serwisami
  • Interakcje z bazą danych
  • Połączenia z usługami zewnętrznymi

Napisz skoncentrowane testy integracyjne dla tych granic.

5. Zarezerwuj Testy E2E dla Krytycznych ścieżek

Zidentyfikuj podróże użytkownika, które-muszą-działać w Twojej aplikacji. To Twoi kandydaci na testy E2E:

  • Logowanie i uwierzytelnianie
  • Podstawowe transakcje biznesowe
  • Przetwarzanie płatności
  • Operacje krytyczne dla danych

6. Zintegruj z Pipeline’em CI/CD

Ustrukturyzuj swój pipeline tak, aby uruchamiał testy równolegle (zgodnie z pipeline’em CI/CD), z najszybszymi testami jako pierwszymi:

  • Testy jednostkowe wykonują się przy każdym commit’cie
  • Testy integracyjne wykonują się po udanych testach jednostkowych
  • Testy E2E wykonują się przed wdrożeniem lub nocami

7. Monitoruj i poprawiaj jakość testów

Monitoruj te metryki:

  • Dystrybucja testów: Czy zbliżasz się do kształtu piramidy?
  • Wskaźniki awarii: Które typy testów wychwytują prawdziwe błędy vs fałszywe alarmy?
  • Czasy wykonywania: Czy Twoje szybkie testy pozostają szybkie?
  • Adopcja przez programistów: Czy ludzie faktycznie piszą testy?

Dostosuj na podstawie tego, czego się uczysz. Jeśli testy integracyjne stale zawodzą z powodu problemów środowiskowych, uprość je. Jeśli testy jednostkowe nie wychwytują błędów, popraw jakość testów.

Wyzwania i Rozważania

Niemal każdy zespół napotyka przeszkody podczas przechodzenia na testowanie piramidalne. Dobra wiadomość jest taka, że te problemy są przewidywalne i rozwiązywalne. Oto, czego się spodziewać i jak radzić sobie z każdym wyzwaniem:

Wyzwania Legacy Codebase

Stary kod nie był pisany z myślą o testowaniu. Funkcje mają ukryte zależności. Klasy są ściśle sprzężone. Metody robią zbyt wiele rzeczy naraz. Nie próbuj testować wszystkiego natychmiast. Zamiast tego postępuj zgodnie z tymi wskazówkami:

  • Używaj testów integracyjnych jako siatki bezpieczeństwa podczas refaktoryzacji
  • Wdrażaj wzorzec „Duszącej figi” i stopniowo zastępuj nieprzetestowalny kod legacy, budując nowe, testowalne komponenty wokół niego. Przekierowuj funkcjonalność krok po kroku, aż stary kod będzie można bezpiecznie usunąć.
  • Dodawaj testy do nowego kodu, jednocześnie stopniowo poprawiając pokrycie testami starego kodu

Skup się na kodzie, który zmienia się najczęściej. To tam testy zapewniają największy zwrot z inwestycji.

Widzę to jako siatkę, gdzie jedna oś to kontrola, a druga to zakres. Im większy zakres testujesz, tym mniej kontroli. To jest testowanie integracyjne. Nie możesz zadecydować, że wywołanie bazy danych zawiedzie losowo z warstwy API. Większy zakres (API, logika, baza danych) przy mniejszej kontroli (nie można zmockować odpowiedzi bazy). To jest fundamentalnie, dlaczego testowanie jednostkowe jest uważane za fundamentalne. Więcej kontroli przy mniejszym zakresie. Co jeśli baza danych jest zablokowana? Jak zareagujemy? Cóż, po prostu przetestuj jednostkę i zmockuj bazę danych, a się dowiemy.

Anonymous Posted in Reddit

Niestabilne Testy

Nic nie zabija zaufania do testów szybciej niż losowe awarie. Testy E2E są najgorszymi sprawcami, ale testy integracyjne też mogą być niestabilne.

Napraw niestabilne testy natychmiast:

  • Wdrażaj mechanizmy ponownych prób dla testów niedeterministycznych
  • Kwarantannuj niestabilne testy do czasu naprawy
  • Używaj jawnych oczekiwań zamiast domyślnych/stałych timeout’ów
  • Minimalizuj zależności od usług zewnętrznych w środowiskach testowych

Nadmierne Skupienie na Metrykach Pokrycia

Zespoły widzą „80% pokrycia” jako cel i zaczynają pisać bezużyteczne testy. Testują gettery i settery. Mockują wszystko, aby osiągnąć cele pokrycia. Ignorują krytyczną logikę biznesową, która jest trudna do przetestowania. Pokrycie mówi ci, co nie jest przetestowane, a nie co jest dobrze przetestowane:

  • Skup się na testowaniu ścieżek krytycznych dla biznesu zamiast arbitralnych celów pokrycia
  • Łącz metryki pokrycia z innymi wskaźnikami jakości
  • Podkreślaj pokrycie wymagań nad pokryciem kodu

Utrzymywanie Danych Testowych

Testy integracyjne i E2E często potrzebują realistycznych danych testowych. Tworzenie i utrzymywanie tych danych staje się koszmarem, gdy testy się mnożą. Buduj dane programowo:

  • Używaj fabryk lub builderów do tworzenia danych testowych programowo
  • Wdrażaj seedowanie bazy danych w środowiskach testowych
  • Rozważ użycie kontenerów Docker dla izolowanych środowisk testowych
  • Przyjrzyj się narzędziom do zarządzania danymi testowymi w złożonych scenariuszach

Sprzątaj po każdym teście. Pozostawione dane z jednego testu nie powinny wpływać na inny.

Luki Kompetencyjne

Nie każdy wie, jak pisać dobre testy. Niektórzy programiści nigdy nie pisali testów jednostkowych. Inni piszą testy, które są trudniejsze w utrzymaniu niż kod, który jest testowany. Inwestuj w rozwój umiejętności:

  • Sesje programowania w parach skupione na testowaniu
  • Wykorzystywanie AI do szybszego generowania kompleksowych testów jednostkowych
  • Regularne przeglądy kodu z fokusem na testowanie
  • Wewnętrzne warsztaty i dzielenie się wiedzą
  • Ustanawianie wzorców i przykładów testowania dla zespołu

Podsumowanie

Co się więc nauczyliśmy? Piramida testowania działa, ponieważ odpowiada temu, jak oprogramowanie faktycznie się psuje. Większość błędów tkwi w logice biznesowej, którą testy jednostkowe wychwytują szybko. Niektóre błędy zdarzają się w punktach integracji, które ukierunkowane testy integracyjne znajdują efektywnie. Kilka błędów ujawnia się tylko w kompletnych przepływach pracy użytkownika, które testy E2E walidują kosztownie.

Kładąc większość wysiłku testowego u podstawy piramidy, wychwytujemy więcej problemów szybciej i taniej niż jakiekolwiek inne podejście. Twoim celem jest dostarczanie lepszego oprogramowania z większą pewnością. Piramida daje ci framework do podejmowania mądrych kompromisów dotyczących tego, gdzie zainwestować swój czas testowania.

Teraz, gdy rozumiesz moc podejścia piramidy testowania, jak wdrożysz je efektywnie w swoich przepływach pracy, zgodnie z trendami agile? Większość zespołów ma trudności z utrzymaniem właściwej równowagi testów jednostkowych, integracyjnych i end-to-end, szczególnie gdy testy są rozproszone po różnych narzędziach i repozytoriach.

aqua cloud zapewnia zunifikowaną platformę do zarządzania całym ekosystemem testów. Jego potężne funkcje identyfikowalności wymagań zapewniają pełną widoczność pokrycia testami na wszystkich poziomach piramidy, natychmiast podkreślając obszary, gdzie potrzebujesz więcej testów jednostkowych lub gdzie drogie testy end-to-end mogłyby zostać zastąpione szybszymi alternatywami. Dzięki AI Copilot aqua, Twój zespół może automatycznie generować kompleksowe przypadki testowe przy użyciu właściwych technik, takich jak Analiza Wartości Brzegowych i Partycjonowanie Klas Równoważności, zapewniając metodyczne pokrycie bez ręcznego wysiłku. Możliwości głębokiej integracji platformy łączą się bezproblemowo z istniejącymi narzędziami, takimi jak Jira, Confluence i Azure DevOps, czyniąc piramidę testowania dostępną dla każdego w organizacji, od programistów przez specjalistów QA po product ownerów. Niestandardowe dashboardy i automatyczne raportowanie zapewniają natychmiastową widoczność dystrybucji testów, pomagając zespołom utrzymać idealny kształt piramidy.

Zredukuj czas testowania o 80%, jednocześnie osiągając 100% pokrycie testami dzięki zrównoważonemu podejściu aqua do testowania

Wypróbuj aqua za darmo
Auf dieser Seite:
Sehen Sie mehr
step

FOUND THIS HELPFUL? Share it with your QA community

FAQ

Czym jest piramida testowania oprogramowania?

Piramida testowania oprogramowania to model strategii testowania, który sugeruje posiadanie dużej podstawy testów jednostkowych, mniejszej liczby testów integracyjnych w środku oraz jeszcze mniejszej liczby testów end-to-end na szczycie. Wskazuje zespołom, jak rozłożyć wysiłki testowe na różnych poziomach testowania, kładąc nacisk na szybsze i bardziej skoncentrowane testy na niższych poziomach. Piramida testów oprogramowania jest fundamentem tworzenia efektywnych i skutecznych strategii testowania w nowoczesnych środowiskach programistycznych.

Czy piramida testowania jest nadal aktualna?

Tak, piramida testów jest nadal aktualna we współczesnym rozwoju oprogramowania. Chociaż narzędzia i technologie ewoluowały, fundamentalna zasada priorytetyzacji szybkich, niezawodnych testów nad wolnymi i kruchymi nadal obowiązuje. Wiele odnoszących sukcesy organizacji stosuje zasady piramidy, choć niektóre dostosowują dokładne proporcje w oparciu o swoje specyficzne potrzeby.

Jakie są poziomy piramidy testowania?

Tradycyjna piramida testowania składa się z trzech poziomów:

  1. Testy jednostkowe (podstawa): Testowanie pojedynczych funkcji, metod lub klas w izolacji
  2. Testy integracyjne (środek): Testowanie interakcji między komponentami i usługami
  3. Testy End-to-End (szczyt): Testowanie pełnych przepływów użytkownika przez całą aplikację

Niektóre rozszerzone wersje zawierają dodatkowe warstwy, takie jak testy komponentowe, testy kontraktowe lub testy wydajnościowe, ale podstawowy model trzech poziomów pozostaje szeroko stosowany.