W tym materiale postaram się przybliżyć Wam szczególny rodzaj testów, jakim niewątpliwie są testy End To End. Zapewne, jeśli jesteście testerami, czy tez osobami należącymi do zespołów zapewniania jakości, to nieraz słyszeliście termin „End-to-End”, czy krócej i bardziej popularnie w branży „E2E”. Według mnie testowanie End-to-End jest jednym z kluczowych rodzajów testów, gdyż testy te weryfikują, czy system spełnia wymagania biznesowe (realizuje założone funkcjonalności) „od początku do końca”, tzn. w pełni testuje dane funkcjonalności wraz z ich wszystkim komponentami takimi jak np. bazy, danych, zewnętrzne integracje czy usługi.

Głównym celem testowania End-To-End jest testowanie na podstawie doświadczenia użytkownika końcowego poprzez symulację rzeczywistego scenariusza użytkownika i walidację testowanego systemu wraz z komponentami pod kątem integracji i integralności danych. Ten rodzaj testów staje się coraz bardziej istotny, gdyż oprogramowanie jest coraz bardziej złożone i skomplikowane. Możemy dostrzec coraz większą liczbę integracji z innymi systemami, podsystemami, czy też usługami. W przypadku awarii jednego z takich elementów istnieje poważne ryzyko, że cały system może ulec awarii, czy też może nie spełniać swoich głównych założeń w sposób prawidłowy.
Testy E2E są zwykle przeprowadzane na gotowych systemach (w końcowej fazie developmentu – ponieważ muszą już w pełni działać wszystkie funkcjonalności, które będziemy testować).
Korzyści stosowania testów End-to-End

Jasne jest, że pozostałe metody testowania, na przykład modułowe, integracyjne, również dostarczają ważnych informacji o poszczególnych komponentach oprogramowania, jednak to właśnie testy End to End zapewnia tak kompleksową i dogłębną analizę oprogramowania z perspektywy klienta końcowego.
Testy funkcjonalne VS E2E
Jeśli dość wnikliwie przeczytałeś powyższy tekst, to pewnie nasuwa Ci się myśli: „No dobrze.. ale jak rozumiem testy E2E to po prostu testy funkcjonalne, które przeprowadzamy zawsze na wielu etapach testowania”. Nie do końca masz jednak rację. Aby wyprowadzić Cię z błędu, postaram się pokazać różnice między typowymi testami funkcjonalnymi a testami E2E.
Testy funkcjonalne | Testy End to End |
Testowanie jest ograniczone do jednego modułu, systemu, aplikacji | Testowanie obejmuje wiele aplikacji, usług i bardziej opiera się na pełnej integracji oprogramowania |
Zapewnia, że testowane oprogramowanie spełnia kryteria akceptacji | Zapewnia, że procesy biznesowe działają prawidłowo, zgodnie z założeniami |
Testuje sposób, w jaki pojedynczy użytkownik korzysta z aplikacji | Testuje sposób pracy wielu użytkowników w aplikacjach |
Wykonuje się je na różnych etapach developmentu | Wykonuje się je, wtedy, gdyż faza developmentu zbliża się do końca, lub gdy jest już zakończona. |
Jak wygląda cały proces testów E2E
Na standardowy proces E2E składaj się następujące fazy:
- Zbieranie wymagań testowych (w kontekście pełnych, biznesowych funkcjonalności)
- Projektowanie scenariuszy testowych (do wcześniej zebranych wymagań procesów biznesowych)
- Faza developmentu – tworzenie programowania
- Testowanie End to End – wykonywanie wcześniej opracowanych scenariuszy testowych

Główne wyzwania w testów End to End
Jak się pewnie domyślacie wykrywanie błędów w złożonym przepływie pracy wiąże się z wyzwaniami:
- Tworzenie przepływów pracy
Aby móc przetestować wybraną funkcjonalność w całości to, przypadki testowe w zestawie testów End to End muszą być uruchamiane w określonej, poprawnej kolejności. Ta sekwencja musi być zgodna ze ścieżką użytkownika końcowego podczas poruszania się po aplikacji. Tworzenie zestawów testów pasujących do tego przepływu pracy może być trudne i czasochłonne, zwłaszcza że zwykle wiąże się z tworzeniem i uruchamianiem setek a nawet tysięcy testów.
- Dostęp do środowiska testowego
Testowanie aplikacji w środowiskach deweloperskich jest dość łatwe. Jednak każda aplikacja musi zostać przetestowana w środowiskach testowych, przedprodukcyjnych czy produkcyjnych. Oczywiście zdarza się, że środowiska produkcyjne nie zawsze są dostępne do testowania, dlatego musimy testować na takich, które są jak najbardziej zbliżone do środowiska produkcyjnego. Testerzy muszą również przygotować się na problemy, takie jak aktualizacje systemu, które mogą przerwać wykonywanie testów, i zapobiegać im. Dużym wyzwaniem jest zwykle pełna dostępność takiego środowiska testowego, gdyż aby skutecznie przeprowadzać testy End to End, to musimy posiadać takie środowisko na wyłączność, aby nie było sytuacji, że np. w tym samym czasie nasze testy skrzyżują się z innymi typami testów i w ten sposób nasze wyniki mogą zostać obarczone błędami.
Dlaczego konieczne są testy End to End?
Każda aplikacja komunikuje się z wieloma systemami i bazami danych poza własnym środowiskiem. To sprawia, że całościowy przepływ pracy aplikacji jest dość skomplikowany do przetestowania.
Testy End to End określają, czy różne zależności, integracje aplikacji działają poprawnie. Sprawdzają również, czy między wieloma komponentami systemu przesyłane i odbierane są poprawnie informacje.
- Backend : testy End to End weryfikują warstwy bazy danych i integracji backendowych. Jest to konieczne, ponieważ podstawowe główna logika systemu dzieje się właśnie „pod spodem”
- System wielowarstwowy : jeśli aplikacja ma złożoną architekturę, której przepływ pracy działa na wielu warstwach, testy E2E są niezbędne do weryfikacji ogólnych funkcji, a także interakcji między poszczególnymi warstwami w architekturze.
- Środowisko rozproszone : jeśli aplikacja jest oparta na architekturze SOA (architektura zorientowana na usługi) lub środowiskach chmurowych, konieczne jest testowanie End to End. Jest również niezbędny w przypadku aplikacji składających się z wielu komponentów, które muszą działać w tandemie, aby zapewnić pomyślne działanie.
- Spójne doświadczenie użytkownika : ponieważ testowanie E2E obejmuje frontend, zapewnia również, że aplikacja zapewnia wrażenia użytkownika działające na wielu urządzeniach, platformach i środowiskach. Na przykład testy zgodności przeglądarek jest ważną częścią testowania E2E w tym zakresie.
Przykłady testów E2E
Okay, skoro już tyle wiemy o testach End to End to teraz zobaczymy jakiś przykład tego rodzaju testu! W tym celu poniżej załączam przykładowy scenariusz testowy dla mojej platformy testowej www.selenium-shop.pl. Scenariusz testowy będzie dotyczył funkcjonalności – zamawiania produktu.
Nr. Kroku | Opis Kroku | Oczekiwany efekt | Warunki wstępne |
---|---|---|---|
0 | Otwórz w przeglądarce Chrome stronę : www.selenium-shop.pl | Otworzona strona główna: www.selenium-shop.pl Przeglądarka Chrome. | |
1. | Kliknij w produkt o nazwie: KOSZULKA WEST HAM UNITED a następnie zweryfikuj adres strony, na którą zostałeś przeniesiony. Zrób screen po przeniesieniu się na stronę szczegółów wybranego produktu i zapisz go w katalogu src/main/resources | Znajdujesz się na stronie Szczegółów Produktu, tytuł strony: Koszulka West Ham United – Selenium Shop Automatyzacja Testów | |
2. | Zweryfikuj nazwę produktu | Nazwa produktu: KOSZULKA WEST HAM UNITED | |
3. | Zweryfikuj cenę produktu | Cena produktu: 90,00 ZŁ | |
4. | Zweryfikuj ilość sztuk produktu | Ilość sztuk produktu: 1 | |
5. | Kliknij przycisk DODAJ DO KOSZYKA oraz zweryfikuj, czy wyświetlony komunikat zawiera następującą treść: “Koszulka West Ham United” został dodany do koszyka. | Wyświetlony komunikat zawiera następującą treść: “Koszulka West Ham United” został dodany do koszyka. | |
6. | Zweryfikuj czy domyślnie została zaznaczona pozycja: Darmowa wysyłka | Opcja Darmowa wysyłka jest domyślnie zaznaczona | |
7. | Kliknij przycisk: PRZEJDŹ DO KASY oraz zweryfikuj tytuł strony, na którą zostałeś przeniesiony. | Znajdujesz się na ekranie podsumowania zamówienia. Tytuł strony: Zamówienie – Selenium Shop Automatyzacja Testów | |
8. | Zweryfikuj nazwę produktu | Nazwa produktu: Koszulka West Ham United | |
9. | Zweryfikuj cenę produktu | Cena produktu: 90,00 ZŁ | |
10. | Zweryfikuj czy domyślnie została zaznaczona pozycja: Darmowa wysyłka | Opcja Darmowa wysyłka jest domyślnie zaznaczona | |
11. | Zweryfikuj kwotę całkowitą produktu zamówienia (pole Suma) | Kwota całkowita zamówienia: 90,00 zł |
Autor: Tomasz Stelmach
0 komentarzy