Jakie elementy oprogramowania należy testować?

Oprogramowanie to więcej niż kilka wierszy kodu. Zwykle jest to wielowarstwowy, złożony system, zawierający dziesiątki oddzielnych komponentów funkcjonalnych i integracje innych firm.

Dlatego wydajne testowanie oprogramowania powinno wykraczać daleko poza wykrywanie błędów w kodzie źródłowym. Zazwyczaj testowanie obejmuje następujące poziomy oprogramowania. Najmniejsza możliwa do przetestowania część systemu oprogramowania jest często określana jako jednostka. Dlatego ten poziom testowania ma na celu zbadanie każdej pojedynczej jednostki systemu oprogramowania, aby upewnić się, że spełnia ona indywidualne wymagania i funkcje zgodnie z oczekiwaniami. Testy jednostkowe są zwykle wykonywane na wczesnym etapie procesu projektowania przez samych inżynierów, a nie przez zespół testujący. Celem następnego poziomu testowania jest sprawdzenie, czy połączone jednostki działają dobrze razem jako całość. Testy integracyjne mają na celu wykrycie wad w interakcjach między jednostkami w module. Istnieją dwa główne podejścia do tego testowania: metody oddolne i odgórne. Testy integracji od dołu zaczynają się od testów jednostkowych, sukcesywnie zwiększając złożoność testowanych modułów oprogramowania. Na tym poziomie testowany jest kompletny system oprogramowania jako całość.

Ten etap służy weryfikacji zgodności produktu z wymaganiami funkcjonalnymi i technicznymi oraz ogólnymi standardami jakości.

Testowanie systemu powinno być wykonywane przez wysoce profesjonalny zespół testujący w środowisku możliwie najbardziej zbliżonym do rzeczywistego scenariusza biznesowego. Obecnie firmy wymagają aby ich oprogramowanie działało także na urządzeniach mobilnych. Dlatego też testy aplikacji mobilnych powinny być prowadzone razem z testami oprogramowania przeznaczonego na tradycyjne komputery. Dzięki temu można będzie sprawdzić wszystkie wersje oprogramowania, w tym wypadku należy sprawdzić poprawność wyświetlania na urządzeniach mobilnych, różnego rodzaju telefonach czy też tabletach, które mogą mieć różną rozdzielczość.