Por Florent M. - TheExpert, responsable técnico del equipo Digital Factory Squad
Más rápidas, de mayor calidad y con un alcance más amplio que las pruebas manuales, la automatización de las pruebas funcionales lo tiene todo para atraer a los desarrolladores informáticos y permitirles entregar, en las mejores condiciones, un producto de calidad.
Pero, por cierto, ¿qué es exactamente una prueba funcional?

En pocas palabras, una prueba funcional es una descripción formal del comportamiento de un producto, expresada en forma de escenario. El conjunto de escenarios, que se reproducen en el momento de la entrega del producto, permite verificar su correcto funcionamiento.
En concreto, en el caso de una aplicación móvil, una prueba funcional evaluará todas sus funcionalidades: ¿funciona el módulo de registro?, ¿se puede dar de baja?, ¿funciona la navegación por las distintas secciones? … La idea principal esimitar el comportamiento de un usuario mientras explora las funcionalidades.
Las pruebas funcionales son el último eslabón de la cadena lógica de pruebas que validan la calidad de un producto. Complementan las pruebas unitarias y las pruebas de integración. Las pruebas funcionales verifican el correcto funcionamiento final, en un entorno similar al de producción.
¿Por qué automatizar las pruebas funcionales?
Ante un número cada vez mayor de productos (aplicaciones, sitios web, etc.), es necesario ganar tiempo y mejorar la rentabilidad en la producción. Por lo tanto, hay cuatro razones principales para automatizar las pruebas funcionales:
- La automatización de las pruebas permite una mayor rapidez en la ejecución
- Además de ser más rápidos, permiten entregas más breves y frecuentes, lo que encaja perfectamente con los métodos ágiles y DevOps. De hecho, la automatización, por su frecuencia, reduce de forma natural el TTM (Time To Market, es decir, el tiempo que tarda una idea en convertirse en una funcionalidad útil).
- La automatización permitemejorar la calidad y la cobertura de las pruebas, especialmente cuando el producto sometido a prueba se actualiza continuamente. Esto permite detectar lo antes posible las regresiones que podrían haber pasado desapercibidas en pruebas anteriores.
- Por último, y ahí radica precisamente el interés de la automatización: en teoría, este método permite reducir los costes, ya que la máquina sustituye al ojo humano.
¿Quién se encarga de automatizar las pruebas?
En un equipo ágil, el responsable de control de calidad debe ser autónomo a la hora de realizar sus pruebas. Cada vez es más habitual que se le pida que cree también sus propios scripts de automatización, que se integrarán en una cadena de CI/CD.
¿Qué herramientas existen para automatizar las pruebas funcionales web?
Existen multitud de marcos de trabajo disponibles para otros contextos: aplicaciones móviles, aplicaciones de escritorio y servicios web. Nos centraremos en las herramientas que permiten probar aplicaciones web.
En el mercado existen diferentes soluciones que se diferencian tanto por sus funcionalidades como por su coste. En función del producto que se vaya a probar, se optará, naturalmente, por la herramienta más adecuada.
HP QTP; IBM RFT; SilkTest o Selenium… Hoy en día existen numerosas soluciones de automatización de pruebas, y cada una tiene sus propias características.

Cabe señalar, sin embargo —y dado que el objetivo mismo de automatizar las pruebas funcionales es reducir los costes—, que Selenium, al ser de código abierto, ofrece un amplio abanico de aplicaciones con una licencia de coste cero.
