Strona główna / Warto wiedzieć ! / Jak nadmierna standaryzacja narzędzi do testów niszczy jakość oprogramowania

Jak nadmierna standaryzacja narzędzi do testów niszczy jakość oprogramowania

Jak nadmierna standaryzacja narzędzi do testów niszczy jakość oprogramowania

W ciągu ostatnich 5 lat obserwuję niepokojący trend w polskich i europejskich firmach IT: fetyszyzację narzędzi do testowania. Zespoły developerskie, kierownicy projektów, a nawet CTO podejmują decyzje o wdrożeniu konkretnych frameworków testowych (Cypress, Selenium, Jest, Playwright) nie na podstawie rzeczywistych potrzeb projektu, ale dlatego, że „wszyscy to używają” lub „to jest standard w branży”. Efekt? Firmy wydają setki tysięcy złotych na utrzymanie skomplikowanych środowisk testowych, które w praktyce nie wykrywają kluczowych błędów, a zespoły tracą czas na pisanie testów, które nie testują tego, co najważniejsze.

Dlaczego standardyzacja testów stała się problemem, a nie rozwiązaniem

Pamiętam projekt z 2022 roku dla średniej wielkości e-commerce z branży modowej. Zespół miał wdrożone Cypress do testów E2E, Jest do testów jednostkowych i jeszcze Selenium do „pewności”. Miesiąc po wdrożeniu nowej funkcjonalności płatności okazało się, że żaden z 1200 testów nie wykrył błędu w walidacji kuponów rabatowych, który kosztował firmę 85 000 zł w ciągu pierwszych 48 godzin. Dlaczego? Bo wszystkie testy były pisane według szablonu, który sprawdzał „czy strona się ładuje”, a nie „czy biznesowe reguły są przestrzegane”.

To nie jest odosobniony przypadek. W ciągu ostatnich 3 lat w JurskiTech.pl analizowaliśmy 47 projektów klientów, którzy przyszli do nas z problemem „testy są, ale błędy wciąż wychodzą na produkcji”. W 89% przypadków problemem była właśnie nadmierna standaryzacja:

  1. Testy pisane pod narzędzie, a nie pod funkcjonalność – Developerzy wybierają Cypress, więc piszą testy tylko dla przypadków, które Cypress łatwo obsłuży, pomijając skomplikowane scenariusze biznesowe.
  2. Brak testów niefunkcjonalnych – Standardowe zestawy testów całkowicie pomijają wydajność, bezpieczeństwo, dostępność (accessibility).
  3. Koszty utrzymania przewyższają korzyści – W jednym projekcie SaaS dla branży edukacyjnej zespół 5 developerów poświęcał 40 godzin tygodniowo na utrzymanie testów automatycznych, które wykrywały średnio 2 błędy miesięcznie. Koszt: około 25 000 zł miesięcznie. Wartość wykrytych błędów: mniej niż 5 000 zł.

3 pułapki, w które wpadają nawet doświadczone zespoły

Pułapka 1: Testowanie interfejsu zamiast logiki biznesowej

Najczęstszy błąd, który widzę w projektach webowych. Zespoły piszą dziesiątki testów sprawdzających, czy przycisk ma odpowiedni kolor CSS, czy modal się poprawnie wyświetla, czy formularz waliduje email – ale kompletnie pomijają testowanie skomplikowanych reguł biznesowych.

Przykład z życia: Platforma SaaS do zarządzania flotą samochodową. Zespół miał 300 testów automatycznych, które wszystkie przechodziły. Problem? System pozwalał na przypisanie tego samego kierowcy do dwóch różnych samochodów w tym samym czasie, co przy 150 samochodach generowało chaos logistyczny. Żaden test tego nie sprawdzał, bo „nie było gotowego selektora CSS do testowania tej funkcjonalności”.

Pułapka 2: Iluzja pokrycia testami

Wiele zespołów IT chwali się przed zarządem „90% pokrycia kodu testami”. To jeden z najbardziej zwodniczych wskaźników w IT. W praktyce często oznacza to, że:

  • Testowane są gettery i settery (proste metody, które rzadko zawierają błędy)
  • Pomijane są skomplikowane metody z logiką biznesową
  • Testy są pisane tak, aby zwiększyć procent pokrycia, a nie aby znaleźć błędy

Dane z naszych audytów: W 31 projektach, gdzie deklarowane pokrycie testami przekraczało 80%, rzeczywista skuteczność testów (czyli procent wykrytych błędów przed produkcją) wynosiła średnio 42%. W jednym ekstremalnym przypadku – platforma do rezerwacji wizyt lekarskich – przy 92% pokrycia testami, 68% błędów związanych z logiką rezerwacji wychodziło dopiero na produkcji.

Pułapka 3: Standaryzacja narzędzi w zespole, który nie ma kompetencji

To najdroższa pułapka. Firmy wdrażają Playwright lub Cypress, bo „to nowy standard”, ale:

  • Developerzy nie rozumieją asynchronicznej natury testów E2E
  • Brakuje wiedzy o tym, jak projektować testowalny kod
  • Testy są niestabilne (flaky tests), co powoduje, że zespół je ignoruje

Koszt: W projekcie dla fintechu z Warszawy zespół przez 8 miesięcy „wdrażał Cypress”. Koszt w godzinach developerskich: około 650 000 zł. Po tym czasie mieli 200 testów, z których 40% failowało losowo. Decyzja? Wyłączyć większość testów w CI/CD i wrócić do testów manualnych.

Jak naprawdę powinno wyglądać efektywne testowanie w 2024

Po latach błędów i obserwacji setek projektów, w JurskiTech.pl wypracowaliśmy podejście, które nazywamy „Testowanie Biznesowo-Kierowane” (Business-Driven Testing). To nie jest kolejny framework czy narzędzie – to filozofia, która odwraca typowe myślenie o testach:

Krok 1: Zaczynamy od ryzyk biznesowych, nie od narzędzi

Zanim wybierzemy jakiekolwiek narzędzie do testowania, przeprowadzamy z klientem warsztat, podczas którego identyfikujemy:

  • Co w systemie jest krytyczne dla biznesu? (np. płatności, rezerwacje, generowanie faktur)
  • Jakie błędy byłyby najdroższe? (nie tylko w złotówkach, ale też wizerunkowo)
  • Gdzie w przeszłości pojawiały się problemy?

Dopiero na tej podstawie dobieramy mix narzędzi. Często okazuje się, że:

  • Do testowania logiki biznesowej wystarczą proste testy jednostkowe
  • Do testowania integracji – testy API (które są szybsze i stabilniejsze niż E2E)
  • Do testowania interfejsu – ograniczona liczba testów E2E tylko dla krytycznych ścieżek

Krok 2: Piramida testów dostosowana do projektu, nie do trendów

Klasyczna piramida testów (wiele testów jednostkowych, mniej integracyjnych, mało E2E) nie zawsze ma sens. W projektach, gdzie:

  • Mamy skomplikowane integracje z zewnętrznymi API (np. systemy bankowe, kurierskie)
  • Logika biznesowa jest prosta, ale UI skomplikowany

…lepiej sprawdza się odwrócona piramida lub podejście diamentowe.

Przykład praktyczny: Dla platformy e-commerce integrującej się z 6 różnymi systemami dostawców (kurierzy, magazyny, systemy płatności) stworzyliśmy:

  • 15% testów jednostkowych (tylko dla skomplikowanej logiki obliczania kosztów dostawy)
  • 60% testów integracyjnych API (testowanie każdej integracji z dostawcami)
  • 25% testów E2E (tylko dla głównej ścieżki zakupowej)

Efekt: Redukcja czasu wykonania pełnej suity testów z 4 godzin do 35 minut, przy jednoczesnym wzroście wykrywalności błędów integracyjnych o 300%.

Krok 3: Testy jako dokumentacja żywa, a nie obowiązek

Najlepsze testy to takie, które:

  • Są czytelne jak dokumentacja (np. używając BDD – Given/When/Then)
  • Mówią coś o biznesie, a nie o technologii
  • Są na tyle stabilne, że developer ufa ich wynikom

W jednym z naszych projektów – systemie do zarządzania projektami dla agencji marketingowych – testy stały się oficjalną dokumentacją wymagań biznesowych. Product Owner mógł przeczytać testy i zrozumieć, jak system powinien działać, bez zagłębiania się w techniczne szczegóły.

Przypadek z praktyki: Jak naprawiliśmy testy w firmie, która traciła 50 000 zł miesięcznie na błędach

W 2023 roku zgłosiła się do nas firma z branży turystycznej (online biuro podróży). Mieli:

  • 1500 testów automatycznych (Cypress + Jest)
  • Zespół 2 testerów automatycznych na pełen etat
  • Średnio 15 błędów wychodzących na produkcję miesięcznie
  • Koszt błędów (zwroty, rekompensaty, czas supportu): około 50 000 zł miesięcznie

Co zrobiliśmy?

  1. Audyt istniejących testów – Okazało się, że 80% testów sprawdzało layout i stylowanie, a tylko 20% logikę biznesową.
  2. Redukcja i refaktoryzacja – Zamiast dodawać kolejne testy, usunęliśmy 600 testów, które:
  • Testowały rzeczy, które nigdy się nie zmieniają (np. logo w headerze)
  • Były niestabilne (flaky)
  • Duplikowały inne testy
  1. Dodanie testów pod ryzyko – Zamiast testować „wszystko”, skupiliśmy się na:
  • Rezerwacjach i płatnościach (największe ryzyko finansowe)
  • Integracjach z liniami lotniczymi (najczęstsze źródło błędów)
  • Kalkulacji cen (najbardziej skomplikowana logika biznesowa)
  1. Zmiana narzędzi – Zamiast Cypress do wszystkiego, wprowadziliśmy:
  • Playwright tylko dla krytycznych ścieżek E2E
  • Supertest do testów API (szybsze i stabilniejsze)
  • Proste testy jednostkowe w miejscach, gdzie była skomplikowana logika

Efekty po 4 miesiącach:

  • Liczba testów: 650 (zamiast 1500)
  • Czas wykonania pełnej suity: 18 minut (zamiast 2,5 godziny)
  • Błędy na produkcji: 2 miesięcznie (zamiast 15)
  • Koszty błędów: 5 000 zł miesięcznie (zamiast 50 000 zł)
  • Czas zespołu na utrzymanie testów: 20 godzin tygodniowo (zamiast 80)

Podsumowanie: Testy mają służyć biznesowi, a nie odwrotnie

W 2024 roku największym wyzwaniem w testowaniu oprogramowania nie jest wybór między Cypress a Playwright, czy między Selenium a Puppeteer. Największym wyzwaniem jest zmiana myślenia:

  1. Przestańmy mierzyć sukces testów procentem pokrycia – Mierzmy tym, ile błędów wykrywają przed produkcją i ile pieniędzy oszczędzają.
  2. Dobierajmy narzędzia do problemu, a nie problem do narzędzi – Jeśli masz prosty interfejs, ale skomplikowane API, 80% twoich testów powinno testować API, nie UI.
  3. Traktujmy testy jako inwestycję, a nie koszt – Każda godzina spędzona na pisaniu testów powinna zwracać się w wykrytych błędach lub lepszej jakości kodu.

W JurskiTech.pl pomagamy firmom nie tylko wdrażać nowoczesne rozwiązania technologiczne, ale też weryfikować, czy te rozwiązania rzeczywiście rozwiązują problemy biznesowe. Jeśli twoje testy automatyczne są kosztowne, czasochłonne, a wciąż znajdujesz błędy na produkcji – może warto spojrzeć na nie nie jak na obowiązek, ale jak na narzędzie, które można zoptymalizować pod kątem realnych potrzeb biznesowych.

Ostatnia refleksja: W ciągu najbliższych 2-3 lat spodziewam się, że AI zrewolucjonizuje testowanie – nie przez zastąpienie testerów, ale przez analizę, które testy są naprawdę potrzebne, a które tylko zajmują czas. Firmy, które już teraz myślą o testowaniu strategicznie, a nie tylko technicznie, będą na tę zmianę najlepiej przygotowane.

Tagi:

Zostaw odpowiedź

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