Skip to main content

Command Palette

Search for a command to run...

Pruebas unitarias en Quarkus generadas con Diffblue (Parte I)

Updated
3 min read
Pruebas unitarias en Quarkus generadas con Diffblue (Parte  I)
C

I am Christian Loza Peralta, working as a technical leader specialized in software engineering and software architecture. My expertise lies in the development of scalable and secure applications, utilizing agile methodologies, as well as in the implementation of cloud-based solutions and the adoption of microservices architectures. Furthermore, my interest in philosophy and anthropology shapes my holistic approach to designing solutions that are not only technically robust but also contribute to technological culture. With a constant commitment to learning and improvement, I aim to tackle projects from a comprehensive perspective that combines technical and cultural effectiveness

Introducción

Existen muchos generadores de código hoy más que nunca, podríamos decir que son herramientas de ayuda y asistencia que utiliza un desarrollador, implementador ó programador de software para reducir el tiempo de de construcción de código, entre ellos (Github Copilot, Tabnine, ChatGPT, etc).

En base a esto, no es sorpresa de que el tiempo de desarrollo se limita a dos partes:

  1. Implementación de código en base a las funcionalidades y casos requeridos

  2. Pruebas unitarias

Si bien el segundo punto es determinante para una cobertura de código (90% o superior) tiende a generarse un mayor número de pruebas en base a la complejidad del código, y tambien esta parte se vuelve hasta cierto punto una acción repetitiva.

Por ello existen herramientas como mencioné en el primer párrafo para generar o ayudarnos, en este caso hablaremos de Diffblue.

¿Que es Diffblue?

Diffblue en un inicio fue un grupo de investigación de la Universidad de Oxford, que mediante el uso de algoritmos de Marchine Learning (supervisado, no supervisado y de refuerzo) pudieron generar pruebas unitarias de forma automática.

Hoy en día están separados de este grupo de investigación y es una empresa que provee no solo la generación de pruebas unitarias en un IDE si no que tambien pede generarse tambien dentro de flujo CI/CD.

¿Que tan confiable es la generación de sus pruebas unitarias?

En una tabla de comparación con otros generadores de pruebas unitarias Diffblue tiene una cobertura del 94% a comparación de EvoSuite (ver Tabla de resultados)

A comparison table for the various features of Diffblue Cover, EvoSuite, Randoop and SquareTest

En resumen no solo se comparó la generación de pruebas sino que tambien se realizó comparación con respecto a instalación, complejidad por clase y paquete. y al obtener un 94% es un candidato para poder utilizarlo.

¿Como utilizo Diffblue?

Payment GIF - Conseguir el mejor gif en GIFER

Antes que nada dejame decirte que Diffblue no es gratis. Pero tienes 14 días para probar en el modo Teams Edition y en el modo CE (community Edition) puedes generar hasta 25 pruebas por día.

Pero si quieres aprovechar pide un trial y podas generar hasta 500 pruebas.

Instalación de Diffblue en IntelliJ

Existe dos opciones como comenté en la sección final la primera que puedes descarga la versión CE (Commity Edition) y la versión Trial de 14 días . ambas son plugins de IntelliJ

Version CE

Esta parte de instalación es muy sencilla, solo debes de instalar el plugin de forma manual y buscar el ZIP o si no puedes buscarlo en la sección plugins.

Trial 14 días

Una vez enviado tus datos y un correo real, llegará la siguiente información que contendrá el plugin a descargar y el Key correspondiente.

La activación puedes hacerla en la barra de menú Diffblue > Activate License y colocar la licencia

Debido a la extensión del post puedes ver las segunda parte en el siguiente enlace (AQUI)

More from this blog

C

Christian Loza Peralta

13 posts

I’m Christian Loza, passionate about software engineering and emerging technologies, focusing on software and solution architecture, and cloud, to build scalable and efficient systems.