Actualmente, en el mundo de la calidad de software existe una cantidad exuberante de herramientas disponibles que pueden elegir los ingenieros de calidad. Entre las opciones disponibles podemos encontrar tanto, gratuitas como de licencia comercial y esto nos da un abanico de posibilidades los cuales, inclusive podríamos agrupar por el tipo de prueba que necesitemos realizar, ya sea una prueba de rendimiento, regresión entre otras. Es importante conocer y explorar las distintas herramientas que permiten gestionar de manera integral el aseguramiento de la calidad del software para discernir entre cual se ajusta a nuestra necesidad.
Que necesitamos considerar:
Para elegir la herramienta correcta hay que tener presente ciertos factores que van a inclinar nuestra decisión hacia cuál es la herramienta que se adecua a nuestro proyecto; no solamente hablamos de temas de costos, que, si bien es un factor importante, no es el único.
Entre los factores que debemos tomar en cuenta están:
- La compatibilidad de la herramienta, por ejemplo: cuando es web, el comportamiento entre navegadores o entre plataformas a usar.
- La curva de aprendizaje de nuestros recursos acá es importante valorar, cuánto le tomaría al equipo aprender de la herramienta y adaptarla.
- Los requisitos de hardware y software que la herramienta necesita.
- Los requerimientos del proyecto, siempre es bueno mantener una estructura única para nuestras pruebas, entonces debemos elegir conforme el proyecto, no es muy conveniente elegir nuestras pruebas en C# en un proyecto React Native por ejemplo.
- El soporte al cliente y políticas de actualización de la herramienta.
- Y por último el costo de la licencia, como habíamos mencionado, no todas las empresas optan siempre por herramientas libres.
Teniendo en cuenta estos aspectos, dividiremos las herramientas por el tipo de prueba en que nos pueden ayudar, además se incluyó una alternativa a cada una de las herramientas a modo de ejemplo esto para hacer una comparación y decidir cual opción más viable.
Herramientas para pruebas funcionales
Para las pruebas funcionales, donde validamos varios aspectos tal como la interfaz gráfica de la aplicación mencionamos dos herramientas y un framework, que nos ayudan con esta parte. Sobra decir que las tres opciones son gratuitas.
Selenium
Es un entorno de pruebas de código abierto y proporciona pruebas funcionales de varios módulos de aplicaciones web en plataformas y distintos navegadores, también nos ayuda en las pruebas de regresión porque consigue pruebas automatizadas que luego se pueden reutilizar cuando lo necesitemos. Lo interesante de Selenium es que admite muchos lenguajes de programación como Java, Ruby, C #, Python, entre otros, haciéndola muy amoldable a un proyecto. Quizá la mayor limitante de Selenium sería que solo nos ayuda para aplicaciones web.
Más info: The Selenium Browser Automation Project :: Documentation for Selenium
Katalon Studio
Admite una amplia gama de tecnologías, robusta y gratuita para pruebas de API, web e inclusive móviles. Comparado con la competencia, una de sus ventajas es que no requiere habilidades de programación para casos de prueba simples. El objetivo de esta herramienta es hacer que la automatización esté disponible para todos.
Más info: The Selenium Browser Automation Project :: Documentation for Selenium
Cypress
Si buscas una herramienta que te englobe diferentes tipos de prueba en una sola, la opción ideal es Cypress, es una herramienta de testing de última generación construida para la web moderna, permite escribir todo tipo de tests: End to end, de integración, unitarios, entre varios más, básicamente como lo mencionan en su página web, “Cypress puede probar cualquier cosa que funcione en un navegador”. Solo tomar en cuenta que la herramienta está enfocada totalmente en el lenguaje Javascript.
Más info: Why Cypress? | Cypress Documentation
Herramientas para pruebas de rendimiento
Cuando nuestro enfoque es evaluar requisitos de rendimiento de nuestra aplicación y determinar cómo se va a comportar ante ciertos escenarios, estas herramientas nos ayudarán de la mejor forma.
LoadRunner
Es adecuado para evaluar el rendimiento de un sitio web o una aplicación web en condiciones de alta carga ya que simula miles de usuarios utilizando el software para registrar y analizar el rendimiento de la aplicación. Un detalle a tomar en cuenta es que aunque está creado para realizar los scripts en lenguaje C, también permite desarrollar scripts en Java, por ende vamos a necesitar conocimientos en esos dos lenguajes de programación, y por último y no menos importante la herramienta no es Open Source, sino que es gratuito hasta 50 usuarios concurrentes, y si requerimos más de eso, vamos a necesitar de una licencia.
Más info: Introducing LoadRunner Professional (microfocus.com)
JMeter
La más conocida en este ámbito, es una herramienta de código abierto dándole una gran ventaja sobre otras, que podemos utilizar para probar el rendimiento de sitios web y aplicaciones web dinámicas. Una ventaja de Jmeter es que funciona en varios tipos protocolos como SOAP, FTP, LDAP, JDBC, TCP, entre otros. Tiene un gran comunidad detrás de ella, lo que la vuelve muy versátil, con mucho soporte y muchísima documentación.
Más info: Apache JMeter – User’s Manual: Getting Started
Herramientas para el seguimiento de defectos
Estas herramientas nos van a ayudar en el flujo de trabajo de un extremo a otro y en la gestión de los errores que los ingenieros de calidad detecten. Estas herramientas van a rastrear el progreso del equipo y nos darán una trazabilidad en el proyecto.
Jira
Jira se ha convertido en una poderosa herramienta de gestión del trabajo para una variedad de casos de uso, desde la gestión de requisitos y casos de prueba hasta el desarrollo ágil de nuestro software. Para lo que es la gestión de pruebas, Jira nos ayuda integrando una alta variedad de complementos, por lo que veremos nosotros como ingenieros de calidad que las pruebas se van a poder integrar sin problemas en el ciclo de desarrollo de software y así el equipo puede realizar pruebas iterativas efectivas.
Más info: Jira | Software de seguimiento de proyectos e incidencias (atlassian.com)
Azure DevOps
Es producto de Microsoft que nos va a ayudar a cubrir todo el ciclo de vida de una aplicación y así, habilitar las características de DevOps. Esta herramienta nos brinda capacidades de gestión de pruebas tanto manuales como automatizadas. Azure DevOps lo vamos a poder utilizar como back-end para numerosos entornos de desarrollo integrados, pero claramente está diseñado para Microsoft Visual Studio y este punto es muy importante tenerlo en cuenta si lo vamos a elegir.
Más info: Azure DevOps documentation | Microsoft Docs
Herramientas para el análisis de código:
Uno de los problemas que podemos observar en los equipos de aseguramiento de calidad es que no se le toma el tiempo pertinente a la corrección del código, a depurarlo, a corregir vulnerabilidades del mismo, y eso a la larga nos puede generar bastantes problemas, una herramienta que nos ayuda con este tema, es SonarQube.
Sonarqube
Es una plataforma de software libre que nos ayuda a evaluar la calidad de nuestro código fuente, realizando un análisis estático sobre dicho código, esto lo hace obteniendo métricas que pueden ayudar a mejorar la calidad del código de la aplicación. Un punto a favor de la herramienta es que nos da la facilidad de poder analizar más de 20 lenguajes de programación.
Más info: SonarQube Documentation | SonarQube Docs
Herramientas para probar API
Estas herramientas ayudan a probar protocolos como REST o SOAP que actualmente tienen mucho auge en el mercado del software.
SoapUI
Es una herramienta multiplataforma de código abierto que se utiliza tanto para pruebas funcionales como de carga en API. También puede realizar llamadas HTTP y JDBC. La herramienta es gratuita hasta ciertas funcionalidades, para acceder a las demás, se nos solicitara una licencia.
Más info: Docs | SoapUI
Postman
Nace como una herramienta que principalmente permite crear peticiones sobre APIs de una forma muy sencilla y poder, de esta manera, probar la funcionalidad de la API. Una ventaja es que la herramienta es gratuita, y tiene una interfaz muy amigable.
Más info: Introduction | Postman Learning Center
Rest Assured
No es una herramienta como tal sino más bien un framework escrito en Java y diseñado para simplificar las pruebas sobre servicios basados en REST. Este framework soporta las operaciones POST, GET, PUT, DELETE, OPTIONS, PATCH y HEAD y contiene herramientas para invocarlas y verificarlas. Podríamos darle una oportunidad, valdrá la pena.
Más info: GettingStarted · rest-assured/rest-assured Wiki · GitHub
Herramientas para pruebas en Móviles
Espresso
Es una herramienta de prueba en móviles para Android, desarrollada por Google, con un marco simple de código abierto, que es fácil de usar e interpretar. Da resultados rápidos, consistentes, confiables y estables. La herramienta es gratuita.
Más info: Espresso | Desarrolladores de Android | Android Developers
Appium
Es una herramienta de automatización de interfaz de usuario basada en Selenium para aplicaciones móviles, nativas o híbridas en iOS y Android, esto la hace la herramienta más usada para este fin. Este es un proyecto bastante desarrollado que tiene su propio IDE que incluye un emulador. La herramienta es gratuita.
Más info: Espresso | Desarrolladores de Android | Android Developers
_____________________________________________________________________
Esta lista de herramientas son un ejemplo de ideas que se pueden utilizar para cada tipo de prueba, aun así, hay muchas otras opciones disponibles. Sin embargo, la elección de las herramientas para pruebas de software va a depender completamente de los requisitos del negocio, siempre con un único objetivo en nuestra mente: software de calidad.