Skip to main content

¿Qué son las pruebas de software automatizadas?

El software se prueba para confirmar que todas las entradas válidas se interpretan y ejecutan correctamente, mientras que las entradas incorrectas se descartan. Las pruebas también verifican que los resultados se generan de manera eficiente, y que un gran volumen de datos puede manejarse sin problemas. Las pruebas pueden llevarse a cabo de forma manual o electrónica. Las pruebas de software automatizadas implican el uso de software especializado para probar el código que se está desarrollando. Dichas pruebas benefician el proceso de desarrollo de software, cuando se aplica juiciosamente.

Las pruebas manuales dependen de la meticulosidad de las personas que realizan las pruebas. Las pruebas manuales de software requieren mucho tiempo y necesitan una proporción significativa de evaluadores y desarrolladores para la mayoría de las aplicaciones. Esto aumenta el costo de desarrollo. Además, las pruebas manuales tienen la limitación de que grandes cantidades de datos, o grandes cantidades de usuarios o entradas simultáneas, no se pueden probar fácilmente.

Las pruebas de software automatizadas controlan mediante programación la ejecución de pruebas y la evaluación de resultados. El software de prueba proporciona entradas, que corresponden a diferentes condiciones, al software que se está evaluando. Para cada conjunto de condiciones, el software de prueba compara los resultados reales con los resultados deseados, y mantiene estadísticas sobre el comportamiento agregado del software objetivo. Después de una "ejecución", el software de prueba generalmente proporciona resultados resumidos para que las personas puedan determinar rápidamente qué remediar.

En las pruebas automatizadas de software, las tareas tediosas involucradas en las pruebas, como iniciar sesión o ingresar datos como direcciones postales, se mecanizan. Se pueden probar grandes combinaciones de condiciones en cada ejecución. Dado que las pruebas automatizadas implican el uso de computadoras y software, también permite la simulación de grandes cargas de datos de entrada o entradas extremadamente rápidas. Cada ejecución de una serie de condiciones de prueba se puede completar en cuestión de horas. Por lo tanto, las pruebas automatizadas son muy útiles para las pruebas de regresión, lo que garantiza que una nueva función o corrección de errores no haya roto accidentalmente el código que funcionaba anteriormente.

Algunas metodologías de desarrollo recientes como Extreme Programming enfatizan que las pruebas estén disponibles antes de la codificación. Las metodologías de desarrollo enfatizan que las pruebas de regresión se realicen varias veces al día para garantizar la corrección del software a medida que se desarrolla. Si el equipo de software tiene que adherirse a esta metodología para cualquier software significativo, es obligatorio que se utilicen pruebas de software automatizadas.

El software de prueba de automatización debe alimentarse con las entradas y salidas deseadas. Una forma de hacerlo es almacenar las condiciones de prueba manual en el software. Otra forma es escribir código para generar varias condiciones, dentro de los límites aceptables del software que se va a probar. Por lo tanto, la base de las pruebas automatizadas de software es definitivamente el esfuerzo humano. El software de prueba automatizado no puede ir más allá de esto por sí solo.

Las pruebas automatizadas de software tienen un costo significativo en términos del software que se debe adquirir también en su uso. Entonces, si automatizar y qué parte de las pruebas automatizar, son decisiones clave. Las pruebas automatizadas no son apropiadas para las características y los entornos que se espera que cambien significativamente. En la mayoría de las aplicaciones, es adecuada una combinación de pruebas manuales y automatizadas.