
Las pruebas de software son básicamente un conjunto de actividades dentro del desarrollo de software. Dependiendo del tipo de pruebas, estas actividades podrán ser implementadas en cualquier momento de dicho proceso de desarrollo. Existen distintos modelos de desarrollo de software, así como modelos de pruebas. A cada uno corresponde un nivel distinto de involucramiento en las actividades de desarrollo.
Las pruebas de software (en inglés software testing) son las investigaciones empíricas y técnicas cuyo objetivo es proporcionar información objetiva e independiente sobre la calidad del producto a la parte interesada o stakeholder. Es una actividad más en el proceso de control de calidad.
El objetivo de las pruebas es presentar información sobre la calidad del producto a las personas responsables de éste. Las pruebas de calidad presentan los siguientes objetivos: encontrar defectos o bugs, aumentar la confianza en el nivel de calidad, facilitar información para la toma de decisiones, evitar la aparición de defectos.
Teniendo esto presente, la información que puede ser requerida es de lo más extensa que puedes imaginar. Esto hace que el proceso de testing sea completamente dependiente del entorno en el que se desarrolla.
El ambiente ideal del testing es aquel que es externo del desarrollo del software, de esta manera se logra objetividad en las pruebas.
En la actualidad, no existen las "mejores prácticas" como tal para el desarrollo de pruebas. Mientras en una situación podría funcionar una prueba, en otras sería completamente inutil.
Por esto, las actividades, técnicas, documentación, enfoques y demás elementos que condicionarán las pruebas a realizar, deben ser seleccionadas y utilizadas de la manera más eficiente según contexto del proyecto.
PRUEBAS ESTÁTICAS.
Las pruebas estáticas son realizadas sin un código en ejecución tales como a la revisión de documentos, ya que no se hace una ejecución de código. Esto se debe a que se pueden realizar "pruebas de escritorio" con el objetivo de seguir los flujos de la aplicación.
PRUEBAS DINÁMICAS.
Todas aquellas pruebas que para su ejecución requieren la ejecución de la aplicación. Permiten el uso de técnicas de caja negra y caja blanca con mayor amplitud. Debido a la naturaleza dinámica de la ejecución de pruebas es posible medir con mayor precisión el comportamiento de la aplicación desarrollada.
PRUEBAS MANUALES Y AUTOMÁTICAS.
Cuando se dirige el desarrollo o el control de calidad de un producto software. La idea de sustituir horas de pruebas manuales por pruebas automáticas suena perfecta. Pulsar “un botón” y lanzar automáticamente las pruebas. Pero cuando se le da unas cuantas vueltas al tema, se empiezan a ver algunos problemas y aparecen las dudas.
El siguiente cuadrantes que aparecen en el libro Agile Testing, clasifica los diferentes tipos de pruebas y la estrategia recomendada para las mismas:
