Los tipos de pruebas al software se pueden clasificar en:
Pruebas unitarias: se realizan a módulos o clases del programa, por separado. Es decir, a cada unidad que compone la aplicación. Para hacerlas, debemos de tener en cuenta:
- La interfaz del módulo o componente.
- El impacto de datos globales sobre el módulo.
- Las estructuras de datos en el módulo.
- Las condiciones límite.
- Los distintos caminos de ejecución de las estructuras de control.
Pruebas de integración: integran componentes y módulos del programa según un orden preestablecido. Se prueba el funcionamiento de la interrelación de todos los módulos.
Pruebas de sistema: validan que la aplicación tenga la funcionalidad que el usuario final espera de ella. Las pruebas de sistema se ven como una "caja negra".
Pruebas de regresión: después de realizar algún tipo de modificación en el código del programa, consisten en volver a ejecutar un conjunto de pruebas que se han llevado a cabo anteriormente para asegurarse de que los cambios no han propagado efectos colaterales no deseados.
Pruebas funcionales: su objetivo es detectar errores en la implementación de los requerimientos.
Pruebas de capacidad y rendimiento. La prueba de capacidad (también conocida como prueba de resistencia) ejecuta un sistema de forma que demande recursos en cantidad, frecuencia o volúmenes anormales. La de rendimiento determina los tiempos de respuesta (lo rápido que realiza una tarea un sistema en condiciones de trabajo), el espacio que ocupan los módulos en disco y en memoria, el flujo de datos que se genera, etc.
Pruebas de uso de recursos: también conocidas como pruebas de eficiencia, se encargan de optimizar el uso de los recursos software y hardware de una aplicación.
Pruebas de seguridad: la prueba de seguridad intenta verificar que los mecanismos de protección incorporados en nuestro sistema lo protegen de accesos no autorizados.
Pruebas de usuario: este tipo de prueba (también conocida como de usabilidad) se refiere a asegurar que la interfaz de usuario (GUI) sea amigable, intuitiva y que funcione correctamente.
Pruebas de aceptación: estas pruebas son realizadas por el cliente final. Consisten en pruebas funcionales sobre el sistema completo. Se realizan sobre el producto terminado y nunca durante el desarrollo del sistema o de la aplicación.