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ą

31.01.2023

Twoi klienci mówią w różnych językach? / Sprawdź wszystkie touchpointy!

E-Commerce

Komunikacja jest ważnym elementem w biznesie, szczególnie jeśli chodzi o rozmowy z klientami. Jednak warto zadać sobie pytanie, czy Ty i Twoi klienci mówicie tym samym językiem? Żyjemy przecież w wielokulturowym świecie i o ile oferta Twojej firmy nie jest skierowana do odizolowanego od cywilizacji plemienia, może się okazać, że nie ze...

System Integration based on AWS services
22.12.2022

Integracje systemów w chmurze – wszystko, co musisz wiedzieć na start

AWS

Firmy coraz częściej migrują swoją infrastrukturę do chmury publicznej — serwery, pamięci masowe, systemy CRM… Kolejnym elementem w tej cloudowej układance może być integracja systemów informatycznych. Jest to bardzo ciekawa opcja dla firm, które planują lub zaczęły korzystać z usług chmurowych. W tym artykule pokażemy Ci na...

16.12.2022

Transformacja handlu w branży meblarskiej / Znaczenie i kierunki rozwoju

E-Commerce

Cyfryzacja sprzedaży jest jedną z najważniejszych zmian, które czekają branżę meblarską w nadchodzącym czasie. Chociaż meble wciąż chętnie kupowane są stacjonarnie, zwiększone zainteresowanie kanałami online jest zauważalne także w tym sektorze. Digitalizacja to szereg zmian dotyczących całej organizacji – obejmuje między innymi...

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>