{"id":411,"date":"2025-12-23T17:10:35","date_gmt":"2025-12-23T16:10:35","guid":{"rendered":"https:\/\/kapqka.com\/?p=411"},"modified":"2025-12-23T17:27:40","modified_gmt":"2025-12-23T16:27:40","slug":"dlaczego-testy-przechodza-a-produkcja-i-tak-plonie","status":"publish","type":"post","link":"https:\/\/kapqka.com\/index.php\/dlaczego-testy-przechodza-a-produkcja-i-tak-plonie\/","title":{"rendered":"Dlaczego testy przechodz\u0105, a produkcja i tak p\u0142onie?"},"content":{"rendered":"\n\n\n<p class=\"wp-block-paragraph\">Znasz to? Zesp\u00f3\u0142 m\u00f3wi \u201esprawdzili\u015bmy szefie, jest dobrze\u201d, Ty akceptujesz release, my\u015blisz sobie &#8222;ekstra, w ko\u0144cu to wydamy&#8221;, a po wdro\u017ceniu zaczyna si\u0119 lawina zg\u0142osze\u0144 i b\u0142\u0119d\u00f3w \u2014 to nie jest rzadki przypadek. To jest powtarzalny mechanizm. Produkcja nie jest \u201ckolejnym \u015brodowiskiem\u201d. Produkcja to inny ekosystem: inne dane, inne konfiguracje, inne zachowania u\u017cytkownik\u00f3w i inne warunki dzia\u0142ania.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W tym artykule nie b\u0119d\u0119 t\u0142umaczy\u0142, \u201cjak testowa\u0107\u201d ani nie b\u0119d\u0119 opowiada\u0142 o narz\u0119dziach. Opowiemy sobie o:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>12 najcz\u0119stszych r\u00f3\u017cnicach mi\u0119dzy testami a produkcj\u0105,<\/li>\n\n\n\n<li>prostych sposobach, jak ka\u017cd\u0105 z nich minimalnie zasymulowa\u0107,<\/li>\n\n\n\n<li>kr\u00f3tkim planie, co zrobi\u0107 jutro, \u017ceby ograniczy\u0107 ryzyko \u201cwpadki mimo test\u00f3w\u201d.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\">Problem<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">W wi\u0119kszo\u015bci firm testowanie przed releasem jest w najlepszym razie \u201cwystarczaj\u0105ce\u201d, a nie \u201ckompletne\u201d. I to jest normalne. Problem zaczyna si\u0119 wtedy, gdy:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u015brodowisko testowe jest \u201c\u0142adne i przewidywalne\u201d,<\/li>\n\n\n\n<li>testy s\u0105 robione na ograniczonej liczbie konfiguracji,<\/li>\n\n\n\n<li>a decyzja o releasie opiera si\u0119 na stwierdzeniu \u201edzia\u0142a\u201d.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Na produkcji zaczynasz gra\u0107 w gr\u0119:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>u\u017cytkownicy robi\u0105 rzeczy inaczej ni\u017c zesp\u00f3\u0142,<\/li>\n\n\n\n<li>dane s\u0105 niepor\u00f3wnywalnie bardziej z\u0142o\u017cone,<\/li>\n\n\n\n<li>konfiguracje urz\u0105dze\u0144 i przegl\u0105darek s\u0105 bardziej r\u00f3\u017cnorodne,<\/li>\n\n\n\n<li>integracje dzia\u0142aj\u0105 z limitami, op\u00f3\u017anieniami i b\u0142\u0119dami.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\">Koszt i ryzyko \u2013 co realnie tracisz<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Wpadki \u201cpo poprawnym testowaniu\u201d kosztuj\u0105, bo s\u0105 najgorszym typem incydentu: nikt si\u0119 ich nie spodziewa\u0142, wi\u0119c zesp\u00f3\u0142 nie jest gotowy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Najcz\u0119stsze koszty:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Utracony przych\u00f3d lub utracony cel biznesowy<\/strong> \u2013 konwersja spada, proces si\u0119 urywa, u\u017cytkownicy odpadaj\u0105.<\/li>\n\n\n\n<li><strong>Koszt gaszenia po\u017caru<\/strong> \u2013 przerwane sprinty, nadgodziny, chaos i presja.<\/li>\n\n\n\n<li><strong>Wzrost kosztu supportu<\/strong> \u2013 zg\u0142oszenia, r\u0119czne obej\u015bcia, obs\u0142uga reklamacji.<\/li>\n\n\n\n<li><strong>Utrata zaufania<\/strong> \u2013 u\u017cytkownik nie wraca, je\u015bli produkt go zawi\u00f3d\u0142.<\/li>\n\n\n\n<li><strong>Ryzyko prawne i danych<\/strong> \u2013 b\u0142\u0119dy uprawnie\u0144, zg\u00f3d, prywatno\u015bci, logowania.<\/li>\n<\/ol>\n\n\n\n<h5 class=\"wp-block-heading\">Mini-model kosztu (wz\u00f3r do podstawienia)<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Koszt incydentu = (czas zespo\u0142u \u00d7 stawki) + utracony przych\u00f3d + koszt supportu + koszt komunikacji + koszt op\u00f3\u017anionych prac<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zwr\u00f3\u0107 uwag\u0119: w praktyce nie chodzi o to, \u017ceby zawsze unikn\u0105\u0107 incydentu. Chodzi o to, \u017ceby unika\u0107 <strong>incydent\u00f3w przewidywalnych<\/strong>, wynikaj\u0105cych z r\u00f3\u017cnic pomi\u0119dzy prod a test.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\">Dlaczego to si\u0119 dzieje \u2013 12 r\u00f3\u017cnic prod vs test<\/h4>\n\n\n\n\n\n<p class=\"wp-block-paragraph\">Nie musisz tworzy\u0107 \u201cidealnego stagingu\u201d. Wystarczy, \u017ce przestaniesz testowa\u0107 wy\u0142\u0105cznie w warunkach laboratoryjnych.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Poni\u017cej masz 12 r\u00f3\u017cnic, kt\u00f3re najcz\u0119\u015bciej powoduj\u0105 \u201czaskoczenia na produkcji\u201d, i minimalne testy, kt\u00f3re to ograniczaj\u0105.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">*Oczywi\u015bcie, kto\u015b zaraz powie, \u017ce si\u0119\u00a0z tym nie zgadza, \u017ce uwa\u017ca inaczej, \u017ce brakuje tego, a to jest niepotrzebne. Masz racj\u0119! Takich punkt\u00f3w powinno tu si\u0119 znale\u017a\u0107 tysi\u0105ce! Ka\u017cdy przypadek jest inny i te punkty przede wszystkim maj\u0105 Ciebie drogi czytelniku naprowadzi\u0107 i wskaza\u0107\u00a0zagro\u017cenia nawet je\u015bli one Ciebie nie dotycz\u0105 bo mo\u017ce akurat punkt 8 czy 9 zapali Ci lampk\u0119\u00a0w g\u0142owie i pomy\u015blisz sobie &#8222;ej&#8230; u mnie jest tak i tak, mo\u017ce by\u015bmy sprawdzili to i to&#8230;?&#8221;.  <\/p>\n\n\n\n<h5 class=\"wp-block-heading\">1) Dane produkcyjne s\u0105 brudne, stare i nieidealne<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Jak wygl\u0105da w praktyce:<\/strong> nietypowe formaty, duplikaty, puste pola, stare rekordy, inne j\u0119zyki, dziwne znaki.<br><strong>Minimalna symulacja:<\/strong> przygotuj \u201cpakiet 10 brudnych przypadk\u00f3w\u201d (np. d\u0142ugie nazwiska, nietypowe znaki, brak drugiego pola, stare rekordy, warto\u015bci graniczne).<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">2) Role i uprawnienia zmieniaj\u0105 zachowanie aplikacji<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><strong>Jak wygl\u0105da w praktyce<\/strong>:<\/strong> to samo klikni\u0119cie dzia\u0142a inaczej dla r\u00f3\u017cnych r\u00f3l; czasem w og\u00f3le nie powinno dzia\u0142a\u0107.<br><strong>Minimalna symulacja:<\/strong> test na 2\u20133 rolach: standardowy u\u017cytkownik + rola restrykcyjna + rola uprzywilejowana (je\u015bli istnieje).<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">3) \u015arodowiska r\u00f3\u017cni\u0105 si\u0119 konfiguracj\u0105 bardziej, ni\u017c si\u0119 wydaje<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><strong>Jak wygl\u0105da w praktyce<\/strong>:<\/strong> inne flagi funkcji, inne parametry, r\u00f3\u017cne wersje us\u0142ug, inne limity.<br><strong>Minimalna symulacja:<\/strong> lista \u201cr\u00f3\u017cnic \u015brodowisk\u201d + szybki smoke test krytycznych \u015bcie\u017cek na \u015brodowisku najbardziej zbli\u017conym do produkcji.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">4) Integracje dzia\u0142aj\u0105 dobrze, dop\u00f3ki nie dzia\u0142aj\u0105<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><strong>Jak wygl\u0105da w praktyce<\/strong>:<\/strong> timeouty, b\u0142\u0119dne odpowiedzi, limity, sporadyczne b\u0142\u0119dy.<br><strong>Minimalna symulacja:<\/strong> sprawd\u017a 3 scenariusze: integracja dzia\u0142a \/ zwraca b\u0142\u0105d \/ nie odpowiada w czasie.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">5) Cache i sesje maskuj\u0105 b\u0142\u0119dy<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><strong>Jak wygl\u0105da w praktyce<\/strong><\/strong> \u201cu mnie dzia\u0142a\u201d bo kto\u015b ma ju\u017c dane w pami\u0119ci, sesja trwa, stan si\u0119 nie zeruje.<br><strong>Minimalna symulacja:<\/strong> test na czystym koncie + nowej sesji + po wylogowaniu i ponownym logowaniu.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">6) R\u00f3\u017cne przegl\u0105darki\/urz\u0105dzenia = r\u00f3\u017cne problemy<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><strong>Jak wygl\u0105da w praktyce<\/strong>:<\/strong> layout, klawiatura, focus, gesty, r\u00f3\u017cne rozdzielczo\u015bci.<br><strong>Minimalna symulacja:<\/strong> test na 2\u20133 konfiguracjach + jedna \u201cnietypowa\u201d (stare urz\u0105dzenie\/inna rozdzielczo\u015b\u0107).<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">7) J\u0119zyk\/region i formaty potrafi\u0105 wywr\u00f3ci\u0107 logik\u0119<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><strong>Jak wygl\u0105da w praktyce<\/strong>:<\/strong> daty, liczby, separator dziesi\u0119tny, waluty, sortowanie.<br><strong>Minimalna symulacja:<\/strong> test na dw\u00f3ch formatach dat\/liczb (np. PL i EN) lub na ustawieniach systemowych innych ni\u017c domy\u015blne.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">8) Sie\u0107 i przerwania procesu to codzienno\u015b\u0107 u\u017cytkownika<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><strong>Jak wygl\u0105da w praktyce<\/strong>:<\/strong> s\u0142aby zasi\u0119g, prze\u0142\u0105czenie Wi-Fi\/LTE, przerwanie akcji.<br><strong>Minimalna symulacja:<\/strong> 3 testy: s\u0142aba sie\u0107, przerwanie w po\u0142owie, powr\u00f3t do procesu po przerwie.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">9) U\u017cytkownicy nie klikaj\u0105 \u201cjak tester\u201d<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Jak wygl\u0105da w praktyce:<\/strong> double-click, spam klik\u00f3w, cofanie, od\u015bwie\u017canie, zamykanie zak\u0142adki.<br><strong>Minimalna symulacja:<\/strong> \u201cchaos test\u201d na 5 minut: szybkie klikanie, wstecz, od\u015bwie\u017c, przerwij i wr\u00f3\u0107.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">10) R\u00f3wnoleg\u0142o\u015b\u0107 i dwa urz\u0105dzenia na tym samym koncie<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Jak wygl\u0105da w praktyce:<\/strong> dwa okna, dwa telefony, ten sam u\u017cytkownik, konflikt stanu.<br><strong>Minimalna symulacja:<\/strong> test: logowanie r\u00f3wnolegle + wykonanie tej samej akcji w dw\u00f3ch miejscach.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">11) Migracje danych i zmiany struktury potrafi\u0105 wysadzi\u0107 wersj\u0119<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Jak wygl\u0105da w praktyce:<\/strong> nowe pola, stare rekordy nie pasuj\u0105, dane z przesz\u0142o\u015bci \u201cpsuj\u0105 widok\u201d.<br><strong>Minimalna symulacja:<\/strong> test na danych \u201csprzed zmiany\u201d i \u201cpo zmianie\u201d; sprawd\u017a odczyt i zapis.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">12) Monitoring i gotowo\u015b\u0107 operacyjna decyduj\u0105, czy incydent ro\u015bnie, czy ga\u015bnie<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Jak wygl\u0105da w praktyce:<\/strong> b\u0142\u0105d jest, ale nikt o nim nie wie, dop\u00f3ki nie zadzwoni klient.<br><strong>Minimalna symulacja:<\/strong> ustal minimum: co obserwujecie, kto reaguje, jaki jest pr\u00f3g alarmu, jaki jest pierwszy krok.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\">Jak to zweryfikowa\u0107 <\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Je\u015bli chcesz szybko sprawdzi\u0107, czy Tw\u00f3j release jest nara\u017cony na \u201czaskoczenie produkcyjne\u201d, nie pytaj \u201cczy testowali\u015bcie\u201d. Zapytaj:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Kt\u00f3re z 12 r\u00f3\u017cnic z tej listy uwzgl\u0119dnili\u015bmy w testach tej wersji?<\/strong><br>Dow\u00f3d: zaznaczonych 6\u20138 pozycji + kr\u00f3tka notka \u201cjak sprawdzone\u201d.<\/li>\n\n\n\n<li><strong>Czy testowali\u015bmy na realistycznych danych (10 przypadk\u00f3w)?<\/strong><br>Dow\u00f3d: lista przypadk\u00f3w i kont\/danych.<\/li>\n\n\n\n<li><strong>Czy sprawdzili\u015bmy role\/uprawnienia?<\/strong><br>Dow\u00f3d: lista r\u00f3l + co zrobiono.<\/li>\n\n\n\n<li><strong>Czy sprawdzili\u015bmy integracje w scenariuszu b\u0142\u0119du\/timeoutu?<\/strong><br>Dow\u00f3d: kr\u00f3tki opis 3 scenariuszy.<\/li>\n\n\n\n<li><strong>Czy zrobili\u015bmy test \u201cs\u0142aba sie\u0107 \/ przerwanie \/ powr\u00f3t\u201d?<\/strong><br>Dow\u00f3d: 3 scenariusze i wynik.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Je\u015bli odpowied\u017a na wi\u0119kszo\u015b\u0107 z nich brzmi \u201cnie wiem\u201d \u2014 to jest sygna\u0142, \u017ce testy mog\u0142y by\u0107 poprawne, ale <strong>nie by\u0142y odporne na produkcj\u0119<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\">Do skopiowania<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">To jest BARDZO skr\u00f3cona wersja \u201csymulacji produkcji\u201d do u\u017cycia w ka\u017cdym releasie. <\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Kopiuj-wklej: \u201cMinimalna symulacja produkcji (30\u201360 minut)\u201d<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Wybierz 6\u20138 pozycji zale\u017cnie od zmiany i zr\u00f3b je zawsze:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>10 przypadk\u00f3w realistycznych\/brudnych danych<\/li>\n\n\n\n<li>2\u20133 role\/uprawnienia<\/li>\n\n\n\n<li>2\u20133 konfiguracje urz\u0105dze\u0144\/przegl\u0105darek (+ 1 nietypowa)<\/li>\n\n\n\n<li>Integracja: OK \/ b\u0142\u0105d \/ timeout (je\u015bli dotyczy)<\/li>\n\n\n\n<li>Czysta sesja: nowe konto \/ wyloguj-zaloguj \/ od\u015bwie\u017c<\/li>\n\n\n\n<li>S\u0142aba sie\u0107 + przerwanie procesu + powr\u00f3t<\/li>\n\n\n\n<li>R\u00f3wnoleg\u0142o\u015b\u0107: dwa okna\/urz\u0105dzenia na tym samym koncie<\/li>\n\n\n\n<li>Migracja danych: dane stare i nowe (je\u015bli dotyczy)<\/li>\n\n\n\n<li>\u201cChaos user\u201d 5 minut: spam klik\u00f3w, wstecz, od\u015bwie\u017c<\/li>\n\n\n\n<li>Minimum operacyjne: kto reaguje i co robimy, je\u015bli co\u015b padnie<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\">Co zrobi\u0107 jutro (plan na 60\u201390 minut)<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Skopiuj powy\u017csz\u0105 checklist\u0119 do wsp\u00f3lnego dokumentu.<br>Rezultat: sta\u0142y szablon \u201csymulacji produkcji\u201d.<\/li>\n\n\n\n<li>Dla najbli\u017cszej wersji wybierz 6\u20138 punkt\u00f3w, kt\u00f3re maj\u0105 najwi\u0119kszy sens.<br>Rezultat: konkretna checklista pod release.<\/li>\n\n\n\n<li>Przygotuj \u201cpakiet 10 brudnych przypadk\u00f3w danych\u201d.<br>Rezultat: lista danych\/kont do u\u017cycia w testach.<\/li>\n\n\n\n<li>Ustal 2\u20133 role u\u017cytkownik\u00f3w, kt\u00f3re zawsze weryfikujecie.<br>Rezultat: proste minimum uprawnie\u0144.<\/li>\n\n\n\n<li>Zr\u00f3b 3 testy \u201crealnego \u015bwiata\u201d: s\u0142aba sie\u0107, przerwanie, powr\u00f3t.<br>Rezultat: ograniczenie typowych wpadek mobilnych i webowych.<\/li>\n\n\n\n<li>Dopisz \u201cintegracja: b\u0142\u0105d\/timeout\u201d w releasach, gdzie integracja jest krytyczna.<br>Rezultat: mniej zaskocze\u0144 po stronie us\u0142ug zewn\u0119trznych.<\/li>\n\n\n\n<li>Ustal minimum gotowo\u015bci operacyjnej (kto reaguje, kiedy i jak).<br>Rezultat: incydenty nie eskaluj\u0105 przez chaos.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\">Sygna\u0142y ostrzegawcze <\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u201eNie mamy danych, \u017ceby to sprawdzi\u0107.\u201d<\/li>\n\n\n\n<li>\u201eSprawdzili\u015bmy na jednym urz\u0105dzeniu, powinno by\u0107 OK.\u201d<\/li>\n\n\n\n<li>\u201eIntegracja zawsze dzia\u0142a, nie trzeba testowa\u0107 b\u0142\u0119d\u00f3w.\u201d<\/li>\n\n\n\n<li>\u201eNa testach nie da si\u0119 tego odtworzy\u0107, zobaczymy na produkcji.\u201d<\/li>\n\n\n\n<li>\u201eTo tylko UI, nie ma ryzyka.\u201d (UI potrafi zablokowa\u0107 krytyczn\u0105 \u015bcie\u017ck\u0119)<\/li>\n\n\n\n<li>\u201eMonitoring? Klienci zg\u0142osz\u0105.\u201d<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\">Podsumowanie<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Produkcja zaskakuje nie dlatego, \u017ce ludzie \u201cnie testuj\u0105\u201d, tylko dlatego, \u017ce testy cz\u0119sto nie obejmuj\u0105 warunk\u00f3w, kt\u00f3re na produkcji s\u0105 normalne: brudne dane, r\u00f3\u017cne role, inne konfiguracje, gorsza sie\u0107 i b\u0142\u0119dy integracji. Je\u015bli zaczniesz konsekwentnie symulowa\u0107 6\u20138 kluczowych r\u00f3\u017cnic prod vs test, ograniczysz liczb\u0119 przewidywalnych wpadek i zmniejszysz koszt releas\u00f3w.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Je\u015bli chcesz zrobi\u0107 z tego sta\u0142y rytua\u0142 decyzyjny (GO\/NO-GO w 15 minut), to w kolejnym artykule poka\u017c\u0119 prost\u0105 bramk\u0119, kt\u00f3ra wymusza dowody i ko\u0144czy dyskusj\u0119 \u201ewydaje mi si\u0119\u201d.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h5 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a i dalsza lektura<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ISTQB \u2013 terminologia i fundamenty testowania<\/li>\n\n\n\n<li>ISO\/IEC\/IEEE 29119 \u2013 standard procesu testowania<\/li>\n\n\n\n<li>ISO\/IEC 25010 \u2013 model jako\u015bci produktu<\/li>\n\n\n\n<li>DORA \u2013 metryki i stabilno\u015b\u0107 dostarczania zmian<\/li>\n\n\n\n<li>Google SRE \u2013 incident management i reliability<\/li>\n\n\n\n<li>ITIL \u2013 zarz\u0105dzanie zmian\u0105 i incydentami<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Znasz to? Zesp\u00f3\u0142 m\u00f3wi \u201esprawdzili\u015bmy szefie, jest dobrze\u201d, Ty akceptujesz release, my\u015blisz sobie &#8222;ekstra, w ko\u0144cu to wydamy&#8221;, a po wdro\u017ceniu zaczyna si\u0119 lawina zg\u0142osze\u0144 i b\u0142\u0119d\u00f3w \u2014 to nie jest rzadki przypadek. To jest powtarzalny mechanizm. Produkcja nie jest \u201ckolejnym \u015brodowiskiem\u201d. Produkcja to inny ekosystem: inne dane, inne konfiguracje, inne zachowania u\u017cytkownik\u00f3w i inne [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"saved_in_kubio":false,"footnotes":""},"categories":[31],"tags":[10,21,30,12,22],"class_list":["post-411","post","type-post","status-publish","format-standard","hentry","category-release-ryzyko","tag-go-no-go","tag-produkcja_vs_testy","tag-ryzyko","tag-ryzyko_release","tag-ryzyko_wdrozenia"],"_links":{"self":[{"href":"https:\/\/kapqka.com\/index.php\/wp-json\/wp\/v2\/posts\/411","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kapqka.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kapqka.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kapqka.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kapqka.com\/index.php\/wp-json\/wp\/v2\/comments?post=411"}],"version-history":[{"count":1,"href":"https:\/\/kapqka.com\/index.php\/wp-json\/wp\/v2\/posts\/411\/revisions"}],"predecessor-version":[{"id":412,"href":"https:\/\/kapqka.com\/index.php\/wp-json\/wp\/v2\/posts\/411\/revisions\/412"}],"wp:attachment":[{"href":"https:\/\/kapqka.com\/index.php\/wp-json\/wp\/v2\/media?parent=411"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kapqka.com\/index.php\/wp-json\/wp\/v2\/categories?post=411"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kapqka.com\/index.php\/wp-json\/wp\/v2\/tags?post=411"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}