Wartość biznesowa testowania
Na pierwszy rzut oka trudno znaleźć jakąkolwiek wartość biznesową z testowania. Zauważalne są jedynie koszty, które ono generuje, związane m.in.: z koniecznością zatrudnienia testerów, zapewnienia im sprzętu czy szkoleń. W rzeczywistości testowanie oprogramowania niesie za sobą bardzo dużą wartość, która w szerszej perspektywie czasowej na pewno będzie doskonale widoczna. W głównej mierze jest ona związana z możliwością zaoszczędzenia na kosztach, które trzeba byłoby ponieść, gdyby błędy zostały zauważone przez klientów, a nie przez testerów, którzy są po naszej stronie.
Optymalizacja kosztów testowania
Aby osiągnąć realne zyski z testowania, konieczne jest wdrożenie odpowiedniej optymalizacji. Można w tym celu przygotować np. business case oparty na metodzie kosztu jakości. Jest to metoda szczegółowo opisana przez J.M. Jurana w książce pt.: „Quality Control Handbook”. Autor wskazuje w niej, że koszt jakości najlepiej wyrazić za pomocą czasu lub wysiłku, przełożonego na wartość pieniężną. Na koszt jakości powinny składać się takie elementy jak: koszty działań prewencyjnych oraz koszty wykrycia wewnętrznych i zewnętrznych awarii.
Podczas optymalizacji kosztów testowania najważniejszą kwestią, którą warto mieć na uwadze, jest to, że wydatki związane z usuwaniem ewentualnych problemów rosną wraz z upływem czasu. Na zysk z testowania można więc liczyć tylko wtedy, kiedy koszty wykrycia usterek w fazie prewencyjnej będą mniejsze niż wydatki, które trzeba byłoby ponieść w przypadku wykrycia defektów w późniejszych fazach lub już bezpośrednio u klienta. Kluczem do sukcesu jest znalezienie optymalnego punktu równowagi pomiędzy wielkością kosztów, na jakie zdecydujemy się na poczet testowania, a zyskami, na które można liczyć w wyniku zapobiegania awarii.
Nie zostawiaj swojego oprogramowania bez testowania. Zaufaj ekspertom!
Jakie są rodzaje kosztów testowania?
Jak już wcześniej wspomniano, na ogólny koszt jakości, składa się kilka innych elementów, z których najważniejsze to:
- koszty prewencji,
- koszty wykrycia,
- koszty awarii wewnętrznej,
- koszty awarii zewnętrznej.
Koszty prewencji związane są ze wszystkimi czynnościami, które wykonuje się w celu wyeliminowania ewentualnych defektów w produkcie końcowym. Mogą one obejmować m.in. realizację szkoleń, wykonywanie analiz oraz ocenę zdolności i ulepszanie procesu. Koszty wykrycia dotyczą przede wszystkim części analitycznej, w której bada się produkty i usługi w celu odnalezienia i zidentyfikowania błędów. Mogą obejmować m.in.: przeprowadzanie przeglądów, testowanie, audyty i różnego rodzaju pomiary jakości produktu.
Koszty awarii wewnętrznej związane są z sytuacją, w której defekty zauważone zostaną jeszcze po stronie firmy. Wówczas konieczne będzie poniesienie wydatków związanych z ich usunięciem. Natomiast koszty awarii zewnętrznej dotyczą usuwania błędów polowych, czyli takich, które zostały wykryte po przekazaniu oprogramowania do odbiorcy końcowego.
Opłacalne testowanie – jak to robić?
Testy oprogramowania to nieunikniony wydatek, który warto traktować jako inwestycję, a nie zbędny koszt. Ważne jest jednak to, aby realizować je w odpowiedni sposób i w odpowiednim czasie, ponieważ niedokładne testowanie lub takie, które realizowane będzie za późno, faktycznie może okazać się tym niepotrzebnym kosztem. Przed rozpoczęciem testów, dobrze więc przemyśleć ich poszczególne etapy. W tym celu warto kierować się tzw. piramidą testów, która według słownika ISTQB definiowana jest jako „graficzny model reprezentujący relacje pomiędzy liczbą testów a poziomem testów, z większą liczbą testów dla niższych poziomów i mniejszą dla wyższych”. W praktyce na samym dole piramidy powinny być umieszczone te testy, które wykonuje się najszybciej, i które wymagają najmniej zaangażowania zespołu, natomiast na najwyższym szczeblu – testy, do których wykonania potrzebna jest największa ilość czasu i zasobów ludzkich.
Jakie są rodzaje testów?
Wyróżnić można trzy podstawowe rodzaje testów oprogramowania, które zgodnie z piramidą, powinny być realizowane w następującej kolejności:
- Testy jednostkowe – służą do testowania pojedynczych elementów; są szybkie, proste i łatwe w utrzymaniu.
- Testy integracyjne – ich zadaniem jest ocena czy poszczególne moduły i systemy działają razem poprawnie i tworzą zintegrowaną całość.
- Testy E2E – są one odzwierciedleniem zachowania końcowych użytkowników; podczas tych testów należy przejść przez wszystkie możliwe ścieżki, którymi będą się oni mogli poruszać.
Dlaczego przestrzeganie kolejności testów jest tak ważne? Błędy zauważone dopiero na etapie E2E są znacznie trudniejsze do zlokalizowania i odnalezienia źródła problemu, co oczywiście wiąże się z dodatkowymi kosztami. Wykrycie defektów na etapie testów jednostkowych to gwarancja znacznych oszczędności. Kierując się wcześniej opisywaną piramidą, testy staną się dla przedsiębiorstwa realnym zyskiem.
Testowanie przez osoby neuroróżnorodne
Choć kolejność wykonywania testów jest ważna, równie istotne jest to, w jaki sposób będą one realizowane. Pomimo tego, że zawód testera nie wymaga tak specjalistycznej wiedzy, jak w przypadku programistów, osoby na tym stanowisku powinny odznaczać się określonymi umiejętnościami i cechami charakteru, z których najważniejsze to: skrupulatność i dokładność, spostrzegawczość i wrażliwość na szczegóły, precyzja i przejrzystość w przekazywaniu informacji, uważność, umiejętność logicznego myślenia oraz nieszablonowe podejście do rozwiązywania problemów.
Na stanowiskach testerskich świetnie radzą sobie m.in. osoby neuroatypowe. Neuroróżnorodność to pojęcie, określające zróżnicowanie ludzkich mózgów w zakresie towarzyskości, możliwości utrzymania koncentracji, zachowania, nastroju czy umiejętności uczenia się. Osoby neuroróżnorodne, choć czasami nie radzą sobie z codziennymi czynnościami, znakomicie sprawdzają się jako testerzy oprogramowania. Lepiej niż przeciętni pracownicy wychwytują błędy i często zwracają uwagę na niuanse, które dla innych osób są zupełnie niezauważalne.