Teoretycznie do napisania programu komputerowego, gry lub aplikacji mobilnej wystarczy programista i komputer z zainstalowanym odpowiednim środowiskiem programistycznym. Jednak w praktyce proces powstawania programów w profrejonalnych firmach jest znacznie bardziej skomplikowany, a jednym z jego ważnych elementów jest testowanie.
Testy oprogramowania stały się obecnie na tyle ważną sprawą, że w firmach informatycznych czymś absolutnie normalnym są zespoły wykwalifikowanych testerów. Testami obejmuje się bowiem nie tylko sprawdzenie, czy aplikacja poprawnie działa – to zaledwie ich mały ułamek. Zadaniem testerów jest również badanie wydajności aplikacji i jej niezawodności, czyli działania na dużym obciążeniu. Ponadto sprawdza się działanie programu na różnych urządzeniach i systemach operacyjnych, a w przypadku aplikacji internetowej na różnych przeglądarkach.
Z kolei w przypadku aktualizacji programu niezbędne są tzw. testy regresyjne, sprawdzające, czy wprowadzone zmiany nie spowodowały niewłaściwego funkcjonowania wcześniej istniejących części programu. Część testów można wykonać ręcznie, na zasadzie sprawdzania czy podczas używania programu dzieje się coś niewłaściwego (tzw. „małpie testy”), ale istnieje sporo programów i środowisk ułatwiających pracę testera.
Najpopularniejszym z nich jest Selenium, czyli środowisko umożliwiające automatyzację testów; ponadto testerzy podczas testów performance’u często korzystają z programów badających czas odpowiedzi serwera lub generujących sztuczny ruch na aplikacji.