Seria: QA Leadership · Artykuł 2 z 9

Wchodzisz na 1:1 z Engineering Managerem. Pada jedno pytanie: „Ile z tych bugów łapiecie zanim trafią do klienta?" - i rozmowa zaczyna się sypać. Nie dlatego, że źle testujecie. Dlatego, że nie macie jednej liczby.

EM„Słuchaj - jak skuteczni jesteście właściwie w tym testowaniu? Ile z tych bugów łapiecie, zanim trafią do klienta?"
QA„No... znaleźliśmy 47 bugów w tym sprincie."
EM„Tak, ale ile uciekło?"
QA„Ee... dwadzieścia dwa."
EM„To znaczy, że połowa was omija?"
QA„No... nie do końca, bo tamte były mniejsze..."

I wtedy rozmowa zaczyna się sypać. Nie dlatego, że źle testujecie. Dlatego, że nie macie liczby, która odpowiada na to pytanie wprost. Jednej. Konkretnej. Gotowej.

Ta liczba istnieje. Nazywa się Defect Detection Ratio - i jest tematem tego artykułu.

Czym jest DDR - i czym nie jest

Defect Detection Ratio to odsetek defektów wykrytych przez QA przed trafieniem na produkcję w stosunku do wszystkich defektów znalezionych łącznie - zarówno przed, jak i po releasie. Innymi słowy: spośród wszystkich problemów, które ostatecznie wyszły na jaw - ile złapaliście sami, zanim zobaczył je klient?

To jest metryka skuteczności procesu testowania. Nie aktywności. Odpowiedź na pytanie: jak dobrze działamy jako filtr przed produkcją?

DDR pyta o coś fundamentalnie innego niż pass rate czy coverage: czy Twój proces testowania faktycznie wyłapuje to, co ważne?

DDR to nie to samo co pass rate. Możesz mieć pass rate 99% i DDR 50% - jeśli testy nie pokrywają obszarów, w których siedzą bugi.

DDR to nie to samo co coverage. Możesz przelecieć przez 90% kodu i nie sprawdzić ani jednego krytycznego scenariusza biznesowego. Dotknięcie to nie to samo co weryfikacja.

Od prostej do zaawansowanej formuły

Wersja podstawowa

Formuła podstawowa
DDR = Bugi przed releasem ÷ (Bugi przed + Bugi po)
DDR = 40 ÷ (40 + 10) = 40 ÷ 50 = 80%
Osiem na dziesięć problemów złapanych przed klientem. Jeden na pięć uciekł. To jest Wasz punkt startowy.

Wersja z wagami krytyczności

Podstawowa formuła traktuje każdego buga jednakowo. Ale bug blokujący płatności waży więcej niż literówka w tooltipie. Warto rozszerzyć formułę o wagi.

Formuła ważona
DDR(ważony) = Σ(waga × bugi_pre) ÷ Σ(waga × bugi_pre + waga × bugi_post)
Zaczynajcie od wersji podstawowej. Ważoną wprowadzajcie gdy macie stabilny rytm pomiaru i dane historyczne.
PriorytetPrzedPoWagaWażone przedWażone po
Critical23×4812
High85×21610
Medium202×1202
Low100×0.550
Suma4010-4924
DDR(ważony) = 49 ÷ (49 + 24) = 49 ÷ 73 = 67%
Uwaga na wynik. Podstawowy DDR wynosił 80% - i wyglądał dobrze. Ważony wynosi 67% - i ujawnia, że większość bugów krytycznych uciekała na produkcję. To jest zupełnie inna historia. I właśnie tę historię warto opowiedzieć.

Kalkulator DDR

Wpisz swoje dane i sprawdź wynik. Włącz tryb ważony, by uwzględnić krytyczność bugów.

Oblicz swój DDR
Wersja podstawowa lub ważona - Twój wybór
Tryb ważony (uwzględnij priorytety bugów)
Critical ×4
pre
post
High ×2
pre
post
Medium ×1
pre
post
Low ×0.5
pre
post
80%
Defect Detection Ratio
Solidny proces - co kryje się w tym co ucieka?
40 ÷ (40 + 10) = 80.0%

Jak czytać wynik - progi i kontekst

DDR nie jest absolutną prawdą. Jest wskaźnikiem - i jak każdy wskaźnik, wymaga interpretacji. Ale pewne progi branżowe warto znać jako punkt odniesienia.

0%
70%próg alarmowy
85%próg dobry
95%próg doskonały
100%
Poniżej 70%
Sygnał alarmowy. Więcej niż 3 na 10 bugów wychodzi na produkcji. Zbadaj przyczyny.
70-85%
Poziom przeciętny. Dobry punkt startowy. Jest z czego rosnąć.
85-95%
Solidny proces. Pytanie: co kryje się w tych kilku procentach, które uciekają?
Powyżej 95%
Doskonały wynik - ale sprawdź, czy dane są kompletne. Wysoki DDR może być artefaktem niepełnych danych.

Kontekst branżowy ma znaczenie. W systemach finansowych i medycznych 90%+ to minimum, nie aspiracja. W szybko iterującym startupie 80% przy wysokiej częstotliwości releasów może być świadomym, akceptowalnym kompromisem.

Dlaczego nie możesz zacząć od dziś - dane historyczne

Jeden z najczęstszych błędów przy wdrażaniu DDR: zespół zaczyna mierzyć od bieżącego sprintu i po miesiącu ma jeden punkt danych. Jeden. Z którego nie da się wyciągnąć żadnego wniosku.

DDR bez historii jest jak mapa bez skali. Wiesz, że jesteś gdzieś - ale nie wiesz, w jakim kierunku idziesz i jak szybko.

Zanim zaczniesz mierzyć “od teraz”, zrób coś znacznie cenniejszego: odtwórz dane wstecz. Większość organizacji ma wszystkie niezbędne dane - tylko nikt ich jeszcze nie połączył w ten konkretny sposób.

Skąd wziąć dane historyczne

Jira / tracker
Historia bugów z datą i środowiskiem. Export do CSV + JQL po dacie i typie.
Główne źródło
Support tickety
Freshdesk, Zendesk, ServiceNow. Tu siedzą problemy, które nigdy nie trafiły do Jiry.
Uzupełnienie
Monitoring / alerty
PagerDuty, Datadog, Grafana. Incydenty z dokładnym timestampem.
Uzupełnienie
Historia deploymentów
Git tags, CI/CD pipeline, changelog. Kiedy lądował każdy release.
Kontekst
project = MYAPP AND issuetype = Bug AND created >= "2025-01-01"
ORDER BY created ASC

Sezonowość i prawidłowości

Gdy masz 12 miesięcy danych, zaczynasz widzieć prawidłowości, których intuicja nie wychwyci.

Sezonowość releasów
Piki release'owe przed Q4, Black Friday, zamknięciem roku. Znając rytm - planujesz pojemność testową z wyprzedzeniem, nie gasząc pożarów.
Rotacja i onboarding
Nowy QA przez pierwsze dwa miesiące łapie mniej niż senior. Bez danych nie wiesz, czy spadek DDR to problem procesowy czy efekt onboardingu.
Typ feature'u
Nowe integracje, duże refaktoringi, nowe moduły - DDR spada przy konkretnych typach zmian. Możesz to przewidywać i kierować wysiłek testowy.
Wzorzec pierwszego release'u
Pierwszy deployment miesiąca ma statystycznie więcej escaped bugów. Skumulowane zmiany + środowisko produkcyjne "odeszło" od stanu testowego.

Minimum viable approach - jak zebrać dane praktycznie

1
Export bugów z Jiry do CSV
Potrzebujesz: ID, data created, środowisko (test/staging/prod), priorytet. JQL powyżej + export.
2
Stwórz tabelę release'ów
Data + numer wersji. Jeśli nie masz jej zebranej - git tags lub historia CI/CD to dadzą.
3
Przypisz każdy bug do release'u
Bug stworzony między release'em A a B → pre-release dla B. Bug po B a przed C, raportowany przez monitoring → escaped z B.
4
Oblicz DDR per release i narysuj wykres
4-6 releasów w jednej tabeli. Masz historię, trend i pierwsze wzorce. To ćwiczenie zajmuje 2-4 godziny. Warte każdej minuty.

Case study - od 74% do 94% w cztery kwartały

Siedmioosobowy zespół (5 devów, QA, automatyk), platforma SaaS dla klientów korporacyjnych. Na początku roku DDR 74% - trzy na dziesięć bugów ląduje na produkcji.

DDR - trend przez cztery kwartały
Każdy kwartał: jedna konkretna zmiana procesowa
+20 pp. w rok
DDR (%) Zmiana procesowa
Q1
Punkt startowy
Diagnoza - zanim cokolwiek zmienili, zmierzyli 74%
Analiza 6 miesięcy historii pokazała 3 klastry uciekinierów: integracja z API płatności, edge case'y modułu raportowego, błędy konfiguracyjne po deploymencie. Testy jednostkowe - piękne. Ale żaden nie dotykał tych obszarów.
Q2
Pierwsza interwencja
Testy kontraktowe + rozbudowa E2E 84%
Wdrożono testy kontraktowe dla API płatności i rozbudowano E2E o scenariusze z modułu raportowego. Skok o 10 pp. w jeden kwartał - tylko dzięki wiedzy, gdzie nie testują.
Q3
Zmiana procesu
Nowa definicja "done" 90%
Żaden feature nie wchodzi do QA bez minimalnego zestawu testów integracyjnych napisanych przez developera. QA przestało być bramkarzem na końcu - stało się partnerem przez cały sprint.
Q4
Pełny obraz
Incydenty z monitoringu wliczone do mianownika 94%
Pozornie mała zmiana - do "bugów po releasie" dodano incydenty z supportu i monitoringu. Liczba wzrosła, ale DDR utrzymał się - bo równolegle rósł pre-release. Teraz mieli pełny, wiarygodny obraz.
„Każde 5 punktów procentowych DDR to średnio 4 mniej escaped bugów na kwartał, przy koszcie 8 godzin każdy - to jest 32 godziny seniorów. Na jeden kwartał." - Budżet zatwierdzony.

Kiedy DDR kłamie - trzy pułapki

Każda metryka ma słabe strony. DDR ma trzy konkretne - i warto je znać, zanim zaczniesz jej ufać ślepo.

Niekompletna definicja "po releasie"
Jeśli do licznika wchodzą tylko tickety z Jiry oznaczone przez QA - niedoszacowujesz escaped defectów. Co z incydentami supportu? Alertami monitoringu? Błędami w Splunku? Niekompletny mianownik = zawyżony DDR = pozorna doskonałość.
Bugi w kodzie ≠ wszystkie problemy
Zła konfiguracja produkcyjna. Padła integracja. Błędny feature flag. Żaden z nich nie jest "bugiem w kodzie" - ale każdy dotknął klientów. Jeśli DDR mierzy tylko defekty kodu - nie mierzysz całości ryzyka. (Więcej w artykule 3: Escaped Bugs & Problems.)
Wysoki DDR, ale tylko trywialnych bugów
Możesz mieć DDR 95% i regularnie wypuszczać krytyczne bugi - jeśli testy są świetne w wychwytywaniu literówek, a słabe w krytycznych ścieżkach biznesowych. Dlatego zawsze zestawiaj DDR z rozkładem priorytetów. Jeśli Twoje 95% to głównie Medium i Low - wróć do formuły ważonej.

DDR w rękach biznesu - najniebezpieczniejsza pułapka

Tej pułapki nie znajdziesz w podręczniku ISTQB. A jest najgroźniejsza, bo dotyka nie metody pomiarowej, lecz sposobu interpretacji przez osoby, które nie znają kontekstu.

Wyobraź sobie: pokazujesz Product Ownerowi DDR 94%. Jest zadowolony. Mówi: „świetnie, jesteśmy bezpieczni, releasujemy.” Ale nie wie, że w tym samym kwartale liczba releasów wzrosła z 3 do 10.

KwartałDDRReleasówEscaped / ReleaseEscaped łącznie
Q188%32.47
Q290%52.110
Q392%81.814
Q494%101.212

DDR rośnie przez wszystkie cztery kwartały. Wygląda świetnie. Ale liczba escaped bugów w liczbach bezwzględnych rosła przez Q1-Q3. Klient przez trzy kwartały odczuwał więcej problemów na produkcji - mimo rosnącego DDR.

⚠️ Wysoki DDR bez kontekstu daje fałszywe poczucie bezpieczeństwa

DDR nigdy nie działa samotnie. Ma pełny sens tylko razem z Escaped per Release (artykuł 5) i Number of Releases (artykuł 6). Prezentując DDR stakeholderom - zawsze pokazuj go z co najmniej jedną metryką kontekstową.

Jak wdrożyć DDR w czterech krokach

Dość teorii. Oto co zrobić w najbliższym tygodniu.

1
Ustal definicję i zapisz ją
Odpowiedz pisemnie na trzy pytania: co liczy się jako "bug przed releasem" (wszystkie środowiska testowe? tylko staging?), co liczy się jako "bug po releasie" (tylko Jira? także monitoring i support?), jaka jest granica czasowa dla bugów "po releasie" (tydzień? sprint? kwartał?). Bez tego DDR dwóch różnych zespołów nie jest porównywalny - nawet w tej samej organizacji.
2
Wybierz źródło danych
Idealnie: Jira + monitoring (Datadog/PagerDuty) + support tickety. Na start: Jira + ręczny log incydentów w Google Sheets. Brzmi prymitywnie - działa. Ważne, żeby zacząć.
3
Ustal rytm pomiaru
Per sprint - dobry start, szybki feedback, dużo szumu. Per release - bardziej naturalne, lepsze do trendów i raportowania biznesowego. Rekomendacja: per sprint wewnętrznie, per release do stakeholderów.
4
Pierwsza prezentacja - zacznij od historii
Nie zaczynaj od DDR Q1. Zrób retroaktywne obliczenie za ostatnie 3 kwartały. Trend jest znacznie silniejszym argumentem niż pojedynczy punkt. *„Patrząc wstecz na ostatnie trzy kwartały, nasz defect detection ratio wyglądał tak: [wykres]. Trend jest rosnący - i chcę teraz ustalić, jak go dalej poprawiać."*

DDR w rozmowie z biznesem

Trzy konteksty. Trzy poziomy szczegółowości. Jeden wskaźnik u podstawy każdej rozmowy.

Sprint Review „Defect Detection Ratio tego sprintu wynosi 88% - to znaczy, że 9 na 10 znalezionych problemów złapaliśmy zanim trafił do klientów. Jeden uciekł i jest już zaadresowany."
1:1 z EM „Trend DDR przez ostatni rok rośnie z 74% do 94%. Każdy punkt procentowy to realnie kilka godzin mniej na hotfixy. Chcę zaproponować konkretną zmianę, która powinna podbić go o kolejne 3-4 punkty."
Zarząd „W ciągu ostatnich czterech kwartałów poprawiliśmy skuteczność wykrywania defektów przed produkcją z 74% do 94%. Przełożyło się to na spadek escaped bugów o ponad 60% - szacuję to na zaoszczędzone 200+ godzin pracy seniorów w skali roku."

Co DDR mówi - i czego nie mówi

✓ DDR mówi Ci
  • Jak skuteczny jest Twój proces testowania jako całość
  • Czy poprawiasz się w czasie (trend kwartalny)
  • Gdzie jest granica między tym, co łapiesz, a tym, co ucieka
  • Jak uzasadnić inwestycję w automatyzację lub dodatkowe capacity
✗ DDR nie mówi Ci
  • Czy klient odczuwa poprawę (bez kontekstu liczby releasów)
  • Gdzie konkretnie w systemie uciekają bugi
  • Czy kod trafiający do testów jest dobrej jakości (to mierzy Issues per Release)
  • Jak szybki i sprawny jest Twój proces (to inna metryka)
Używaj DDR jako jednej z pięciu liter alfabetu. Razem tworzą słowo. Osobno - to tylko literki.

W następnym artykule

Artykuł trzeci tej serii dotyczy Escaped Bugs & Problems - i zaczyna się od pytania, które większość QA zadaje zbyt rzadko: czy naprawdę mierzymy wszystko, co ucieka na produkcję?

Spoiler: prawie nigdy. I to, co pomijamy, jest często ważniejsze niż to, co liczymy.

Linki w serii

Seria: Metryki QA, które biznes chce słyszeć
  • 01
    Diagnoza, trzy filary, pięć metryk, model mapowania QA → KPI
  • 02
    Defect Detection Ratio - głęboki przewodnik czytasz teraz
    Formuła, progi, dane historyczne, sezonowość, pułapki, gotowe zdania
  • 03
    Taksonomia, zbieranie danych, koszt każdego typu, jak raportować
  • 04
    Wdrożenie od zera, związek z procesem wytwórczym, rozmowa z EM
  • 05
    Wykrywanie skoków, framework śledztwa, działania prewencyjne
  • 06
    Number of Releases - metryka kontekstowa
    Dlaczego 3 bugi przy 2 releasach to dramat, a przy 15 to sukces
  • 07
    Release Confidence Score krok po kroku
    Trzy modele obliczania, wdrożenie, przykłady z praktyki
  • 08
    Storytelling z metrykami - jak budować narrację
    Jak zamienić tabelę liczb w argument biznesowy
  • 09
    3 antywzorce, które niszczą wiarygodność QA
    Za dużo metryk, brak kontekstu, żargon - i jak unikać