Andrew Binstock La Prueba Unitaria – una forma de probar software hecha por los desarrolladores usando cientos de pequeñas pruebas rápidas – es una práctica central en sitios que están comprometidos con la calidad del software. Siguiendo un dictamen de “prueba unitaria en lugar de depurar” los desarrolladores y sus gerentes identifican los problemas en etapas tempranas y los solucionan en ese momento, dándoles la confianza en el código bajo desarrollo y asegurando que el proyecto no fracasará totalmente una vez que se complete el desarrollo y los ingenieros de control de calidad comiencen sus pruebas. Agitar es una compañía cuya línea entera de productos está dedicada a las pruebas unitarias. Su producto representativo Agitator lee a través de código Java, crea pruebas sobre la marcha, las ejecuta en segundo plano, y después reporta los éxitos y fallas, así como las líneas de código que no se ejecutaron. El beneficio de dicha estrategia es que Agitator generalmente creará pruebas que los desarrolladores pasarían por alto debido al exceso de familiaridad con el código. AgitarOne sigue una tendencia que ha estado emergiendo en las herramientas de desarrollo de software durante el año pasado, que es proporcionar un panel de instrumentos con medidas del proyecto. El desarrollador da inicio a estas actividades usando software del lado del cliente que debe instalarse en una IDE Java. Por el momento, Agitar soporta sólo Eclipse e IDEs basadas en Eclipse. Una vez que todo está configurado, el desarrollador hace clic en un proyecto o archivo, y desde un menú desplegable específico de Agitar elige si generar pruebas unitarias, «agitar» el código, o ejecutar el motor de reglas de código. Puede revisarse una lista para observar el progreso de estas tareas. Las pruebas unitarias generadas por AgitarOne generan dos beneficios: pueden llenar suites de pruebas escritas por el desarrollador, y capturan el comportamiento actual. Para su crédito, Agitar es claro en que sus pruebas generadas son un valor agregado a las creadas por el desarrollador, no un reemplazo. El primero de estos beneficios es más importante donde las pruebas unitarias se usan como herramienta de validación de calidad. AgitarOne puede crear pruebas que el desarrollador no habría pensado y encontrar errores ejerciendo el código de formas legítimas que el desarrollador no previó, ya que un punto ciego común para los desarrolladores es su exceso de familiaridad con el código que han escrito. Las pruebas generadas por AgitarOne hacen esto bien. La opción de agitación ejecuta aún más pruebas en segundo plano. Las pruebas adicionales son creadas sobre la marcha, generalmente lanzando valores aleatorios a variables y funciones. Es una actividad puramente orientada a la calidad. Cuando una prueba falla, AgitarOne reporta la secuencia de funciones y los valores que se les pasaron para que el desarrollador pueda rastrear a través del código para ver por qué el valor fallido no se fue manejado como se esperaba. El módulo de reglas de código es un analizador estático de código que busca las violaciones a los estándares de codificación y algunas construcciones sospechosas. Depende mucho de la herramienta de código abierto Checkstyle para hacer gran parte de la verificación, aunque Agitar ha agregado algunas reglas sugeridas por ellos mismos. AgitarOne es un producto único; sin embargo, necesita madurar un poco más antes de que pueda ser recomendado libremente. Instalar el producto creó dificultades curiosas que fueron difíciles de diagnosticar incluso para los ingenieros de Agitar. Además, ejecutar AgitarOne y explotar sus funciones se complicó innecesariamente por una documentación pobre (pero abundante) arruinada por URLs inválidas, nombres equivocados de archivos, procedimientos con pasos faltantes y otros huecos. Dada la naturaleza única del producto, este descuido puede volverse un problema, debido a que no hay un «conocimiento común » en el que los usuarios puedan apoyarse para encontrar su camino. Finalmente, hay algunas limitaciones que los usuarios reconocerán: para usar AgitarOne debe usar, una opción poco atractiva para algunos desarrolladores. Además, el producto genera pruebas unitarias sólo para JUnit 3.8.1. JUnit 4 y otros esquemas de pruebas unitarias no se soportan, tampoco lo son otros lenguajes que no sean Java. Poniendo de lado estas advertencias, AgitarOne es un producto de grupo de trabajo fácil de usar que facilita grandemente el uso de pruebas unitarias y ayuda a los sitios a sacarle el mayor beneficio posible esta actividad. Para varios sitios con grandes e importantes proyectos Java, esta solución es atractiva y convincente. Todos estos sitios probablemente van a deducir que el valor excede por mucho el costo.