Una herramienta de testing es un instrumento automatizado que soporta como mínimo una actividad de prueba aunque suelen ser mas como planificación,control,especificación y ejecución.
Estas herramienta se pueden utilizar en cualquier test,tipo de prueba ,fase de desarrollo y ciclo de vida de desarrollo y ayudan a mejorar la eficiencia de los controles de calidad.
Las metodologías de desarrollo ágil como scrum,XP o kanban tienen control de calidad y aseguramiento de calidad como otras metodologías iterativas,incrementales o secuenciales pero scrum es una metodología que se enfoca en la entrega continua ,la mejora continua y en aceptar los cambios sobre todo si va a traer valor al cliente por eso hay una serie de herramientas de control de calidad que se utilizan normalmente con esta metodología ágil y que voy a agrupar por el objetivo que tienen.
Tipos de herramientas
Análisis de cobertura de código
Mide el % de código que se ha probado ,generalmente el código que hay en un método de una clase ,suele basarse en el número de caminos que se ha ejecutado del código. Este tipo de herramientas dependen del lenguaje de programación en que está escrito el código.
Estas herramientas miden la cobertura que no es mas que el porcentaje de código que se ha ejecutado de un método o de una clase de una librería.
Estas herramientas crean informes de cobertura de manera automática.
Estas herramientas depende del lenguaje asi para los lenguajes de java y python tenemos:
–Clover que es una herramienta de analisis de cobertura de código que soporta los lenguajes de programación de java y groovy;soporta los framework de pruebas de componente Junit y TestNG y además se integra con los Intellij IDEA Y Eclipse.
–Pytest-cov es un complemento gratuito de Python que se utiliza para realizar analisis de cobertura de código escrito en este lenguaje y que genera informes de cobertura de código.Lo puedes instalar desde la linea de comandos utilizando pip que es el instalador de paquetes de Python.
Son herramientas que se utilizan en las pruebas de componente que se realizan en la metodología de scrum además de en otras metodologías y que son pruebas fundamentales en el control de calidad. y que ayudan a cumplir el principio noveno del manifiesto ágil.
Herramientas de testing basadas en modelo
Estas herramientas básicamente lo que hacen es generar casos de prueba automáticamente a partir de modelos.
Los modelos se pueden representar casi con cualquier cosa como puede ser imágenes,gráficos,diagramas u otros elementos.
Lo que es importante es que los requisitos se escriban de una manera que la herramienta los pueda entender.
Hay herramientas que además de generar casos de prueba tambien los ejecuta ,una de las herramientas más utilizada para resto es Tricentis Tosca.
Es unas herramienta muy completa porque permite automatizar las pruebas de un extremo a otro, diseñar casos de prueba, automatizarlos mediante scripts, diseñar y generar datos para las pruebas, analizar las pruebas y generar informes de las pruebas.
Estas herramientas ayudan muchísimo a la hora de realizar las pruebas porque automatiza muchas actividades de pruebas y en metodologías ágiles como scrum la automatización de pruebas y de procesos es fundamental para conseguir ser ágiles y que ayudan a cumplir el principio noveno del manifiesto ágil.
Análisis de código fuente
Analizan el código fuente antes de ejecutarlo y lo comparan con reglas de buena codificación y generan informes para poder mejorar la calidad del código.
Estas herramientas se esta volviendo imprescindibles en metodologías ágiles como scrum porque permiten encontrar defectos y vulnerabilidades en una fase temprana del desarrollo.
El noveno principio del manifiesto ágil dice “la atención continua a la excelencia técnica y al buen diseño mejora la agilidad” por lo tanto estas herramientas nos ayudan a eso en cualquier metodología pero en las ágiles aún más porque favorecen la agilidad .
La herramienta mas importante de este tipo es Sonarqube,una herramienta que permite analizar la calidad de un código desde un repositorio o desde un IDE, tiene versión de pago y gratuita ,también hay una versión en la nube que se llama SonarCloud, si te interesa un curso de esto en Udemy hay varios.
En definitiva estas herramientas ayudan a cumplir el principio noveno del manifiesto ágil.
Testing unitario
Se prueba que la unidad de componente mas pequeña de un software funciona según lo diseñado, en general prueban los métodos de una clase.
Se necesita de un framework y que suele poder integrarse con entornos de desarrollo integrados o IDE.
Básicamente lo que se hace es que el programador o tester codifica la prueba que se ejecuta contra el código de la aplicación.
Las herramientas de testing mas conocidas para java serían JUnit y TestNG y tambien mockito que se utiliza para simular llamadas a métodos externos.
Estas herramientas ayudan a cumplir el principio noveno del manifiesto ágil como las otras.
Gestión de incidentes
Los defectos se suelen gestionar en herramientas de gestión de incidencias ;estas herramientas de gestión de incidencias suelen integrarse con herramientas de gestión de proyectos.
Suelen tener notificaciones por correo electrónico o a chat de herramientas de comunicación como Teams.
La herramienta mas conocida para gestión de incidencias en Mantis ,es de código abierto, gratuita y es una aplicación web que puedes instalar en tu entorno y personalizar.
Suele utilizarse para seguimiento de incidencias ,muy utilizada en telecomunicaciones .
XRay es la otra herramientas mas utiliza sobre todo en proyectos con scrum u otras metodologías ágiles, se integra con Jira
Estas herramientas ayudan a cumplir el principio noveno del manifiesto ágil como las otras.
Ejecución de pruebas
Permiten la la creación de scripts de prueba automatizados ,es decir, permiten automatizar la ejecución de los casos de prueba.
Estas herramientas se utilizan para ejecutar casos de prueba funcionales y los scripts se pueden crear utilizando un grabador o utilizando algún lenguaje de programación.
Estas herramientas de testing son fundamentales para mejorar la agilidad de un proyecto y algunas de ellas son: Cypress.
Es abierto, gratuito y se puede integrar con herramientas de CI como Jenkins y soporta los navegadores de Chrome, Edge y Firefox; permite automatizar las pruebas para aplicaciones web pero no soporta pruebas para móviles en mis libros escribo que sí pero no es verdad y no se integra con Appium por lo menos hasta lo que yo se.
Esta basado en javascript y es más rápido que Selenium.Selenium
Es abierto, gratuito y se puede utilizar con lenguajes como java, python y algunos lenguajes más ;permite automatizar pruebas funcionales y de regresión y soporta los navegadores de firefox, chrome, edge y safari. Permite automatizar pruebas sobre aplicaciones web y de móvil utilizando Appium.
Componentes de Selenium
Selenium IDE permite editar, grabar y depurar lo que se muestra en el navegador.
Selenium remote control es un sistema de cliente/servidor que permite utilizar el navegador web de forma local o en otro ordenador.
Selenium webdriver permite utilizar un navegador de forma local . Se inicia una instancia del navegador y así se puede controlar y realizar distintas acciones sobre el . Cualquiera de estos lenguajes son compatibles con Selenium WebDriver: PHP, Java, .Net, Perl, Ruby o Python.
Selenium grid permite ejecutar varios navegadores a la vez en distintos SO.Permite ejecutar grandes cantidades de pruebas en poco tiempo.UFT
Es una herramienta de pago de HP,se puede utilizar con windows y utiliza el lenguaje VisualBasic para automatizar casos de prueba;te permite automatizar pruebas sobre aplicaciones web y móviles.Katalon Studio
Es una herramienta que permite automatizar pruebas en aplicaciones web ,escritorio y movil;además soporta los navegadores chrome,firefox,edge y safari y permite automatizar pruebas sobre API´s y importar colecciones de Postman.
Se puede instalar en Windows,Linux y MAC y además se integra con todo tipo de aplicaciones como testlink,jira,jenkins y muchos más.
Lo mejor que tiene es que pose una plataforma para pruebas online sobre distintos sistemas operativos y moviles y tiene versión gratuita y de pago.
Te ha gustado hasta aquí el articulo de herramientas de testing?si quieres saber mas sobre herramientas de testing compra alguno de los libros que puedes ver en este sitio o también puedes visitar nuestra pagina amiga istqbhub donde podrás aprender QA, testing y prepararte la certificación istqb foundational level 4.0