Pocas veces se habla de esas personas que se dedican a revisar las herramientas que nos ayudan cada día. Probar se podría decir que es un arte, es el arte de ver cómo analizar y confirmar que el funcionamiento es el correcto. Para este caso nos vamos a centrar en el software. El software es algo muy complejo de probar, son muchas piezas de un rompecabezas de las cuales se quiere probar cada parte, y además las interaciones entre las partes.

Lo más normal a día de hoy son las páginas web y las aplicaciones móviles. Aunque hay muchas cosas que ver, hoy vamos a realizar una introducción a este mundo tan interesante.

Páginas web

Las páginas web se componen de diversas partes. Tenemos la parte visual, el código ejecutado en el navegador y el código del servidor. La parte visual tiende a ser una de las partes más complejas. Cada navegador renderiza las cosas de una forma parecida, pero no de la misma forma. Por suerte hace tiempo desapareció el famoso Internet Explorer. De este navegador les podríamos contar muchos detalles peculiares que tenía. La anecdota más curiosa que tenemos es que para centrar un texto de forma vertical y horizontal se creaba una tabla, y se centraba el contenido.

La mayoría de páginas web suelen tener una interfaz pública para el intercambio de datos. Esta interfaz o API tiende a realizar un trabajo muy importante que además suele ser el más crítico. Si tenemos acceso directo al API tendremos acceso directo a los datos. Para probar esta parte no hace falta nada en especial, ya que con cualquier lenguaje de programación se pueden automatizar estas pruebas. Normalmente se utiliza el mismo lenguaje que se utiliza en la parte visual, esto permite poder compartir código en caso de necesidad.

En la parte visual no hay mucho trabajo que automatizar. Al realizar cambios visuales normalmente se necesita una comprobación manual. Una vez realizadas estas comprobaciones existe el proceso de comparación de capturas de pantallas, automatizando parte del trabajo. Existen más téncicas en este aspecto, utilizando las capturas con filtros o inteligencia artificial para revisar sólo una parte de la imagen. Para probar esta parte se necesita un navegador con Selenium. Los navegadores suelen permiter el uso en modo headless, eliminando la necesidad de tener que tener una interfaz en pantalla. También tenemos la posibilidad de utilizar Selenoid con Docker. O utilizar herramientas externas para poder hacer uso de diferentes sistemas operativos y navegadores.

Aplicaciones móviles

Tenemos dispositivos móviles de todas las formas, colores, tamaños de pantalla y sistemas operativos. Con todo esto revisar aplicaciones móviles es un trabajo costo y complicado. En el caso de iOS el proceso se hace un poco más simple al tener un menor número de configuraciones posible. En cambio para Android esto es bastante más complejo, debido a una gran fragmentación y un gran número de fabricantes.

Para realizar pruebas en todo tipo de dispositovs se utilizan granjas de móviles. Una forma sencilla de poder revisar una aplicación móvil sin tener los dispositivos. Así mismo, se suele utilizar con pruebas automáticas, de esta forma tenemos una forma de validar que funciona en un gran número de configuration. Tambíen existen emuladores, que suelen dar problemas o necesitar ordenadores con una gran potencia, pero es una forma sencilla de probar.

Por último, hay que tener en cuenta que existe una gran cantidad de aplicaciones móviles que tienen una parte de página web, o incluso son una página web. Esto plantea una nueva forma de probar sin necesidad de dispositivos, con un navegador se pueden probar todo tipo de configuraciones.

Para este tipo de pruebas se suele utiliza Appium, permitiendo la automatización de las pruebas para diversos dispositivos.

Aplicaciones de Big Data

El mundo del Big Data es un nuevo mundo, y no hay un método de pruebas para todo tipo de aplicaciones. Las pruebas de datos siguen el método científico, y por eso se basan mucho en la prueba y error. Al probar datos muchas veces no tenemos una verdad absoluta o una forma de validar el dato después del procesado completo. Para estas pruebas hay que innovar en la forma de trabajar, y en nuevas formas de probar.

En esta apartado no tenemos una herramienta o lenguaje específicos ya que depende de la herramienta y el objetivo de las pruebas. Normalmente se suelen utilizar herramienta de análisis de datos como pandas o numpy con cuadernos de Jupyter, simplificando el proceso de revisión.

Conclusiones

Después de ver todo lo anterior, podemos concluir que es un mundo muy interesante y en plena expansión. Es sólo el inicio de todo lo que podemos ver y analizar sobre el mundo de las pruebas.

En futuros artículos analizaremos más en profundiad cada parte.