Un script de prueba en pruebas de software es un conjunto de instrucciones que se ejecutarán en el sistema bajo prueba para probar que el sistema funciona como se esperaba.
Existen varios medios para ejecutar scripts de prueba. Estos dos últimos tipos también se realizan en pruebas manuales.
Las pruebas automatizadas se pueden ejecutar de forma continua sin necesidad de intervención humana, son fácilmente repetibles y, a menudo, más rápidas. Las pruebas automatizadas son útiles en situaciones en las que la prueba debe ejecutarse varias veces, por ejemplo, como parte de una prueba de regresión . Las pruebas automatizadas pueden ser desventajosas cuando están mal escritas, lo que lleva a que se realicen pruebas incorrectas o no realizadas. [5]
Las pruebas automatizadas pueden, como cualquier software, estar mal escritas o simplemente fallar durante la reproducción. [6] También pueden examinar sólo aquello para lo que han sido programados para examinar. Dado que la mayoría de los sistemas están diseñados teniendo en cuenta la interacción humana, es una buena práctica que un humano pruebe el sistema en algún momento. Un evaluador manual capacitado puede notar que el sistema bajo prueba se está comportando mal sin que se le indique ni indique; Las pruebas automatizadas sólo pueden examinar aquello para lo que han sido programadas. Cuando se utilizan en pruebas de regresión, los evaluadores manuales pueden encontrar nuevos errores y al mismo tiempo garantizar que los errores antiguos no vuelvan a aparecer, mientras que una prueba automatizada solo puede garantizar lo último. A menudo se utilizan pruebas mixtas, con pruebas automatizadas y manuales; automatizar lo que debe probarse con frecuencia y que una máquina pueda verificar fácilmente, y utilizar pruebas manuales para realizar el diseño de pruebas y las pruebas exploratorias .
Se debe considerar el retorno de la inversión para automatizar cualquier script de prueba determinado, es decir, el costo de construir y mantener ese script es menor que el que se necesitaría simplemente ejecutarlo manualmente. Donde el costo se puede medir en términos de tiempo y/o dinero, pero también el costo de oportunidad de no liberar a las personas para realizar otros trabajos. [ cita necesaria ]