Tylko do końca lipca możesz skorzystać z opcji DOFINANSOWANIA 60% ceny na dowolne szkolenie! Złóż wniosek

Zapraszamy na darmowy WEBINAR: Podstawy organizacji testów: doświadczenia z projektów – 08.08.2024. Zapisz się.

Testy End to End


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 funkcjonalneTesty End to End
Testowanie jest ograniczone do jednego modułu, systemu, aplikacjiTestowanie obejmuje wiele aplikacji, usług i bardziej opiera się na pełnej integracji oprogramowania
Zapewnia, że ​​testowane oprogramowanie spełnia kryteria akceptacjiZapewnia, że ​​procesy biznesowe działają prawidłowo, zgodnie z założeniami
Testuje sposób, w jaki pojedynczy użytkownik korzysta z aplikacjiTestuje sposób pracy wielu użytkowników w aplikacjach
Wykonuje się je na różnych etapach developmentuWykonuje 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:

  1. Zbieranie wymagań testowych (w kontekście pełnych, biznesowych funkcjonalności)
  2. Projektowanie scenariuszy testowych (do wcześniej zebranych wymagań procesów biznesowych)
  3. Faza developmentu – tworzenie programowania
  4. 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. KrokuOpis KrokuOczekiwany efektWarunki wstępne
0Otwó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/resourcesZnajdujesz się na stronie Szczegółów Produktu, tytuł strony: Koszulka West Ham United – Selenium Shop Automatyzacja Testów 
2.Zweryfikuj nazwę produktuNazwa produktu: KOSZULKA WEST HAM UNITED 
3.Zweryfikuj cenę produktuCena produktu: 90,00 ZŁ 
4.Zweryfikuj ilość sztuk produktuIlość 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łkaOpcja 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ę produktuNazwa produktu: Koszulka West Ham United 
9.Zweryfikuj cenę produktuCena produktu: 90,00 ZŁ 
10.Zweryfikuj czy domyślnie została zaznaczona pozycja: Darmowa wysyłkaOpcja 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

Notatka o autorze:

Zajmuję się testowaniem, zabezpieczaniem i zapewnianiem jakości oprogramowania od ponad 13 lat. Rozpocząłem swoją karierę od testów manualnych i analizy biznesowo-technicznej. Obecnie prowadzę firmę Quality Island, która zajmuje się szeroko pojętym testowaniem oprogramowania oraz szkoleniami dla przyszłych i obecnych testerów oprogramowania. Moją specjalnością są testy automatyczne aplikacji webowych oraz budowa procesów automatyzacji i robotyzacji. Od 8 lat prowadzę aktywnie szkolenia oraz konsultacje z tych tematów i wykonuję zlecenia dla firm trzecich jako konsultant, ekspert oraz audytor. Współpracuję również z firmami jako osoba do rekrutacji i weryfikacji technicznych. Interesują mnie głównie tematy związane z architekturą IT oraz zagadnienia DevOps/TestOps, ponieważ ściśle wiążą się z zapewnianiem jakości oprogramowania.

 

Tomasz Stelmach

CEO&Founder

 

0 komentarzy

Wyślij komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *