Tajemniczy chleb

Celem zespołu QA nie jest samo dobre testowanie.

Nie polega on również na testowaniu właściwych rzeczy we właściwy sposób.

Prawdziwym celem jest pomaganie zespołom w budowaniu oprogramowania, które działa. Testowanie jest jednym z narzędzi służących do osiągnięcia tego celu. Nie jest to jednak jedyne narzędzie. Często nie jest to nawet najlepsze narzędzie.

Wiele firm skupia się wyłącznie na testowaniu i pokryciu (coverage). To błąd.

Testowanie ma konkretne zastosowania:

  • Automatyczne testy zapewniają szybką informację zwrotną na temat kluczowych funkcji.
  • Testowanie eksploracyjne pomaga zrozumieć, jak zachowuje się oprogramowanie.

Jednak wiele zespołów wykorzystuje testowanie, aby naprawić wszystko. Używają go, by łatać dziury powstałe w wyniku złego planowania. Próbują nim zastąpić monitoring i obserwowalność (observability).

Poleganie na pokryciu testami jako głównym sygnale jakości jest jak próba nadania kształtu chlebowi już po wyjęciu go z pieca.

Pomyśl o swoim oprogramowaniu jak o chlebie. Składnikami są rzeczy, których potrzebujesz, zanim zaczniesz pisać kod:

  • Jasna definicja tego, co oprogramowanie musi robić.
  • Zgoda co do tego, jak powinna wyglądać jakość.
  • Zrozumienie ryzyk i ograniczeń.

Jeśli użyjesz niewłaściwej mąki lub zapomnisz o soli, żadne formowanie nie uratuje ciasta.

Oprogramowanie łatwo kształtować, gdy jest jeszcze ciastem. Oznacza to wczesny etap rozwoju. Gdy kod zostanie już napisany, ciasto twardnieje. Wprowadzanie zmian na tym etapie kosztuje więcej czasu i wysiłku.

Pokrycie testami mówi ci tylko, gdzie patrzyłeś. Nie mówi ci jednak, czy to, na co patrzyłeś, ma znaczenie. Wynik 80% pokrycia nie oznacza, że twoje oprogramowanie jest wysokiej jakości. Może to po prostu oznaczać, że masz zbyt wiele bezużytecznych testów.

Przestań gonić za liczbami dotyczącymi pokrycia. Zamiast tego zadaj sobie te pytania:

  • Gdzie zachowanie naszego oprogramowania jest nieznane?
  • Jaki jest najszybszy sposób, aby to sprawdzić?

Czasami odpowiedzią jest test. Często odpowiedzią jest rozmowa. Musisz zadawać pytania, które wszyscy uznają za oczywiste.

Większość oprogramowania w końcu się psuje. Gdy tak się stanie, musisz o tym szybko wiedzieć. Monitoring produkcyjny informuje cię o błędzie, zanim zrobią to użytkownicy. Testowanie nie jest w stanie zrobić tego tanim kosztem.

Sztuczna inteligencja jeszcze bardziej to utrudnia. Możesz teraz generować kod i testy bez żadnego realnego zrozumienia tematu. Liczby pokrycia rosną, ale jakość pozostaje niska. Pomijasz etap ciasta i przechodzisz od razu do pieca.

Testowanie to środek do celu. Pokrycie to tylko wskaźnik zastępczy (proxy). Prawdziwa praca odbywa się na etapie ciasta. Nie pomijaj go.

Źródło: https://dev.to/susanne_abdelrahman/mystery-bread-2526

Opcjonalna społeczność edukacyjna: https://t.me/GyaanSetuAi