Moduł 1 · Podstawy testowania oprogramowania
Czym jest testowanie oprogramowania
Wyobraź sobie, że kupujesz nową aplikację bankową, a po pierwszej transakcji okazuje się, że przelałeś 1000 zł zamiast 100 zł. Albo że Twój ulubiony sklep internetowy nie pozwala Ci sfinalizować zamówienia przed świętami. Takie sytuacje to efekt braku odpowiedniego testowania oprogramowania.
Testowanie to więcej niż szukanie błędów
Testowanie oprogramowania to systematyczny proces weryfikacji i walidacji, który sprawdza, czy aplikacja działa zgodnie z wymaganiami i oczekiwaniami użytkowników. To nie tylko "klikanie po aplikacji" — to metodyczne podejście do zapewniania jakości.
Różnica między weryfikacją a walidacją jest kluczowa:
- Weryfikacja — "Czy budujemy system poprawnie?" (zgodność z specyfikacją)
- Walidacja — "Czy budujemy właściwy system?" (zgodność z potrzebami użytkownika)
Dlaczego każdy błąd ma swoją cenę
Według badań IBM i NIST, koszt naprawy błędu wzrasta dramatycznie:
- Błąd znaleziony w fazie wymagań: 1$
- Błąd znaleziony podczas kodowania: 10$
- Błąd znaleziony w testach systemowych: 100$
- Błąd znaleziony po wdrożeniu: 1000$
Przykład z życia: Netflix w 2008 roku wprowadził błąd, który uniemożliwił użytkownikom oglądanie filmów przez kilka godzin. Straty? Około 100 milionów dolarów.
Wskazówka: Im wcześniej znajdziesz błąd, tym mniej kosztuje jego naprawa. Dlatego testerzy pracują już na etapie analizy wymagań, a nie tylko po skończonym kodowaniu.
Podstawowe pojęcia w praktyce
Błąd, awaria czy pomyłka?
Pomyłka (error) — programista zapomniał obsłużyć sytuację, gdy użytkownik wpisze ujemną cenę produktu.
Błąd (defect/bug) — w kodzie brakuje walidacji, która sprawdza, czy cena jest większa od zera.
Awaria (failure) — użytkownik widzi w koszyku produkt za -50 zł, a system nalicza mu rabat zamiast wyświetlić komunikat o błędzie.
Siedem zasad testowania ISTQB w praktyce
- Testowanie ujawnia błędy, ale nie udowadnia ich braku — możesz przetestować 1000 scenariuszy logowania, ale 1001. może ujawnić krytyczny błąd
- Testowanie wyczerpujące jest niemożliwe — zamiast testować każdą kombinację, skupiasz się na najbardziej ryzykownych
- Wczesne testowanie oszczędza czas — recenzujesz wymagania, zanim programista napisze pierwszy kod
- Skupienie błędów — 80% błędów zwykle znajduje się w 20% modułów
- Paradoks pestycydów — te same testy z czasem przestają znajdować nowe błędy
- Testowanie zależy od kontekstu — inaczej testujesz aplikację medyczną, inaczej grę mobilną
- Złudzenie braku błędów — system może działać idealnie, ale nie spełniać potrzeb użytkowników
Wskazówka: Zapamiętaj zasadę 80/20 — skoncentruj się na funkcjonalnościach, z których korzysta 80% użytkowników, zamiast na wszystkich możliwych scenariuszach.
Podsumowanie:
- Testowanie to systematyczny proces weryfikacji jakości oprogramowania
- Koszt naprawy błędów rośnie wykładniczo z każdym etapem rozwoju
- Wczesne testowanie (od etapu wymagań) przynosi największe oszczędności
- Testowanie nie może udowodnić braku błędów, ale może znacząco zmniejszyć ryzyko awarii
- Siedem zasad ISTQB to fundament profesjonalnego podejścia do testowania