Testowanie oprogramowania odbywa się na podstawie ustalonych zasad dzięki temu testy są wydajne, jednolite oraz miarodajne. Testowanie ma na celu wykrycie wad w oprogramowaniu.
Ale bez względu na to, jak dokładnie produkt zostanie przetestowany, nigdy nie możemy być w 100% pewni, że żadnych wad nie posiada. Można założyć że testowanie ma na celu wyeliminowane maksymalnej liczby błędów, jednak nie zawsze będzie możliwe usunięcie wszystkich. Podczas użytkowania oprogramowania w miejscu docelowym mogą wyjąć na jaw nowe problemy, związane jest to z tym iż nie można przewidzieć wszystkich zachowań użytkowników. Oprogramowanie zawsze tworzone jest tak aby być odporne na nieprawidłowe użytkowanie, przykładowo w pewnych formularzach mnożna podawać jeden typ danych. Jednak nie można zabezpieczyć się w 100% przed błędami. Nie ma możliwości przetestowania wszystkich kombinacji danych wejściowych, scenariuszy i warunków w jakich działa aplikacja. Warto także pamiętać iż wyeliminowanie jednej z wad w oprogramowaniu, może doprowadzić do powstania problemu w innych obszarach oprogramowania. Ciągłe wykonywanie tych samych zestawów testów nie pomoże znaleźć więcej problemów. Gdy tylko wykryte błędy zostaną naprawione, testy te należy zmienić.
Dlatego ważne jest regularne sprawdzanie i aktualizowanie testów w celu dostosowania i potencjalnego znalezienia większej liczby błędów.
Dlatego też testowanie oprogramowania zakłada ponowne testy w przypadku zmian w kodzie. W zależności od celu lub branży różne aplikacje powinny być testowane w różny sposób. Przykładowo oprogramowanie dla rachunkowości powinno być bardzo dokładnie przetestowane pod kątem obliczeń, nie może być tu miejsca na jakieś nieprawidłowości, ponieważ mogło by to prowadzić do dużych strat finansowych. Trzeba przeanalizować wiele scenariuszy, przykładowo związanych z zaokrąglaniem kwot. Oprogramowanie tego typu często będzie powiązane z danymi aktualizowanymi w czasie rzeczywistym, takimi jak kursy walut, czy ceny akcji giełdowych. Dlatego też warto sprawdzić także tego rodzaju moduły.