Pruebas funcionales a nivel de producto de software, testing de servicios web e integración continua, algunos pasos de la automatización.
Por: Mariana Vargas, Principal QA Engineer de Prodigious.
La automatización de pruebas de software parece convertirse en un trending topic especialmente, para los conocedores de tecnología, viéndose reflejado en tres áreas importantes del desarrollo de proyectos como lo son: costos, calidad del producto y tiempo. Pero, ¿de qué se trata? La automatización de pruebas en calidad de software, se refiere al uso de herramientas de desarrollo para la transformación de casos de prueba manuales en scripts de programación, esto con el fin de controlar la ejecución y comparación de los resultados de dichas pruebas.
Es una técnica que busca potenciar la efectividad, complementar y dar soporte a las tareas manuales que realiza un especialista en el área de la calidad. Reduciendo los costos del proyecto agilizando y acortando los ciclos de ejecución de las pruebas, todo esto si se realiza de manera adecuada.
En el caso de Prodigious, además de la ejecución técnica se cuenta con un talentoso recurso humano, que con sus habilidades blandas supervisa el proceso junto con los equipos de desarrollo de software y calidad. El trabajo con pensamiento global es característico en el talento de la compañía.
La automatización genera grandes retos para este segundo semestre del año, entre ellos:
1. A nivel profesional, como parte del mejoramiento de los procesos de automatización de software, se deben desarrollar más especializaciones relacionadas con este tema para el crecimiento del área. En la actualidad, se cuentan con certificaciones y cursos en línea que valdría la pena promocionar para ampliar el número de expertos. Se requiere que las universidades y centros de formación tanto públicos como privados generen nuevas ofertas académicas alrededor de QA Engineering, para que los especialistas puedan prepararse no solo en la teoría sino para resolver casos reales.
2. Mayor incorporación de pruebas automatizadas en procesos de integración continua. Surge una fuerte necesidad por incrementar la velocidad de los tiempos de entrega de software sin afectar la calidad de los productos, por lo cual es importante comprender el rol de la automatización en procesos de devOps para potenciar la reducción de tiempos, la eficacia en la evaluación del producto y la mitigación de riesgos por medio de la integración con otros sistemas.
3. La calidad es responsabilidad de todos. Alcanzar un siguiente nivel en las pruebas de automatización, no solamente se puede lograr realizando implementaciones con nuevas tecnologías mas allá de pruebas funcionales en interfaces de usuario, pero también abriendo campo a la exploración con nuevas herramientas emergentes que ayuden a extender el uso de esta técnica para la colaboración con equipos como desarrolladores, y potenciando metodologías como BDD para promover la colaboración, dando visibilidad a personas no técnicas sobre las mismas pruebas y su valor para el negocio.
4. Integrar al QA Engineer desde la primera fase hasta la final del desarrollo del producto. Actualmente se relega este rol a una fase, en muchas ocasiones la etapa final del proceso, desconociendo que el QA, aporta a la prevención de defectos en etapas tempranas y en la construcción de estrategias de mitigación de riesgos utilizando herramientas como las pruebas de automatización en procesos de evaluación continua.
Aunque aún existen retos a enfrentar, no se puede negar que la automatización en el área de calidad se consolida cada día como una herramienta vital para el soporte de tareas manuales de ejecución de pruebas, convirtiéndose así en una habilidad indispensable que deben de continuar desarrollando todos los especialistas en calidad, para poder continuar evolucionando así con el desarrollo de software y las necesidades del mercado.