W analizie błędów testowych najwięcej czasu tracimy zwykle nie na naprawę, tylko na zgadywanie, skąd naprawdę wziął się problem. Właśnie tu dobrze działa diagram rybiej ości: porządkuje potencjalne przyczyny, pokazuje zależności między wymaganiami, kodem, danymi testowymi i środowiskiem, a potem pomaga przejść od opinii do hipotez, które da się sprawdzić. W tym tekście pokazuję, kiedy ta metoda ma sens w QA, jak ją zbudować krok po kroku i jak nie zamienić jej w ładny, ale bezużyteczny rysunek.
Najważniejsze informacje, zanim zaczniesz analizę
- Metoda porządkuje hipotezy, ale sama nie potwierdza przyczyny źródłowej.
- W procesach QA najlepiej sprawdza się przy powtarzalnych defektach, flaky testach, regresjach i problemach środowiskowych.
- W software zwykle lepiej działa zestaw kategorii dopasowany do produktu niż sztywne 6M z produkcji.
- Najlepszy efekt daje połączenie analizy z danymi: logami, trendami defektów, wynikami testów i obserwacją procesu.
- Po analizie trzeba od razu wskazać właściciela, działanie korygujące i sposób weryfikacji skuteczności.
Kiedy ta metoda naprawdę pomaga w QA
W terminologii jakości spotkasz też nazwę cause-effect diagram; ISTQB używa jej jako synonimu diagramu przyczyn i skutków. W praktyce w QA sięgam po tę metodę wtedy, gdy problem ma więcej niż jedną możliwą przyczynę, a zespół zaczyna mówić o „pewnie to znowu środowisko” albo „na pewno coś się rozjechało w wymaganiach”. Taki rysunek szybko pokazuje, czy patrzymy na objaw, czy na mechanizm, który ten objaw wywołuje.
W testach oprogramowania metoda jest szczególnie użyteczna przy błędach, które wracają mimo poprawek. Myślę tu o niestabilnych testach automatycznych, regresjach po wdrożeniu, rozbieżnościach między stagingiem a produkcją, błędnych danych testowych czy problemach z integracją między usługami. ASQ klasyfikuje fishbone jako jedno z podstawowych narzędzi jakości, ale w QA największą wartość daje mi nie sama klasyfikacja, tylko to, że zmusza zespół do uporządkowania myślenia i wspólnego nazwania hipotez.
Nie używam tej metody do każdego drobiazgu. Jeśli mam jednorazowy, oczywisty błąd z jasnym fixem, analizowanie go „na siłę” zwykle tylko spowalnia pracę. Jeżeli jednak problem wpływa na release, kosztuje zespół kilka godzin tygodniowo albo wraca po kolejnych sprintach, diagram przyczynowo-skutkowy jest dobrym pierwszym krokiem. Żeby jednak zadziałał, trzeba go zbudować na jednym, konkretnym problemie, a nie na ogólnym poczuciu, że „coś jest nie tak”.
Gdy problem jest już dobrze nazwany, można przejść do samej konstrukcji analizy i zapisać ją tak, żeby nadawała się do rozmowy, a nie tylko do prezentacji.

Jak zbudować analizę dla jednego konkretnego defektu
Ja zaczynam zawsze od problemu, który da się opisać jednym zdaniem. Nie „mamy chaos w wydaniach”, tylko na przykład „po wdrożeniu wersji 2.8 rośnie liczba błędów 500 na endpointzie płatności”. Dopiero potem dobieram kategorie i rozpisuję możliwe przyczyny. Przy prostych przypadkach całość zamyka się w 20–30 minutach, przy incydencie produkcyjnym z kilkoma zespołami rezerwuję zwykle 60–90 minut, jeśli dane są pod ręką.
- Definiuję efekt - zapisuję problem w sposób mierzalny i bez interpretacji.
- Ustalam zakres - oddzielam jeden defekt od całego zbioru podobnych błędów.
- Dobieram kategorie - w QA najczęściej są to wymagania, kod, testy, dane, środowisko i proces.
- Zbieram hipotezy - zapisuję wszystkie sensowne możliwości, bez oceniania ich na starcie.
- Schodzę poziom niżej - przy każdej gałęzi pytam, co dokładnie mogło do tego doprowadzić.
- Weryfikuję danymi - logami, historią błędów, wynikami pipeline’u, obserwacją procesu, a nie samym przeczuciem.
Najważniejszy moment to ten, w którym zespół przestaje mówić o „przyczynach możliwych” i zaczyna pytać, które z nich są sprawdzalne. To odróżnia użyteczną analizę od burzy mózgów bez dalszego ciągu. Jeśli po pierwszym przebiegu gałęzie są zbyt ogólne, poprawiam problem statement i rysuję diagram jeszcze raz. Lepiej poświęcić dodatkowe 10 minut na doprecyzowanie niż później pracować na błędnym założeniu.
Żeby taka analiza nie była chaotyczna, potrzebujesz jeszcze sensownych kategorii, które pasują do środowiska QA i do samego produktu.
Jakie gałęzie przyczyn najczęściej sprawdzają się w testach i jakości
Klasyczne 6M pochodzi z produkcji, ale w oprogramowaniu zwykle przerabiam je na bardziej cyfrowe kategorie. Nie trzymam się ich dogmatycznie, bo w QA liczy się czytelność i możliwość działania, a nie wierność podręcznikowemu schematowi. Najczęściej buduję diagram wokół 5–7 głównych gałęzi, bo więcej zaczyna rozmywać obraz, a mniej często nie daje pełnego kontekstu.
| Kategoria | Co sprawdzam w praktyce | Typowy sygnał ostrzegawczy |
|---|---|---|
| Wymagania | Nieprecyzyjne akceptacje, brak edge cases, sprzeczne oczekiwania biznesu | Testy „przechodzą”, ale produkt nie działa tak, jak oczekuje użytkownik |
| Kod | Zmiany logiczne, błędne warunki, niedopatrzenia w obsłudze wyjątków | Defekt pojawia się po konkretnym commicie albo po merge’u |
| Testy | Luki w pokryciu, zła priorytetyzacja, zbyt płytkie scenariusze | Ten sam typ błędu wraca, bo nikt go wcześniej nie odtwarzał |
| Dane testowe | Nieaktualne rekordy, błędne seedy, brak reprezentatywnych przypadków | Problem widać tylko na części danych albo tylko w jednym środowisku |
| Środowisko | Konfiguracja, wersje zależności, różnice między stagingiem a produkcją | W jednym miejscu test przechodzi, w innym kończy się błędem |
| Proces | Brak review, zbyt krótki regres, pominięte checki przed release | Defekt nie wynika z jednego miejsca, tylko z łańcucha decyzji |
| Narzędzia i integracje | Flaky testy, problemy z CI/CD, API zależne od zewnętrznych usług | Awaria ma charakter niestabilny i trudno ją odtworzyć lokalnie |
W praktyce takie kategorie pomagają mi szybciej zauważyć, gdzie leży największa luka. Na przykład przy flaky testach nie zaczynam od kodu produktu, tylko od środowiska, danych i stabilności zależności. Przy regresjach po wdrożeniu większą wagę daję procesowi i coverage testów, bo bardzo często problem nie leży w pojedynczym defekcie, tylko w słabym punkcie całego pipeline’u. To prowadzi naturalnie do pytania, kiedy fishbone wystarczy, a kiedy lepiej sięgnąć po inne narzędzie.
Kiedy lepiej wybrać 5 Why, Pareto albo FMEA
Diagram przyczynowo-skutkowy dobrze porządkuje temat, ale nie jest jedynym narzędziem, którego potrzebuje zespół QA. Ja traktuję go jako wejście do głębszej analizy, a nie jej finał. Jeśli problem jest prosty, czasem wystarczy 5 Why. Jeśli potrzebuję zobaczyć, które defekty naprawdę najbardziej obciążają produkt, lepiej działa Pareto. A kiedy pracuję nad ryzykiem przed wystąpieniem awarii, patrzę raczej w stronę FMEA.
| Narzędzie | Kiedy używam | Co daje | Ograniczenie |
|---|---|---|---|
| Diagram przyczynowo-skutkowy | Gdy problem ma wiele możliwych źródeł | Porządkuje hipotezy i pokazuje pełny obraz | Nie potwierdza, która przyczyna jest prawdziwa |
| 5 Why | Gdy chcę zejść głębiej w jedną gałąź | Pomaga dojść do mechanizmu źródłowego | Przy złożonych problemach łatwo skręca w uproszczenie |
| Pareto | Gdy trzeba ustalić priorytety | Pokazuje, które defekty robią największą różnicę | Nie tłumaczy przyczyn, tylko ich wagę |
| FMEA | Gdy chcę ocenić ryzyko przed błędem | Pomaga przewidywać skutki i planować zabezpieczenia | Jest cięższe w utrzymaniu i wymaga większej dyscypliny |
W dobrze prowadzonym QA te metody się nie wykluczają. Najpierw porządkuję możliwe przyczyny, potem sprawdzam najważniejsze gałęzie 5 Why, a na końcu używam danych, żeby ustalić priorytet działań. Jeśli problem ma wpływ na kilka sprintów albo kilka obszarów systemu, takie połączenie zwykle daje znacznie lepszy efekt niż trzymanie się jednego narzędzia. Zanim jednak uznasz analizę za gotową, warto wiedzieć, gdzie zespoły najczęściej popełniają błędy.
Najczęstsze błędy zespołów QA przy analizie przyczyn
Najczęściej psuje się nie sama metoda, tylko sposób jej użycia. Widzę to regularnie w zespołach, które chcą mieć „dokument do audytu”, a nie realną odpowiedź na problem. Wtedy diagram robi się szeroki, ładny i kompletnie nieużyteczny. Poniżej zebrałem błędy, które pojawiają się najczęściej.
- Zbyt ogólny problem - jeśli efekt jest opisany jako „dużo błędów w systemie”, analiza rozjeżdża się już na starcie.
- Jedna kategoria za wszystko - gdy w jednej gałęzi lądują wymagania, kod i proces, rysunek przestaje coś porządkować.
- Przywiązanie do pierwszej hipotezy - zespół uznaje, że „to na pewno środowisko”, i przestaje weryfikować inne opcje.
- Brak danych - bez logów, historii zmian i trendów defektów diagram zostaje zbiorem opinii.
- Brak właściciela działania - analiza kończy się bez decyzji, więc problem wraca po kolejnym wydaniu.
- Mylenie objawu z przyczyną - np. flaky test jest objawem, a przyczyną może być niestabilne środowisko albo zła synchronizacja danych.
Największy błąd widzę wtedy, gdy zespół traktuje analizę jako jednorazowy rytuał. Tymczasem ona ma sens tylko wtedy, gdy prowadzi do decyzji: co poprawiamy, kto to robi i jak sprawdzimy, że problem nie wróci. To właśnie ten moment odróżnia dobrą praktykę QA od samego „rysowania jakości”.
Jak zamienić analizę w poprawkę, która naprawdę zamyka temat
Jeżeli chcę, żeby analiza miała efekt poza spotkaniem, zamykam ją w bardzo konkretnym rytmie. Najpierw wybieram 1–3 najbardziej prawdopodobne gałęzie i dla każdej ustalam, jakie dane mogą ją potwierdzić lub obalić. Potem przypisuję właściciela działania, termin i sposób sprawdzenia skuteczności. Bez tego nawet najlepszy diagram zostaje tylko notatką.
- Ustal jeden mierzalny wskaźnik - np. spadek liczby błędów 500, mniejsza liczba flaky testów albo krótszy czas naprawy regresji.
- Dodaj działanie do backlogu lub planu sprintu - inaczej poprawka znika w codziennej pracy.
- Rozdziel działania doraźne od systemowych - szybki hotfix to nie to samo co zmiana procesu testowego.
- Sprawdź efekt po 1–2 sprintach albo po 2–3 kolejnych wdrożeniach, jeśli rytm zespołu jest wolniejszy.
- Uzupełnij regresję - jeżeli problem był testowalny, powinien zostać zabezpieczony testem lub checkiem w pipeline.
Ja traktuję taki finał analizy jako prosty kontrakt: mamy przyczynę, mamy działanie, mamy kryterium sukcesu. Jeśli któregoś z tych elementów brakuje, ryzyko powrotu problemu rośnie bardzo szybko. Właśnie dlatego ta metoda najlepiej działa nie jako samodzielny rysunek, ale jako część szerszego procesu jakości, w którym każda hipoteza kończy się decyzją, a każda decyzja ma swój dowód skuteczności.