Las mejores herramientas para pruebas en el año 2018: ¿cuál usaremos?

En la última década se ha puesto de moda, incluso es un oficio -y en algunos casos se ha convertido en profesión- el término usuario beta para referirse al usuario de pruebas quien está ubicado entre el programador y el usuario final pero ¿se han preguntado quién o qué está primero o delante, hoy en día, del usuario beta? ¡Acompañadnos hoy en nuestra disertación sobre las herramientas para pruebas!

Introducción  a las herramientas para pruebas

Las herramientas para pruebas tienen una curiosa historia: desde los años 80 los programadores de juegos como John Romero han tenido códigos especiales para aprobar rápidamente los niveles o ir directamente a la última etapa de programación. Consideramos que eran, de facto, herramientas para pruebas muy rudimentarias pero debemos tener en cuenta que el costo y capacidad de los ordenadores para aquella época (somos testigos) impedían, en la práctica, el automatizar las pruebas.

Para este siglo XXI los equipos pronto comenzaron a sobrepasar las capacidades de uso de sus propietarios y la potencia de cálculo nos permitió usarlos más allá del uso común y corriente. Una de esa tareas es la ejecución de herramientas para pruebas orientadas hacia el campo que nos incumbe por acá: la monitorización. Las herramientas para pruebas se utilizan, por ejemplo en la monitorización de Caja Abierta y Cerrada, y en el artículo sobre la optimización de rendimiento web os nombramos algunas de ellas («Selenio, TestingWhiz y TestCompleto»). Por supuesto, Pandora FMS y la flexibilidad que le caracteriza combina todo ello en la Monitorización UX PWR. Os invitamos a leer dichas publicaciones y regresar con nosotros acá para profundizar en las herramientas para pruebas.

Y en fin ¿qué son herramientas para pruebas?

Con el advenimiento de la automatización del desarrollo de software se hizo patente que necesitaríamos más que un simple usuario beta para lograr alcanzar las normas internacionales «de madurez»: necesitamos un usuario beta programador, es decir, una persona que tenga la capacidad de «hablar» diversos lenguajes de programación como base y que luego escoja las herramientas de prueba más adecuadas en cada caso a fin de automatizar las pruebas de software para mantenerse al día con el desarrollo continuo de software.

Nótese que en este artículo no  recomendaremos ningún software en particular porque incluso nuestra herramienta hecha en casa necesita de Pandora FMS para que se encargue de entregarle los datos para que se convierta en información y genere las alertas necesarias, de ser el caso, desde el punto de vista de la monitorización, así que cada caso y necesidad son muy particulares. En honor a la justicia los enumeraremos de acuerdo al año en que fue liberada su primera versión al público, y de seguro que os agradará la lista que hemos preparado.

Las mejores herramientas para pruebas para 2018

Unified Functional Testing® (UFT), año 1998

UFT Unified Functional Testing, herramientas para pruebas
UFT Unified Functional Testing, herramientas para pruebas

«Micro Focus»®, una empresa fundada en 1976 por Brian Reynolds en el Reino Unido, lanzó en 1998 esta herramienta que aun utiliza tecnología «noventera»: VBScripting. Es software privativo que se ejecuta en «Microsoft Windows»® (GNU/Linux tenía apenas cuatro años de haber sido lanzado y aun le faltaba mucho camino por recorrer) pero no subestimemos a esta empresa por ello, al contrario se ha modernizado de acuerdo al paso del tiempo. En ese mismo año  «Micro Focus»® adquiere Intersolv®, en 2009 adquiere la legendaria Borland® y en 2014 adquiere «Atachmate Group»® quienes a su vez eran propietarios de Novell®, NetIQ®, y SUSE® ¡a menos que hayan vivido en una caverna por lo menos una de esas empresas deben conocer! Para la guinda del pastel recién en 2017 se fusionó con «HP Enterprise»®, división que atiende solo necesidades de software para empresas ¡todo un gigante y con muchas libras esterlinas en su haber!

Acá no estamos para evaluaciones financieras de empresas no obstante es insoslayable la experiencia de la casa de software y no podíamos dejar de nombrarla. Dicha experiencia la cobran muy bien en su producto y así como desembolsamos dinero para su licencia, «desembolsaremos» tiempo en su instalación y entrenamiento de usuarios, ambas tareas complejas. Como atenuante nuestro usuario beta no deberá tener grandes habilidades de programación ya que VBscript es una tecnología con muchos años en el mercado y con mucha gente capacitada que lo maneja la oferta es grande y baja nuestro presupuesto en empleados. Cuenta con interfaz de usuario web, API, versión para ordenador de escritorio y aplicación web. Tiene componentes de prueba reutilizables, documentación automatizada y se integra con herramientas de desarrollo continuo como por ejemplo Jenkis (el cual os presentamos recientemente en otro artículo). De manera adicional, como complemento, UFT ofrece «Lean Functional Testing» (LeanFT) para creación de pruebas con Visual Studio (C#) o Eclipse (Java).

TestComplete®, año 1999

TestComplete, herramientas para pruebas

Otra herramienta privativa de la mano de «SmartBear Software»® que también utiliza VBScript y además maneja C#Script, C++Script, DelphiScript, JScript, JavaScript y Python ¡sin ningún problema! A pesar de todos los lenguajes interpretados que soporta igualmente no se necesita habilidades extraordinarias de programación y su instalación es relativamente sencilla. Tiene tres módulos principales: como aplicación de escritorio,  web y móvil. En muchos aspectos se parece a su contrincante UFT ya que también se integra con Jenkins y mantiene actualizados los guiones u objetos grabados al cambiar alguno de ellos, lo que significa ahorro de tiempo y esfuerzo.

En este último aspecto debemos decir que TestComplete ofrece las pruebas dirigidas por palabras clave (en inglés «keyword-driven testing»): en las pruebas basadas en palabras clave, cada palabra clave corresponde a una acción de prueba individual, como un clic del ratón, la selección de un elemento del menú, pulsaciones de teclas, abrir o cerrar una ventana u otras acciones. Esto es lo que inicialmente, y poco a poco, deberemos configurar para luego crear una prueba de palabras clave, la cual es una secuencia de operaciones, en formato de palabras clave, que simula las acciones del usuario en la aplicación probada. Básicamente, para realizar cualquier acción de prueba, los evaluadores simplemente arrastran y sueltan la palabra clave que corresponde a la operación deseada o simplemente pueden registrar sus acciones y la prueba dirigida por palabra clave se construye para ellos. Estas palabras clave las podremos reutilizar infinitas veces para prevenir el modelo «no te repitas tú mismo«, asimismo ofrece flexibilidad cuando cambia la aplicación a probar y para los nuevos usuarios beta que lleguen a trabajar les será más intuitivo el mantener las pruebas creadas, adquirir experiencia y crear nuevas pruebas dirigidas por palabras clave.

Por favor, lea también   ¿ Qué es Grafana? ¡Veamos su historia y cómo se relaciona con otros software!

Apache JMeter, año 2001

JMeter Logo

Una de las herramientas para pruebas de bases de datos que funcionen con páginas web escrito completamente en lenguaje Java y orientado directamente a los programadores. Si necesitamos probar la carga masiva de datos y realizar pruebas de esfuerzo a los servidores, debemos utilizar JMeter con un software de Monitorización como Pandora FMS (no duden ustedes en contactarnos). Apache JMeter no es un navegador web (no ejecuta el JavaScript del código HTML, por ejemplo) sino que actúa a nivel de protocolo HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, entre otros), FTP, SMTP(S), POP3(S) e IMAP(S). También ofrece opciones de registro de resultados en un simple archivo de texto ya que las funciones de monitorización le fueron eliminadas desde la versión 3.2.

Rational Functional Tester, año 2002

Rational Software logo
Rational Software logo

La empresa Rational® Software lo lanzó inicialmente como «Robotj 1.0» y cuando IBM® adquiere dicha compañía en 2004 lo renombra simplemente como «Rational»® (aunque en su logotipo lo acompaña la palabra «software» en alusión a la compañía madre). De las herramientas para pruebas es la más profunda y compleja y nos atrevemos a decir que es inefable. Los guiones son guardados en lenguaje Java y Visual Basic .NET aunque a partir de la versión 8.1 se puede interactuar con las capturas de pantalla que se graban en un guión gráfico (algo así como WYSIWYG). Está disponible tanto para Windows como GNU/Linux de forma vertical con «IBM Jazz integration», como todos los productos de esta gigantesca empresa.

Selenium, año 2004

Acá vamos con el preferido de casa: corre en Microsoft Windows, GNU/Linux y OS X; soporta Java, Groovy, Python, C#, PHP, Ruby, y Perl; es una de las herramientas para pruebas de aplicaciones web que se integra a Chrome, Firefox, Microsoft IE e incluso navegadores sin interfaz gráfica y como si fuera poco ¡es software libre!

Selenium logo, herramientas para pruebas
Selenium logo, herramientas para pruebas

Selenium es tan avanzado -se necesitan habilidades plenas de programador para utilizarlo- que se convirtió en plataforma de desarrollo para otras herramientas de prueba tales como Katalon Studio, Watir, Protractor, y Robot Framework. ¿Su desventaja? mano de obra costosa: instalarlo, programarlo y adecuarlo a las necesidades necesita personal altamente capacitado y difícil de conseguir. Para todo aquel que le quede alguna duda de nuestra afirmación, Selenium tiene su propio lenguaje de guiones llamado Selenese ( que inexplicablemente también usaron dicho nombre para el protocolo de «Selenium Remote Control»)  así que bien podemos guardar, por compatibilidad, nuestros guiones en su lenguaje original soportado por Selenium o en su lenguaje específico Selenese. Los componentes de Selenium son: IDE, Client API, Remote Control, WebDriver y Grid. Admite integración con Jenkins y «Cruise Control».

Robot framework, año 2005

Robot framework logo
Robot framework logo

Presentado como trabajo de Maestría por Pekka Klärck y desarrollada en la empresa «Nokia Siemens Networks» ese mismo año, a partir de la versión 2.0 fue cambiada como software libre (año 2008) y su versión 3.0 llegó apenas el año pasado. Escrita en Python y con licencia Apache 2.0 es posible su utilización principalmente con Java y .NET (con complementos se puede utilizar Perl, Javascript y PHP). Como muchas otras librerías de Python se instala por medio PIP, y las librerías de Selenium Web Driver se deben instalar en un segundo paso, luego podremos instalar librerías adicionales para MongoDB, FTP, Android, Appium (una aplicación especializada en ejecución de guiones bajo Android e iOS) y muchas más. Robot framework utiliza también pruebas dirigidas por palabras clave.

Watir, año 2008

Watir logo, herramientas para pruebas
Watir logo, herramientas para pruebas

Como dijimos, Watir se vale de Selenium y hereda su licencia y muchas de sus características, sin embargo solamente soporta lenguaje Ruby. Inicialmente desarrollado por Bret Pettichord y Paul Rogers y una comunidad entusiasta de desarrolladores. Se centra en automatizar navegadores web tal como lo haría un usuario normal y en la manipulación de todos los elementos HTML. Al igual que Selenium se necesita conocimientos profundos en programación y su instalación toma la forma de «RubyGems» como gestor de paquetes.

Katalon Studio, año 2015

Katalon Studio logo
Katalon Studio logo

Su casa matriz KMS Technology fue fundada en 2009 de forma conjunta en Estados Unidos y Vietnam y tras tres años de desarrollo basados en Selenium y Appium con soporte para Groovy (Java) fue liberado con el nombre de «Katalon Studio». Lo que resalta de Katalon es que en vez de descargar e instalar Selenium y Appium por separado, Katalon lo ofrece en un solo paquete y además mejora la experiencia del usuario lo que permite un aprendizaje rápido. Una vez lo hayamos dominado podemos ir a fondo con Selenium, el cual corre por debajo, latente. Además apoya el desarrollo continuo de software con Teamcity, qTest, JIRA, Jenkins, y Git. Las bondades, muchas en realidad, la podréis leer en este enlace con detalle.

Conclusión

Esta es una lista que evidentemente no incluye a todo el software -ni pretende ser exhaustiva- pero refleja la situación actual del mercado de software, el cual goza de excelente salud con variedad de precios y características. ¿Cuál será el más adecuado? Recomendamos el uso de máquinas virtuales por sus singulares prestaciones para que evaluéis con detenimiento cada uno de los programas y que tengáis un panorama completo y basado en pruebas específicas. Una vez hayáis elegido los mejores candidatos será hora de presentarlo a los equipos de desarrollo sobre ordenadores reales y de allí seleccionar uno -o más- a fin de que vuestra empresa adquiera una licencia de servicio y/o uso. ¡Dejad vuestro comentario acá abajo y aclararemos cualquier inquietud, duda o comentario!