Testowanie oprogramowania – co to?

Postanowiłem cyklicznie publikować i dzielić się wszystkimi zainteresowanymi skondensowaną wiedzą z dziedziny testowania oprogramowania. Znajdziecie tutaj esencjonalne odpowiedzi na popularne zagadnienia.

Testowanie oprogramowania – co to? na czym to polega i jak to się robi?

Testowanie oprogramowania to proces zapewnienia jakości oprogramowania.  Celem testowania jest wykrywanie i raportowanie błędów. Proces testowania ujawnia odchylenie od założonego działania systemu przez porównanie otrzymanego w wyniku testu z oczekiwanym rezultatem.

Test to jest wykonywanie czynności polegających na uruchomieniu określonej funkcjonalności w konkretnych warunkach i konkretnych danych wejściowych oraz weryfikacja zachowania aplikacji i porównanie tego z oczekiwanym rezultatem. Test powinien zostać zakończony raportem, który ułatwi wyciągnięcie wniosków.

Dla zobrazowania sytuacji: Przypadek testowy 1 (Test case 1; TC1)

„Kliknięcie przycisku View Order ID’s – powoduje wyświetlenie numerów zamówień” – jest to np. zawarte w dokumentacji (instrukcji) programu, a więc  jednoznaczne z oczekiwanym rezultatem.

Wykonujemy przypadek testowy i otrzymujemy wynik, w przykładowym przypadku taki:

„Kliknięcie przycisku View Order ID’s – nie powoduje wyświetlenia numerów zamówień, występuje awaria i program jest zamykany bez komunikatu”

Nazwiemy go więc rezultatem – wynikiem naszego jednostkowego testu.

W tym przypadku otrzymany rezultat testu jest inny od spodziewanego rezultatu więc mamy do czynienia z odchyleniem.

Po co testować?

Test na wykrycie błędu zmniejsza koszty jego naprawy oraz minimalizuje potencjalne konsekwencje wystąpienie niepożądanego zdarzenia w środowisku produkcyjnym, niewykrycie może wiązać się z wysokimi kosztami naprawy oraz generowaniem strat w postaci utraconych korzyści biznesowych np.  niedziałający sklep internetowy powoduje straty, gdy nikt w nim nie kupuje, ponadto nadszarpnięta może zostać reputacja firmy itd. itp.

Testowanie to proces weryfikacji zachowania systemu i porównywanie otrzymanego rezultatu z przewidywaniami.  Celem testowania jest zminimalizowanie ryzyka wystąpienia błędu w środowisku produkcyjnym oraz uzyskanie maksymalnie dużej pewności że oprogramowanie funkcjonuje zgodnie z założeniami.

Podsumowując, oprogramowanie powinno być wolne od defektów, klient będzie zadowolony w związku z czym rośnie reputacja programu i firmy, która owy program tworzyła, co powinno przekładać się na cele biznesowe a więc np. maksymalizację zysków.