Testowanie jest kosztem

Testowanie jest kosztem
Dla większości projektów testowanie jest kosztem, a nie zyskiem. Przy prostej analizie zwrotu z inwestycji testowanie zwiększa jednak prawdopodobieństwo powodzenia inwestycji w wytworzeniu oprogramowania.

Wiele źródeł i osób próbuje przekonywać, że testowanie samo w sobie przynosi zyski. Może to zrobić tylko, gdy zarabia się na wykonywaniu testów. 

Jest kilka tez o testowaniu, które naprawdę trudno podważyć.

  1. Testowanie nie podnosi jakości oprogramowania. Tak jak mieszanie cukru w herbacie nie powoduje, że staje się ona słodsza. Dostarczając informacji o jakości nie zmieniamy jej w żaden sposób.
  2. Testowanie obniża koszty, ale ciągle jest kosztem. Im wcześniej zaangażujemy testy, tym teoretycznie mniejsze koszty poprawy defektów w późniejszych fazach. We współczesnych projektach czas od zdefiniowania wymagania do dostarczenia oprogramowania jest tak krótki, że ciężko mówić o wczesnym zaangażowaniu, które przynosi wielkie oszczędności.
  3. Testy mogą stać się niepotrzebnym wydatkiem jeśli ich wyniki nie przekładają się na decyzje biznesowe lub projekt nie jest w stanie dostarczyć produktu. W uproszczeniu, testowanie będzie jedynie dodatkowym kosztem wszędzie tam, gdzie nie przekłada się na dostarczenie lepszego produktu.
  4. Testowanie nie daje gwarancji poprawności działania. Czy testerom uda nam się zapewnić zerową ilość defektów w skończonym czasie? Czy testowanie da 100% gwarancję poprawności oprogramowania? W każdym przypadku odpowiedź brzmi - Nie.
  5. Testowanie jest tak dużym obciążeniem, że współczesne metodyki próbują się go pozbyć. Manifest Agile nie zakłada testerów, Scrum oddaje zadania kontroli jakości członkom zespołu i właścicielowi produktu, a w kulturze DevOps testowanie zredukowane jest do automatyzacji i monitorowania. Jeśli testowanie byłoby tak oczywistą korzyścią, metodyki nie próbowałyby z nim walczyć, a robiłyby wszystko, by było go możliwiej najwięcej.    

Nie zmienia to faktu, że testowanie oprogramowania jest kosztem w wielu przypadkach niezbędnym do poniesienia, tak jak (prawie) każdy inny koszt projektowy.

  • Czy koszt pracy nawet najlepszego kierownika projektu jest zyskiem? Nie. Czy zagwarantuje powodzenie projektu? Nie, ale może ograniczyć ryzyko jego niepowodzenia.
  • Czy programowanie jest zyskiem? Nie. Jest nakładem pracy, więc również i wydatkiem. Czy najlepszy programista zagwarantuje wytworzenie produktu? Nie, ale dzięki jego dobrej pracy produkt może być wysokiej jakości. 

Podczas inwestowania w testowanie zawsze należy zastanowić się nad tym, czy nakłady zwrócą się z nawiązką i przeanalizować tzw. business case'a. Z matematyki może nam wyjść, że koszt testowania przełoży się na większe zyski ze sprzedaży wytworzonego produktu.

To powinno Cię zainteresować