Cualquier producto de software que se haya saltado la fase de pruebas, que no funcione bien o que tenga margen de mejora debe someterse a pruebas exhaustivas. El software puede probarse en todas las fases y aspectos: pruebas funcionales, de rendimiento, de seguridad o de usabilidad en la fase de diseño, desarrollo o prelanzamiento.