Por lo general, las pruebas apuntan a mostrar que el software funciona según lo previsto, pero la depuración es el proceso de eliminar errores de una aplicación de software. Sin embargo, las pruebas son más complicadas que simplemente demostrar que una aplicación de software funciona. .
Para proyectos de software grandes, las pruebas se pueden dividir en varias fases en las que cada fase tiene un objetivo distinto. Para proyectos más pequeños, las pruebas y la depuración a veces se realizan simultáneamente.
En general, las pruebas están destinadas a localizar defectos en una aplicación de software. Su objetivo es demostrar que el software alcanza su funcionalidad prevista a un cierto nivel, que generalmente se establece con una funcionalidad inferior al 100 por ciento, ya que es inusualmente difícil de lograr. Las pruebas pueden realizarse manualmente, pero para grandes proyectos, no es raro automatizar el proceso.
La depuración está destinada a localizar y eliminar errores del software. Por lo general, es manual y se realiza una vez para cada error porque un error es diferente de otro. Un error en la mayoría de los casos es la diferencia entre lo que realmente hace una aplicación de software y lo que se pretende que haga.
Los errores pueden ser lógicos o sintácticos. Los programas especializados que ubican estos errores se llaman depuradores, y la mayoría de los entornos de programación vienen con un depurador incorporado.