Każdy program, jakie się tworzy, bez względu na to, czy ma on pracować na serwerach, komputerach klienckich, telefonach czy jakichkolwiek innych urządzeniach, przygotowywany jest do pełnienia określonych zadań. Jednak programista, który tworzy kod programu, bardzo rzadko jest w stanie samodzielnie przetestować jego działanie.

Testowanie oprogramowania jest etapem, bez którego tworzenie programów w zasadzie nie ma sensu. Trzeba dobrze poznać możliwości programu, ponieważ czasem w kodzie pojawi się błąd, którego nie uda się wyłapać jedynie przewijając przed oczami niekompilowany program. Oczywiście, dobry tester oprogramowania weźmie pod uwagę w miarę możliwości również kod programu, jednak naczelnym zadaniem jest zawsze wychwycenie błędów w jego działaniu.

Wykrywając błędy w programach na etapie prac nad nimi, zanim zostaną udostępnione klientom, gwarantujemy wyższą jakość oprogramowania. To z kolei przekłada się wyraźnie na opinię o programiście i dalej, na jego zysk, ale też na zadowolenie klientów. Nie można dopuścić do sytuacji, w której nagle użytkownik odkryje w programie błąd, który przeoczyła kontrola jakości: w ten sposób klient traci nie tylko zaufanie do firmy, która ów program przygotowała, ale także do wyników działania programu, co jest tym istotniejsze, jeśli oprogramowanie miało zastosowania komercyjne lub było wykorzystywane w celach naukowych.

Oczywiście pewnych błędów często nie daje się uniknąć. W takim przypadku, jeśli nie da się ich naprawić, najważniejsze jest, aby przekazać użytkownikom pełną informację o tym, gdzie tkwi problem oraz w jaki sposób może on modyfikować wyniki programów. Dopóki mówimy o programach pracujących na liczbach, błąd często daje się skorygować, ale w przypadku gier lub aplikacji o podobnym charakterze, błędy mogą prowadzić do awarii systemu.