Necesito Hacer Pruebas Automáticas ¿Qué Pasos Debo Seguir?
La automatización de pruebas es un mecanismo que permite alcanzar varios objetivos entre los que se resaltan el ahorro de tiempo, la cobertura, la reutilización, la exactitud y el time-to-market. De esta misma forma se puede decir que para decidir hacer o no automatización de pruebas se sugiere seguir unos pasos que permitan que mis objetivos pueden ser cumplidos.
Puede darse el caso que el negocio tenga otro objetivo muy particular para lo cual se deberán incorporar ajustes para medir que el objetivo es alcanzado. Entonces, si hablamos de pruebas de caja negra (en otro artículo hablaremos de la automatización de caja blanca), los pasos a seguir sugeridos cuando se decide hacer automatización son:
1. Definir metas en mis objetivos de automatización de pruebas, esto me permitirá hacer un seguimiento al avance que estoy obteniendo con la automatización. En este punto es importante que el objetivo sea razonable con la dinámica de la empresa, por ejemplo, pretender una cobertura del 80% desde el inicio sin tener una base es muy ambicioso, en automatización es conveniente colocar unas metas incrementales.
2. Definir el conjunto de escenarios/funcionalidades a automatizar, en este punto es importante definir un mecanismo de selección donde se mida el esfuerzo manual Vs el esfuerzo de la automatización, de esta forma los escenarios/funcionalidades que más aporten en ahorro serán las que merezcan el foco inicial. Este mecanismo también permite crear una ruta de creación de pruebas automatizadas.
3. Definición de los niveles de automatización que se van a utilizar para los diferentes escenarios/funcionales que se han seleccionado. Es importante tener en cuenta la pirámide de automatización, no definir todas las automatizaciones a nivel de interface de usuario, hay que recordar que este nivel es el que menos automatizaciones debe tener ya que el costo en mantenimiento es más alto dada la susceptibilidad de las interfaces.
4. Definir el conjunto de herramientas que se usarán en la automatización, esto va ligado a restricciones corporativas y a los niveles de automatización definidos.
5. Definir un estándar de información de ejecución a almacenarse (logs y evidencias) por cada automatización que se va a desarrollar.
6. Desarrollo, en este punto es importante que las automatizaciones tengan una arquitectura definida, un control de versiones que esté ligado a las versiones del producto, y un mecanismo de despliegue donde se centralicen las ejecuciones y los resultados de las diferentes automatizaciones realizadas.
7. Finalmente hacer seguimiento, medir y corroborar los resultados objetivos a medida que el desarrollo y las ejecuciones automatizadas se van dando, esto permite ajustar el plan y evidenciar los resultados obtenidos.
Como punto a resaltar, hay que ser conscientes que las automatizaciones que se realicen deben abarcar los escenarios/funcionalidades que están en un plan de pruebas de regresión del producto, esto va a garantizar un retorno de la inversión realizada ya que nos asegura múltiples ejecuciones automatizadas.