Za testowanie najczęściej uważa się tylko wykonywanie testów, to jest uruchamianie oprogramowania. Wykonywanie testów stanowi tylko część testowania, bowiem istnieją jeszcze inne czynności związane z testowaniem.
Czynności testowania występują zarówno przed, jak i po wykonywaniu testów. Należą do nich: planowanie i nadzór, wybór warunków testowych, projektowanie i wykonywanie przypadków testowych, sprawdzanie wyników, ocena spełnienia kryteriów zakończenia, raportowanie procesu testowania i testowanego systemu oraz kończenie i zamykanie testów (po zakończeniu fazy testów). Do testowania zalicza się także przeglądy dokumentacji i kodu źródłowego oraz analizę statyczną.
Testy dynamiczne i statyczne mogą służyć jako środek do osiągnięcia podobnych celów. Oba rodzaje testów dostarczają informacji pozwalających na doskonalenie zarówno testowanego systemu jak i procesów rozwoju i testowania oprogramowania.
Istnieją różne cele testowania:
- znajdowanie usterek
- nabieranie zaufania do poziomu jakości
- dostarczanie informacji potrzebnych do podejmowania decyzji
- zapobieganie defektom
Proces myślowy oraz czynności związane z projektowaniem testów wcześnie w cyklu życia oprogramowania (weryfikacja podstawy testów przez projektowanie testów) mogą zapobiec wprowadzeniu usterek do kodu. Przeglądy dokumentów (np. specyfikacji wymagań) oraz identyfikacja i rozwiązywanie problemów również pomagają w przeciwdziałaniu pojawianiu się defektów w kodzie.
Różne punkty widzenia pozwalają na wzięcie pod uwagę w testach różnych celów. Na przykład w testowaniu wytwórczym (np. testowaniu modułowym, integracyjnym lub systemowym) głównym celem może być wywołanie tylu awarii ile się da, żeby zidentyfikować i poprawić usterki występujące w oprogramowaniu. W testach akceptacyjnych głównym celem może być potwierdzenie, że system działa tak jak powinien oraz nabranie pewności, że spełnia wymagania. W niektórych przypadkach celem testowania może być ocena jakości oprogramowania (bez intencji naprawiania defektów), by dostarczyć interesariuszom informacji o ryzyku związanym z wydaniem systemu w danej chwili. Testowanie pielęgnacyjne często zawiera testy sprawdzające, czy nie wprowadzono nowych usterek podczas wykonywania zmian. Głównym celem testowania produkcyjnego może być ocena atrybutów systemu takich jak niezawodność lub dostępność.
Debagowanie różni się od testowania. Testowanie dynamiczne może pokazać awarie, których źródłem są usterki. Debagowanie jest czynnością programistyczną, która znajduje, analizuje i umożliwia usunięcie przyczyny awarii. Późniejsze testy potwierdzające (retesty) wykonywane przez testera gwarantują, że poprawka rzeczywiście usunęła usterkę. Odpowiedzialność za każdą z tych czynności jest zwykle inna tj. testerzy testują, a programiści debagują.
Proces testowania i czynności z nim związane omówione są w podrozdziale 1.4.