Testy automatyczne i piramida testów w Magento 2 – sprawdź z czego warto skorzystać

Testowanie oprogramowania to długi i złożony proces. Utrzymanie wysokiej jakości produktu z wykorzystaniem jedynie manualnego podejścia do testowania jest w obecnym świecie trudne. Częste zmiany mogące wpływać na duże części systemu skłaniają do automatyzacji pewnych obszarów. Zwinne podejście do tworzenia oprogramowania zakłada testowanie od jak najwcześniejszego etapu projektu. Pozwala to wyłapać niezgodności, defekty, problemy, których poprawa jest często szybsza, łatwiejsza i tańsza. Automatyzacja testów powinna odbywać się na każdym etapie wytwarzania oprogramowania.


Czym jest piramida testów?

W opisane powyżej podejście dobrze wpasowuje się stosowanie piramidy testów. Rozwiązanie to bazuje na fakcie, że produkt powinien być testowany automatycznie z wykorzystaniem różnych poziomów testów. 

Ilość poszczególnych testów tworzy rodzaj piramidy. U jej podstawy znajdują się testy jednostkowe, nad nimi testy integracyjne, API, na testach E2E (warstwa UI) kończąc. Testy manualne znajdują się już nad piramidą i stanowią jej uzupełnienie.

W piramidzie najwięcej jest testów jednostkowych (testy wykonywane przez programistów w trakcie tworzenia kodu). Są szybkie, wykonywane w izolacji, pozwalają wykryć błędy na wczesnym etapie, co skutkuje tańszym kosztem ich naprawy.

Na samej górze piramidy są testy E2E. Te testy są dużo wolniejsze, testują konkretne biznesowe przypadki użycia aplikacji, są droższe i czasochłonne w utrzymaniu. Wykorzystują warstwę UI (odzwierciedlają poruszanie się użytkownika po aplikacji). Jeden test może obejmować konkretną ścieżkę biznesową, co może skutkować długim czasem wykonywania testu. Testów E2E nie powinno być wiele.

Testy automatyczne Magento 2.x

Magento w wersji 2.x dostarcza pakiet testów pozwalających w automatyczny sposób kontrolować jakość aplikacji. Są one dobrym uzupełnieniem procesu testowania. W skład tego zestawu wchodzą testy automatyczne:

  • statyczne – weryfikacja statyczna kodu pod kątem zgodności ze standardami kodowania w Magento 2 oraz dobrymi praktykami,
  • jednostkowe – testy weryfikujące poprawność kodu (tworzone w trakcie developmentu), wykonywane w izolacji,
  • jednostkowe JavaScript – weryfikują poprawność kodu po stronie frontowej aplikacji, wykorzystują framework Jasmine,
  • integracyjne – weryfikują kod w różnym stopniu izolacji. Dotykają niższego poziomu niż testy funkcjonalne. Są od nich szybsze, gdyż nie korzystają z przeglądarki,
  • funkcjonalne Magento Web API – pozwalają na testowanie Magento Web API z punktu widzenia aplikacji klienckiej,
  • funkcjonalne – testy czarnoskrzynkowe, wykonywane z punktu widzenia użytkownika.

Powyższe testy dotyczą części corowej Magento. Na pewno warto je poznać i rozważyć wykorzystanie w projekcie choć części z nich. Mogą przynieść wiele korzyści, ponieważ:

– sprawdzają core Magento, zatem mogą być pomocne przy tworzeniu nowych modułów (pozwalają weryfikować, czy nowo napisane moduły nie wpłynęły negatywnie na część corową aplikacji);

– stanowią materiał edukacyjny – na ich podstawie można zobaczyć jakie  w ogóle jest podejście do testów w Magento.

Z drugiej strony decydując się na rozpoznanie powyższych testów należy – szczególnie na początku – uzbroić się w cierpliwość i przeznaczyć na to więcej czasu. Rozeznanie tak dużej ilości testów jest czasochłonne.

Analizując powyższe testy automatyczne można też natrafić na trudności w postaci:

– konieczności dostosowania testów do swojej aplikacji. Być może niektóre elementy nie będą dostępne, zatem nie wszystkie testy będą mieć rację bytu;

– konieczności weryfikacji ustawień – testy przygotowane są dla określonego szablonu frontowego oraz używają konkretnego języka (np. w asercjach bazujących na treściach pojawiających się komunikatów). W aplikacji posiadającej inne ustawienia mogą pojawić się problemy z tego wynikające.

Testy w Magento 2 są ciekawym kandydatem do rozwijania ich w aspekcie piramidy testów. Przedstawione powyżej poziomy testów są na razie  jedynie bazą do budowania takiej piramidy.

Podsumowanie:

Stosowanie różnych poziomów testów w procesie testowania oprogramowania jest ważne i pomocne. Warto jak najwcześniej rozpoczynać testowanie w projekcie. Utrzymanie jakości produktu powinno być celem całego zespołu, gdyż nie wszystkie obszary są w zasięgu samego testera. Na pewno warto weryfikować rozwiązania, które są dostępne na rynku i mogą wspomóc proces testowania bądź też dostarczyć wiedzę, jak robić to jeszcze lepiej.

Nasi eksperci
/ Dzielą się wiedzą

24.12.2024

Nowe regulacje prawne / E‑commerce 2025 

E-Commerce

Rok 2025 przynosi ważne zmiany w regulacjach dotyczących handlu online, które mogą znacząco wpłynąć na funkcjonowanie sklepów internetowych w Polsce i całej Unii Europejskiej.    Lepsza ochrona konsumentów, transparentność i zrównoważony rozwój – to główne cele nadchodzących zmian. Sprawdźmy zatem kluczowe regulacje prawne...

16.12.2024

Trendy e-commerce 2025 – przed nami rok wyzwań, szans i optymalizacji 

E-Commerce

Rok 2025 w e-commerce to czas dostosowywania się do wyzwań gospodarczych i poszukiwania sposobów na zwiększenie efektywności działań. Nie oczekujemy rewolucji – kluczowym kierunkiem będzie optymalizacja procesów, usprawnianie obsługi zamówień i efektywne zarządzanie kosztami. Jeszcze większe znaczenie zyska sztuczna inteligencja, której...

05.12.2024

Pricing Omnichannel 360° / Kompleksowe zarządzanie cenami dla maksymalizacji zysków

Digital Experience

W czasach dynamicznych zmian rynkowych i coraz bardziej wymagających konsumentów, pricing stał się jednym z najważniejszych narzędzi strategicznych w biznesie. Odpowiednie zarządzanie cenami pozwala firmom nie tylko reagować na zmieniające się warunki, ale także maksymalizować zyski i budować przewagę konkurencyjną. Kompleksowe podejście do...

Ekspercka wiedza
dla Twojego biznesu

Jak widać, przez lata zdobyliśmy ogromną wiedzę - i uwielbiamy się nią dzielić! Porozmawiajmy o tym, jak możemy Ci pomóc.

Napisz do nas

<dialogue.opened>