Na pierwszy rzut oka dyskusja, która wybuchła pod pytaniem „Why does everyone hate software testing?”, wygląda jak kolejny internetowy spór o nic. Jednak gdy przyjrzeć się jej bliżej, ujawnia ona coś znacznie ciekawszego: nie tyle niechęć do samego testowania oprogramowania, ile narastające zmęczenie procesami, które z jakością mają coraz mniej wspólnego. Wiele osób komentujących temat zwracało uwagę, że problem wcale nie leży w roli testera, ale w tym, jak ta rola jest wykorzystywana w praktyce. Najbardziej trzeźwy głos na początku dyskusji brzmiał wręcz jak podsumowanie sytuacji w wielu firmach: „software is logically so complicated… but testing gets less investment than it should because it’s harder to measure”.
To krótkie zdanie bardzo dobrze oddaje sedno: testowanie oprogramowania bywa traktowane jak obowiązek, który trzeba „odhaczyć”, a nie jak realne narzędzie zarządzania ryzykiem. W takich warunkach nietrudno o nieporozumienia i rozczarowania.
Zbyt późne testowanie
Najmocniejszy, najbardziej racjonalny komentarz w całej dyskusji dotyczył momentu rozpoczęcia testów. Jeden z uczestników napisał, że zdecydowana większość testowania dzieje się „too late”, przez co wyniki i tak są ignorowane albo naprawa defektów kosztuje nieproporcjonalnie dużo wysiłku. W efekcie tester oprogramowania ma poczucie, że jego praca przepada bez wpływu na produkt, a programiści widzą w QA ostatnią barierę przed wdrożeniem. Obie strony są sfrustrowane, ale z różnych powodów.
Dla testerów problemem jest brak realnego wpływu. Dla developerów – przerywany rytm pracy i poczucie, że ktoś „wyciąga problemy na koniec”, kiedy niewiele da się z tym zrobić. Obie strony padają ofiarą procesu, który nie daje przestrzeni ani na sensowny dialog, ani na zaplanowanie jakości. Konflikt, który potem przenosi się na relacje personalne, w rzeczywistości wynika z organizacji pracy, a nie z wad którejkolwiek grupy.
Procesy
Dużo emocji wywołała też opinia, że część testowania to po prostu „performative nonsense that slows down delivery without improving quality”. Ten komentarz może brzmieć ostro, ale trudno nie zauważyć, jak często w firmach testy są redukowane do rytuałów, które mają sprawiać wrażenie kontroli. Setki szczegółowych przypadków testowych, wypełniane mechanicznie arkusze, dokumenty tworzone pod audyt, a nie pod realne potrzeby. To wszystko zabiera czas, ale nie przynosi wglądu w gotowość produktu.
Tester, który spędza większość dnia na odhaczaniu checklist, nie ma możliwości skupić się na analizie ryzyka, na pracy eksploracyjnej ani na rozmowach z zespołem. Z kolei programista, który widzi wyłącznie długie raporty i listy drobnych zgłoszeń, utwierdza się w przekonaniu, że tester „szuka dziury w całym”. Obie strony patrzą na siebie przez pryzmat dokumentów, zamiast rozmawiać o tym, co naprawdę może zaszkodzić użytkownikom.
Rola testera
Jednym z najżywszych wątków była kwestia tego, jak powinien myśleć tester. Czy wchodzić w rolę użytkownika i patrzeć na produkt całościowo? A może trzymać się sztywno wymagań i sprawdzać wyłącznie to, co zostało zamówione? Jedna strona argumentowała: „pretend you’re a user… be QA!!!”. Druga odpowiadała bez cienia uprzejmości: tester ma reprezentować „the user that specifically asked for a functionality”, a nie generować pomysły z powietrza.
To nie jest akademicka różnica zdań. W wielu firmach właśnie tu zaczyna się napięcie: developerzy chcą przewidywalności i działają według backlogu, testerzy widzą natomiast, że wymagania to tylko część obrazu. Jednocześnie ktoś słusznie zauważył, że nie istnieje „uniwersalny użytkownik”. Jeśli produkt ma trafić do konkretnej grupy (np. pracowników sklepu, lekarzy, księgowych), to tester powinien świadomie reprezentować właśnie ich, a nie swoją intuicję.
Najbardziej rozsądna odpowiedź jest więc pośrodku. Testowanie oprogramowania musi łączyć zgodność z wymaganiami z rozumieniem realnych scenariuszy użycia. Jedno bez drugiego prowadzi do błędów innego rodzaju – albo formalnie poprawnych, ale frustrujących rozwiązań, albo pomysłów, które nie miały pokrycia w ustaleniach z biznesem.
Dlaczego temat QA tak szybko wywołuje nerwową atmosferę
Pod koniec dyskusji pojawiły się zarzuty o trolling, niedopowiedzenia i skrajne interpretacje. To nie przypadek. Rozmowy o jakości oprogramowania często robią się ostre, bo dotyczą delikatnych obszarów: odpowiedzialności, kompetencji i wizerunku. Krytyka testów bywa odbierana jako krytyka testera. Krytyka kodu – jak krytyka programisty. A gdy coś trafia na produkcję z defektem, najłatwiej zapytać „kto zawiódł?”, zamiast „dlaczego proces doprowadził nas do takiego efektu?”.
To pokazuje, że największą bolączką nie jest sama praktyka testowania, lecz to, jak różne osoby ją postrzegają. Developerzy oczekują konkretów. Testerzy oczekują przestrzeni na rozpoznanie ryzyka. Biznes oczekuje przewidywalności. Gdy te trzy perspektywy nie spotykają się w jednym miejscu, frustracja pojawia się bardzo szybko.
Wnioski z dyskusji
Najważniejszy wniosek jest prosty i przewija się przez wszystkie komentarze: nikt nie nienawidzi testowania oprogramowania. Niezależnie od tonu niektórych wypowiedzi, uczestnicy dyskusji podkreślali, że rola QA jest potrzebna i często doceniana. Problemem są procesy, w których testy pojawiają się za późno, działają bez kontekstu albo są w połowie dokumentacją, a w połowie teatralnym odgrywaniem procedur.
Jeśli jakość ma mieć sens, testowanie musi dziać się wtedy, gdy może coś zmienić, a nie wtedy, gdy może coś udokumentować. Musi mówić o ryzyku, a nie liczbie wykonanych przypadków testowych. Musi być rozmową, a nie listą zgłoszeń w systemie. Ostatecznie, musi dawać zespołowi pewność, że produkt, który trafi do użytkowników, nie będzie dla nich źródłem irytacji.
Internetowa dyskusja jest więc nie tyle opowieścią o tym, że ktoś „nie lubi” testowania, ile sygnałem, że warto na nowo przemyśleć swój proces. Może się okazać, że nie trzeba ani nowych narzędzi, ani nowych metryk, wystarczy wcześniejsza współpraca, bardziej sensowna komunikacja i zrozumienie, kogo i czego właściwie dotyczy testowanie oprogramowania.
Gdy te trzy elementy zaczynają ze sobą współgrać, pytanie „dlaczego ludzie narzekają na testowanie?” przestaje być aktualne. Zamiast tego pojawia się znacznie zdrowsze: w jaki sposób jakość może działać tak, aby realnie odciążać cały zespół, a nie go spowalniać?
Jeśli macie ochotę poczytać całość dyskusji, możecie znaleźć ją tutaj.
Redakcja



