SDA / Co warto wiedzieć o testach oprogramowania?

Co warto wiedzieć o testach oprogramowania?

Co to jest testowanie oprogramowania i popularne rodzaje testów oprogramowania?

Umiejętność diagnozowania błędów jest sztuką, która ma zasadnicze znaczenie w programowaniu. W niektórych sytuacjach brak testowania oprogramowania może skutkować nie tylko utratą wielu klientów, ale nawet z poważnymi stratami dla biznesu. 

Niezauważony przez nikogo błąd w oprogramowaniu był przyczyną wielu niezwykle tragicznych i kosztownych katastrof w historii. Przykładem może być wybuch bezzałogowej rakiety Ariane 5, która w czerwcu 1996 roku miała wynieść na orbitę cztery bardzo drogie satelity naukowe. Rakieta wybuchła, a straty oszacowano na około 370 mln dolarów. Start zakończył się katastrofą, bo program pomylił się w obliczeniach. 

Co to jest testowanie oprogramowania?

Testowanie oprogramowania oznacza systematyczne i dogłębne zweryfikowanie funkcjonalności danego programu komputerowego lub aplikacji komputerowej.
W testowaniu chodzi przede wszystkim o znalezienie wszelkiego rodzaju usterek, które utrudnią lub uniemożliwią prawidłową pracę programu.

Jak działa testowanie oprogramowania?

Sam proces testowania oprogramowania można podzielić na kilka etapów, które składają się na STLC (Software Testing Life Cycle). Każdy rodzaj produktu ma swój własny STLC, zależnie od swojego przeznaczenia. W teorii proces testowania programu można wykonywać bez końca, sprawdzając automatycznie lub manualnie poszczególne zmienne. Ilość zmiennych jest nieograniczona i dlatego, nie istnieje produkt przetestowany w 100%. Można jednak starać się wykluczyć najbardziej prawdopodobne błędy w danych warunkach.

Prosty przykład?

-W której sytuacji jest najbardziej prawdopodobne, że dany komputer się zawiesi?
-Kiedy otworzy się na nim jeden dokument tekstowy?

-Kiedy uruchomi się Internet?

-Kiedy otworzy się naraz 10 dużych plików graficznych? 

Najbardziej prawdopodobne jest, że stanie się to w tej ostatniej sytuacji. I właśnie tego rodzaju warunki wykorzystałby tester, weryfikując działanie danego systemu operacyjnego. 

Po co testować oprogramowanie?

Reputacja firmy czy bezpieczeństwo danych to nie jedyne korzyści z testowania oprogramowania. Jeśli testowanie rozpoczyna się już na początku tworzenia danego programu lub aplikacji, istnieje szansa, że gotowy produkt będzie lepszej jakości. To pozwala zazwyczaj zaoszczędzić wiele pieniędzy, jakie trzeba byłoby wydać na ewentualne poprawki. Testowanie zwiększa bezpieczeństwo danego produktu i jego odporność np. na hackerskie ataki. Dobry, doświadczony tester jest, jak widać w branży IT na wagę złota.  

Rodzaje testów oprogramowania

Ważne, aby wiedzieć, że w testowaniu można wyróżnić poziomy testowania – inne w poszczególnych fazach jego tworzenia. Najczęściej spotykane są takie poziomy testowania jak: systemowe, jednostkowe, akceptacyjne i integracyjne.
Jeśli chodzi o typy testów – można je wykonywać na każdym poziomie testowania oprogramowania. Wśród typów testów możemy wymienić np. testy strukturalne, związane ze zmianami i oraz testy funkcjonalne i niefunkcjonalne.

Testy funkcjonalne, jak sama nazwa wskazuje, weryfikują funkcjonalność danej aplikacji. Są nieco prostsze w przeprowadzaniu niż testy niefunkcjonalne. Testy niefunkcjonalne skupiają się na tym, jak program pracuje, czy jest wydajny, efektywny, bezpieczny, łatwy w przenoszeniu.

W testach strukturalnych testuje się kod aplikacji i na jego podstawie próbuje znajdować ewentualne błędy. Testy oparte na zmianach (bardzo ważny typ testów), wykonuje się np. po dokonaniu naprawy w kodzie danej aplikacji. Test ma wtedy stwierdzić, czy program zareagował na tę zmianę w pożądany sposób.

Rozpatrując rodzaje testów, dobrze wspomnieć o różnicy pomiędzy testowaniem oprogramowania a testami QA (z ang., quality assurance). Te pierwsze pozwalają wykryć błędy w danym oprogramowaniu, a ich przeprowadzanie nie wymaga dobrej znajomości kodu. Natomiast testy jakości (QA) służą raczej optymalizacji jakości danego produktu, niezależnie od ewentualnych usterek. Tutaj znajomość kodu jest pożądana, bo tester jakości może zaproponować ewentualne ulepszenia. 

Testowanie oprogramowania tylko pozornie jest zajęciem rutynowym i mało ekscytującym. W zależności od testowanych produktów może dostarczyć wielu niezapomnianych wrażeń. Więcej o testowaniu dowiesz się w SDA.

Chcesz wiedzieć więcej?

Sprawdź nasz darmowy webinar Software Tester.

sprawdzam