Diffblue, una empresa derivada de la Universidad de Oxford, utiliza el aprendizaje automático para ayudar a los desarrolladores a crear automáticamente pruebas unitarias para su código Java. Dado que pocos desarrolladores disfrutan escribiendo pruebas unitarias para asegurarse de que su código funcione como se espera, una mayor automatización no solo ayuda a los desarrolladores a concentrarse en escribir el código que realmente marca la diferencia, sino que también conduce a un código con menos errores. Los clientes actuales de Diffblue incluyen empresas como Goldman Sachs y AWS.
Hasta ahora, Diffblue solo ofrecía su servicio a través de una suscripción paga, y costosa. Hoy, sin embargo, la compañía también lanzó su edición comunitaria gratuita, Diffblue Cover: Community Edition, que no presenta todas las funciones empresariales en sus versiones pagas, pero aún ofrece un complemento IntelliJ y las mismas pruebas unitarias generadas por IA que el ediciones pagas.
La compañía también planea lanzar pronto un nuevo plan ‘individual’ de menor costo para Diffblue Cover, a partir de $ 120 por mes. Este plan también ofrecerá acceso a soporte y otras funciones avanzadas.
Básicamente, Diffblue utiliza el aprendizaje no supervisado para crear estas pruebas unitarias. “Lo que estamos haciendo es único en el sentido de que ha habido herramientas antes que utilizan lo que se llama análisis estático”, explicó el director ejecutivo de Diffblue, Mathew Loge, quien se unió a la compañía hace aproximadamente un año. “Ellos miran el programa y básicamente entienden el camino a través del programa y tratan de trabajar hacia atrás desde el camino. Entonces, si la ruta llega a este punto, ¿qué entradas necesitamos poner en el programa para llegar aquí? ” Sin embargo, ese enfoque tiene sus limitaciones, que el método de aprendizaje por refuerzo de Diffblue pretende solucionar.
Una vez que el proceso ha seguido su curso, Diffblue proporciona a los desarrolladores pruebas legibles. Eso es importante, enfatizó Loge, porque si una prueba falla y un desarrollador no puede averiguar qué sucedió, es virtualmente imposible para el desarrollador solucionar el problema. Eso es algo que el equipo aprendió de la manera difícil, ya que como versión inicial, Diffblue usó un algoritmo muy agresivo que proporcionó una gran cobertura de prueba (la métrica clave para las pruebas unitarias), pero hizo que a los desarrolladores les resultara muy difícil averiguar qué estaba sucediendo.
Con la edición comunitaria, que no ofrece la interfaz de línea de comandos (CLI) de las ediciones pagas de Diffblue, los desarrolladores pueden escribir su código en IntelliJ como antes y luego simplemente hacer clic en un botón para que Diffblue escriba las pruebas para ese código.
“La Community Edition está diseñada para ser muy accesible. Es literalmente un clic en el IDE y obtendrá sus pruebas. La versión CLI es más sofisticada y cubre más casos y resuelve para equipos y grandes implementaciones dentro de una organización ”, explicó Loge.
La compañía planea agregar soporte para otros lenguajes, incluidos Python, JavaScript y C # con el tiempo, pero como señaló Loge, Java ha sido durante mucho tiempo un pilar en el mundo empresarial y el equipo sintió que ese sería el mejor lenguaje para empezar. Sin embargo, como señaló Loge, la tecnología
De hecho, Diffblue ha existido por un tiempo. La compañía recaudó una ronda de la Serie A de $ 22 millones liderada por Goldman Sachs y con la participación de Oxford Sciences Innovation y Oxford Technology and Innovations Fund en 2017. Obviamente, no recauda esa cantidad de dinero para enfocarse solo en pruebas unitarias para código Java. Además de la compatibilidad con más lenguaje, las pruebas unitarias son solo el primer paso en el objetivo general de la empresa de automatizar más el proceso de programación con la ayuda de IA.
“Comenzamos con las pruebas porque es un problema importante y urgente, especialmente con el impacto que tiene en DevOps y la adopción de ciclos de software más rápidos”, dijo Loge. El siguiente paso obvio es adoptar un enfoque similar para corregir automáticamente los errores, y especialmente los errores de seguridad, también en el código.
“La idea es que existen estos escalones para que las máquinas escriban más y más código”, dijo. “Y también, francamente, es una forma de acostumbrar a los desarrolladores a eso. Porque la aceptación de los desarrolladores es una parte crucial para que esto sea exitoso “.
Source link