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ą

Multichannel Retail Illustration
23.07.2024

Sprzedaż wielokanałowa / Klucz do sukcesu w erze cyfrowej

E-Commerce

W erze cyfrowej transformacji sprzedaż wielokanałowa stała się kluczowym elementem strategii biznesowej dla firm pragnących utrzymać swoją pozycję rynkową i napędzać wzrost. Dla właścicieli dużych przedsiębiorstw, którzy rozważają ekspansję na nowe kanały sprzedaży, szczególnie w przestrzeni online, zrozumienie i wdrożenie tej...

16.07.2024

Analityka chatbota / Kluczowe metryki

AI

Chatboty mają ogromny potencjał do wykonywania imponujących zadań. Mogą poprawić jakość obsługi klienta, obniżyć koszty operacyjne, a także zapewnić Twojej firmie interaktywną obecność przez całą dobę, siedem dni w tygodniu. Aby jednak w pełni wykorzystać ich możliwości, trzeba dokładnie wiedzieć, jak mierzyć skuteczność...

09.07.2024

Ile kosztuje sklep internetowy na Magento?

E-Commerce

Magento 2 to jedna z najbardziej popularnych platform e-commerce na świecie. Dzięki swojej elastyczności posiada niemalże nieograniczone możliwości dostosowania do potrzeb biznesu, zarówno w sektorze B2C, jak i B2B. Dostępne są trzy wersje rozwiązania – Magento Open Source, Adobe Commerce i Adobe Commerce Cloud, które różnią się między...

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>