banner

1.4 Pruebas automáticas y automatizadas


¿Autómatico es lo mismo que automatizado? No. De forma general automático es aquello que no requiere de intervención humana pa su ejecución, y automatizado es aquello que se puede ejecutar de forma automática o semi-automática. Es decir, automático es un subconjunto de automatizado. En el caso de pruebas la distinción necesita considerar diferentes dimensiones: generación, ejecución, evaluación, reporte. Generación hace referencia a que las pruebas son construidas por un humano o son generadas de forma automática por un programa. Ejecución hace referencia a si las pruebas son ejecutadas por un humano o no. Evaluación tiene que ver con la forma como una prueba se cataloga como exitosa o fallida, es decir con la evaluación del oráculo. Y reporte, a la generación automática (o no) de las artefactos que "reportan" los resultados de la ejecución de las pruebas.

¿OK, pero qué es el oráculo? El oráculo de una prueba es el mecanismo que permite decidir si una prueba se ejecutó de forma exitosa o fallida. En esa medida un oráculo tiene los resultados esperados de una prueba, y el procedimiento de comparación de las resultados obtenidos versus los esperados1. De acuerdo con el procedimiento de comparación, los resultados de la prueba se pueden evaluar al final de cada paso de la prueba, al final de la prueba, o al final de un paso específico.

Existen diferentes tipos de oráculos en pruebas; el tipo más conocido es el basado en aserciones donde lo que se busca es comparar que los resultados de la ejecución de una aplicación sean los mismo esperados (ej., para la prueba T, la salida debe ser igual a Y, de lo contrario la prueba es fallida). Otros oráculos se denominan crash-based, que se usan en pruebas orientadas a buscar crashes/excepciones en una aplicación; por ejemplo "si al ejecutar algún evento en la GUI se genera una excepción" es un oráculo de tipo crash-based.

Si queremos ser estrictos con el término pruebas automáticas, su definición sería "pruebas de software que no requieren de intervención humana alguna para su generación, ejecución, evaluación y reporte"; es decir las pruebas automáticas son autónomas en todas sus dimensiones. Por lo tanto cuando si hay intervención humana en cualquier de las dimensiones, pero si hay uso de una máquina para cada una de las dimensiones, hablamos entonces de pruebas automatizadas.



1 A. Memon, I. Banerjee and A. Nagarajan, "What test oracle should I use for effective GUI testing?," 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings., Montreal, Que., Canada, 2003, pp. 164-173.





results matching ""

    No results matching ""