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ą

12.03.2025

Internet Rzeczy (IoT) w budownictwie: Bezpieczeństwo i optymalizacja procesów na placu budowy dzięki danym w czasie rzeczywistym 

Digital Experience

Wyobraź sobie plac budowy przyszłości: dźwigi poruszają się z precyzją sterowaną danymi w czasie rzeczywistym, pracownicy noszą inteligentne kaski monitorujące ich bezpieczeństwo, a zużycie materiałów budowlanych jest śledzone z dokładnością co do centymetra.   To nie wizja science-fiction, ale rzeczywistość, która staje się...

Replatforming CMS
25.02.2025

CMS replatforming / Jaki system CMS wybrać

Portale Internetowe

Czy Twoja firma zmaga się z nieefektywnym zarządzaniem treściami w różnych kanałach cyfrowych? Aktualizacja informacji zajmuje mnóstwo czasu, a szybkie dostosowywanie stron do zmieniającej się oferty jest wyzwaniem? Być może korzystasz z rozwiązań, które nie są wystarczające dla szybko rozwijającego się biznesu i zastanawiasz się nad...

18.02.2025

Co czeka branżę meblarską w 2025 roku?

E-Commerce

Stabilny wzrost e-commerce w branży meblarskiej Rok 2024 w branży meblarskiej nie należał do najłatwiejszych, a w mediach było głośno o problemach wielu firm z tego sektora. Natomiast jeśli chodzi o e-commerce, to miniony rok należy uznać za udany. W listopadzie odnotowano wzrost sprzedaży w kategorii „meble, RTV, AGD” do 21,3% w...

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>