Wstęp do testowania

Wpis powstał z potrzeby: coraz większa liczba osób i firm zadawała pytanie: czym jest Testowanie.

    Firmy dzielimy na te:

  • które testują
  • i te, które w przyszłości będą testować:)

Czym jest testowanie?

Jest to proces zapewniający jakość oprogramowania. Dzięki testowaniu jesteśmy w stanie sprawdzić czy działają funkcjonalności naszego systemu.

Rodzaje testowania:

Testy manualne

Testy manualne to takie testy, które wykonuje osoba(Tester oprogramowania) bądź w wielu projektach także Project Manager lub klient. Programista wytwarza oprogramowania, ale istnieje potrzeba sprawdzenia czy to, co zostało napisane, działa i czy jest zgodne z specyfikacją wymagań.

Wady testowania manualnego:

Niestety, człowiek jest omylny i nie zawsze jest w stanie wychwycić wszystkie błędy. Im większa wiedza na temat testowania, tym większa szansa na wyszukanie błędów. Natomiast przy dużych systemach takie podejście wymaga zatrudnienia wielu osób do testowania i kontroli ciągłego procesu. Załóżmy, że mamy system składający się z około 5000 funkcjonalności, które wymagają sprawdzenia (uwierzcie mi, to nie jest wcale dużo!). Po każdej zmianie programisty (która może następować kilka razy dziennie) powinniśmy przetestować 5000 funkcjonalności, ponieważ nie mamy pewności, że programista, tworząc nową funkcjonalność, nie popsuł innego modułu. Nie trudno się domyślić, że przy dużych systemach takie rozwiązanie jest niemożliwe do zrealizowania.

Testy automatyczne

Testy automatyczne to testy, które są napisane przez programistę bądź przez testera oprogramowania. Testy automatyczne to kod, który sprawdza czy dana rzecz w systemie działa. Zaletą takiego rozwiązania jest możliwość wielokrotnego użycia tego samego kodu. Uruchomienie testów (przy pewnych optymalizacjach:)) trwa zdecydowanie krócej niż ręczne testowanie

Z życia programisty.....Dwie lekcje

Pierwszy projekt, który pisałem w liceum była to gra w statki. Ponieważ nie znałem wtedy jeszcze programowania obiektowego, mój kod był bardzo długi i trudny w utrzymaniu. Miałem zapisane kilkaset linii kodu w jednym pliku i, nie znając zasad związanych z programowaniem obiektowym oraz testów, nie byłem w stanie doprowadzić do stanu, w którym mój kod działałby zawsze poprawnie. Przykład ten pokazuje, że stosowanie dobrych zasad programowania i testowania nie jest wymysłem tylko sprawia, że jesteśmy w stanie doprowadzić projekt do końca.

Kolejny projekt to aplikacja komercyjna, którą pisałem w IOS. Ponieważ uczyłem się wtedy programowania w Objective C, nie zdążyłem się jeszcze nauczyć pisać testów pod IOS. Natomiast logika aplikacji była tak skomplikowana, że każda poprawka, którą robiłem, prowadziła do kolejnych błędów. W pewnym momencie miałem wrażenie, że projekt nigdy się nie zakończy (błędne koło, robisz poprawki, które generują nowe i stare błędy). W pewnym momencie zdałem sobie sprawę, że bez testów nie ukończę projektu. Po zastosowaniu testów udało się skończyć aplikację zgodnie z założonym terminem:)

W kolejnym wpisie wyjaśnię czym są testy: jednostkowe, funkcjonalne i integracyjne.