W skrócie, testowanie oprogramowania jest to czynność polegająca na sprawdzeniu, czy faktyczne wyniki odpowiadają oczekiwanym wynikom i upewnieniu się, że system oprogramowania jest wolny od wad.
Testowanie oprogramowania pomaga również zidentyfikować błędy, luki lub brakujące wymagania w przeciwieństwie do rzeczywistych wymagań. Można to zrobić ręcznie lub przy użyciu automatycznych narzędzi. Niektórzy wolą mówić o testowaniu oprogramowania jako testowanie White Box (Biała Skrzynka) i Black Box (Czarna Skrzynka).
W prostych słowach, testowanie oprogramowania oznacza weryfikację aplikacji w teście (Application Under Test – AUT).
Dlaczego testowanie oprogramowania jest ważne?
Testowanie jest ważne, ponieważ błędy w oprogramowaniu mogą być drogie lub nawet niebezpieczne. Błędy w oprogramowaniu mogą potencjalnie powodować straty finansowe i ludzkie, a historia jest pełna takich przykładów.
Przyjrzyjmy się zatem kilku z nich. I tak, w kwietniu 2015 roku, terminal Bloomberg w Londynie rozbił się z powodu usterki oprogramowania, która dotknęła ponad 300 000 traderów na rynkach finansowych. Zmusiło to rząd do odroczenia sprzedaży długu o wartości 3 mld funtów.
Samochody Nissana musiały wycofać z rynku ponad 1 MLN samochodów z powodu awarii oprogramowania w czujnikach poduszek powietrznych. Zgłoszono rownież dwa poważne wypadki spowodowane awarią oprogramowania.
Starbucks został zmuszony do zamknięcia około 60% sklepów w Stanach Zjednoczonych i Kanadzie z powodu awarii oprogramowania w systemie POS. W pewnym momencie sklep podawał kawę za darmo, ponieważ system nie był w stanie przetworzyć transakcji.
Niektórzy sprzedawcy detaliczni Amazon zauważyli, że ich cena produktu została obniżona do 1 funta z powodu usterki oprogramowania. Przyczyniło się to, do bardzo poważnych strat.
W 2015 roku samolot myśliwski F-35 padł ofiarą błędu w oprogramowaniu, uniemożliwiającego prawidłowe wykrycie celów.
China Airlines Airbus A300 rozbił się z powodu błędu w oprogramowaniu 26 kwietnia 1994 r., zabijając 264 niewinnych ludzi na żywo.
1985 r. – urządzenie do radioterapii Therac-25 w Kanadzie działało nieprawidłowo z powodu błędów w oprogramowaniu i dostarczało śmiertelne dawki promieniowania pacjentom, powodując śmierć 3 osób oraz krytycznie raniąc 3 inne osoby.
W kwietniu 1999 roku, błąd w oprogramowaniu spowodował awarię wystrzelenia satelity wojskowego o wartości 1,2 miliarda dolarów, co było najbardziej kosztownym wypadkiem w historii.
Maj 1996 r. – błąd w oprogramowaniu spowodował, że na rachunki bankowe 823 klientów dużego banku amerykańskiego wpłynęło 920 milionów dolarów.
I wreszcie najnowsza głośna awaria oprogramowania w samolotach Boeing 737-Max, która w październiku 2018r. Spowodowała katastrofę samolotu w Indonezji kilka minut po starcie, zabijając 189 osób na pokładzie. Następnie w marcu 2019r. Ten sam typ samolotu Etiopski linii lotniczych rowniez rozbił sie kilka minut po starcie, zabijając 157 osoby na pokładzie. Jak sie później okazało problemem był błąd w oprogramowaniu w tego typu samolotach. Do dnia dzisiejszego Boeingi 737-Max są uziemione na całym świecie i nie latają.
Na koniec jeszcze przyjrzyjmy się, jakie kategorie i rodzaje testów oprogramowania mamy. Otóż zazwyczaj testowanie dzieli się na trzy kategorie.
1. Testowanie funkcjonalne, które koncentrują się na wymaganiach biznesowych, które ma spełniać dana aplikacja.
2. Testowanie niefunkcjonalne lub testowanie wydajności – sprawdzają one działanie systemu pod dużym obciążeniem. Np. Mierzenie czasu odpowiedzi podczas wykonywania dużej liczby zapytań lub obserwacja zachowania i działania systemu w przypadku pracy z dużą ilością danych.
3. Utrzymanie (regresja i utrzymanie)
Istnieje ponad 150 typów testów i nadal nowe są wymyślane czy dodawane do listy. Należy również zauważyć, że nie wszystkie rodzaje testów mają zastosowanie do wszystkich projektów, ale zależą od charakteru i zakresu projektu.’
Na koniec małe spostrzeżenie: pamietajmy, że dobry pakiet testów powinien obejmować także próby zepsucia aplikacji a więc powinien posiadać zarówno pozytywne scenariusze testowe, jak i te negatywne.
To tyle na dzisiaj. Mam nadzieje, ze ten odcinek dal Ci jakakolwiek wartość. Jeśli tak, to zostaw proszę komentarz (gdziekolwiek i a czymkolwiek go słuchasz) czy ocenę. Będzie mi bardzo miło.
Dziękuje Ci bardzo i zapraszam na kolejny odcinek niebawem.