Un framework es un conjunto de reglas y normas diseñadas para crear Casos de Prueba. Un framework de pruebas es un conjunto de herramientas y prácticas útiles que hacen que los profesionales en el Aseguramiento de Calidad prueben de manera más eficiente.
Estas reglas pueden incluir estándares para escribir código, métodos para utilizar la data de pruebas, repositorios de objetos y procesos para almacenar los resultado de las pruebas, entre otros.
Beneficios de Utilizar un Framework de Pruebas
Algunos de los beneficios obtenidos al utilizar un framework de pruebas son:
- Mejorar la eficiencia
- Bajo costo de mantenimiento
- Intervención manual mínima
- Máxima cobertura del código fuente
- Reutilización de código
Existen diferentes tipos de frameworks de pruebas, cada uno cuenta con sus ventajas y desventajas. Algunos tipos de frameworks de pruebas existentes son:
Framework Lineal: Es un framework básico que tiene una utilización de tipo grabar y reproducir. Los usuarios no necesitan crear funciones complejas y los pasos a seguir son de orden secuencial. Las instrucciones se almacenan y dichos pasos secuenciales son reproducidos uno a uno cada vez que se desea realizar la prueba.
Ventajas del Framework Lineal
- No hay necesidad de escribir código fuente, por lo tanto no es necesario tener mucha experiencia en automatización.
- Es muy rápido crear las pruebas automatizadas.
- Es fácil de entender ya que todo se detalla de manera secuencial.
- Es fácil aprender una nueva herramienta. La mayoría de aplicaciones de automatización traen esta funcionalidad.
Desventajas del Framework Lineal
- El código usualmente no es reutilizable. Cuando cambia un paso en la secuencia de el caso de prueba, el código anterior queda obsoleto y regularmente no se puede modificar de forma sencilla.
- El mantenimiento es complicado, ya que cuando algo cambia dentro de la aplicación hay que grabar un nuevo set de pasos y en ocasiones esto involucra muchos escenarios de prueba. Además la escalabilidad de la aplicación no es posible.
Framework Modular: Este framework requiere que el Ingeniero de Calidad divida la aplicación en diferentes unidades, secciones o funcionalidades, las cuales tienen que ser probadas de forma independiente. Luego de haber dividido la aplicación en cada uno de estos módulos se crea código de pruebas para cada uno de ellos, también se pueden combinar diferentes módulos para así crear pruebas mas grandes que coincide con otros escenarios de prueba.
Ventajas del Framework Modular
- Si la aplicación cambia el mantenimiento es sencillo, porque solo se modifica el módulo o la funcionalidad que es afectada por ello.
- Se puede reutilizar el código de los módulos o funciones.
Desventajas del Framework Modular
- Algunas herramientas no permiten la parametrización de la data por lo que los módulos no son reusables en estos escenarios.
- Se requiere que el usuario tenga conocimiento sobre programación.
Framework Basado en Datos: Frecuentemente los Ingenieros de Calidad necesitan probar la misma funcionalidad o el mismo módulo utilizando diferentes conjuntos de datos. En estos casos es necesario que los datos de prueba no se encuentren escritos directamente en el código fuente como sucedería en el framework lineal o modular.
El framework basado en datos permite al ingeniero de pruebas almacenar los datos que se utilizarán en una fuente externa como hojas de Excel, archivos de texto, archivos separados por comas, tablas de SQL o repositorios ODBC.
El código fuente de las pruebas se conecta con los repositorios de datos y el código lee y completa dicha data cuando sea el momento indicado.
Ventajas del Framework Basado en Datos
- Las pruebas pueden ejecutarse con distintos conjuntos de datos sin reescribir el código.
- Es posible probar múltiples escenarios cambiando solo la data sin escribir varias veces el código.
- La data no está escrita dentro del código fuente, por tanto, modificaciones en los datos y en el código son independientes.
- Se ejecutan muchas más pruebas de forma más rápida.
Desventajas del Framework Basado en Datos
- Es necesario que el Ingeniero tenga bastante experiencia en lenguajes de programación para utilizar este framework de manera adecuada, debido a la conexión en interacción con los datos el Ingeniero debe ser capaz de escribir el código para realizar estas acciones.
- Utilizar este framework toma más tiempo y es más complejo en escribir. Se requiere un mayor nivel de abstracción.
Framework Basado en Métodos de Entrada: Es un framework similar al basado en datos, sin embargo en el repositorio de datos no se almacenan datos como tal, sino que se almacenan acciones que se pueden realizar con los métodos de entrada como el teclado o el mouse. Este framework se utiliza principalmente para probar la Interfaz Gráfica de la aplicación.
Los escenarios de prueba se almacenan como acciones consecutivas a seguir por parte del framework.
Tabla de Acciones:
Luego el Ingeniero de Pruebas debe escribir el código necesario para cada una de las acciones que se van a ejecutar. Cuando la prueba se ejecute la data apunta a cada uno de los identificadores y el framework ejecuta el código en cada uno de dichas acciones.
Ventajas del Framework Basado en Métodos de Entrada
- No es necesario mucho conocimiento en escribir pruebas.
- Un mismo identificador puede utilizarse en distintas pruebas, por tanto el código es reusable.
- El código se puede escribir de forma independiente a la aplicación que se prueba.
Desventajas del Framework Basado en Métodos de Entrada
- El costo para configurar el framework es alto. Consume bastante tiempo y es complejo. Los identificadores tienen que colocarse en el repositorio de objetos y deben definirse las librerías a utilizar.
- Se necesita que el ingeniero tenga bastante experiencia en lenguajes de programación.
- Los identificadores pueden ser complicados de mantener. Es necesario un mantenimiento constante de los repositorios y de los identificadores.
Framework Híbrido: Como sucede con bastantes procesos en la actualidad, los frameworks de pruebas automatizadas han comenzado a integrarse e intersectarse unos con otros. Como lo dice su nombre un framework híbrido es una combinación de cualquiera de los frameworks mencionados anteriormente para así aprovechas sus fortalezas y minimizar sus vulnerabilidades.
Todas la aplicaciones son distintas, por tanto los procesos utilizados para probarlas también son distintos de aplicación a aplicación. Conforme los equipos van adoptando una metodología ágil, el hecho de que el framework de pruebas sea flexible es crucial. Un framework híbrido puede ser adaptado de manera mas sencilla para así obtener mejores resultados.
Framework Basado en el Comportamiento: Este framework busca crear una plataforma que permita a todos los integrantes del proyecto (Analistas de Requerimientos, Desarolladores, Ingenieros de Pruebas, etc.) que participen de manera activa en el diseño de las pruebas. Requiere una colaboración muy fuerte entre los equipos de desarrollo y aseguramiento de calidad. No requiere que los usuarios tengan conocimiento de lenguajes de programación. Utiliza lenguaje natural para diseñar las especificaciones de las pruebas. Algunas herramientas de desarrollo para pruebas basadas en el comportamiento son JBehave y Cucumber.
Es necesario que el Ingeniero de Pruebas conozca cuáles son las distintas opciones de frameworks que existen en la actualidad para así realizar una decisión informada sobre cuál o cuáles son los frameworks más adecuados para su proyecto y también para realizar su trabajo de la forma más rápida y eficiente posible. También es útil para el Ingeniero de Pruebas conocer cómo se entrelazan su herramienta de pruebas automatizadas y el framework que utiliza para así comprender mejor los conceptos a utilizar y cómo la herramienta implementa dichos conceptos.