X
BLOG

Obtenga comentarios inmediatos sobre los cambios de código mediante el análisis de impacto de las pruebas

Obtenga comentarios inmediatos sobre los cambios de código mediante el análisis de impacto de las pruebas Tiempo de leer: 5 minutos
Cuanto más rápido pueda probar, más rápido podrá soltar. Pero no tiene que esperar a que la compilación diaria / nocturna ejecute su conjunto completo de pruebas unitarias para la validación sobre el impacto de los cambios de su código. En su lugar, obtenga información inmediata sobre las pruebas afectadas por los cambios de su código y tenga más confianza en el registro.

Las pruebas unitarias han sido una de las mejores prácticas de la industria durante años y, a medida que los equipos de desarrollo construyen sus conjuntos de pruebas, crecen cada vez más. Y a medida que las pruebas se expanden a pruebas de integración o de nivel de componentes, su ejecución demora más. Con las nuevas tendencias en las pruebas unitarias, como TDD, estos conjuntos de pruebas crecerán aún más que antes, ya que todo el código depende de las pruebas, y más de ellas.

Tener una gran base de pruebas unitarias puede ser una gran base para las pruebas, pero esto puede tener un gran impacto en el tiempo de ejecución de la prueba, especialmente a medida que las pruebas unitarias se expanden a pruebas de nivel de integración / componente. Entonces, la clave para saber qué probar es comprender el impacto exacto que tiene cada cambio de código, qué pruebas deben ejecutarse y qué nuevas pruebas pueden ser necesarias.

El cálculo de la cobertura del código es un aspecto para determinar qué se ha probado, pero por sí solo no es suficiente. La verdadera magia ocurre cuando la cobertura del código se calcula para cada prueba y luego se correlaciona con los cambios en el código de construcción por construcción. Usar este enfoque nos da análisis de impacto de prueba - que es el proceso mediante el cual identificamos exactamente qué prueba ejecutar para validar los cambios de código. Al aprovechar el análisis de impacto de las pruebas para las pruebas unitarias con Parasoft Jtest, los equipos de desarrollo de software pueden enfocar sus esfuerzos de prueba y realmente acelerar su proceso de desarrollo, a través del proceso IDE o CI.

Pruebe el análisis de impacto al alcance de su mano

Encontrar y corregir errores lo antes posible es el beneficio principal de tener un análisis de impacto de prueba. Con los resultados del análisis de impacto de prueba integrados directamente en el IDE, los desarrolladores pueden aprovechar sin problemas sus beneficios dentro de su flujo de trabajo, para enfocar los esfuerzos de prueba exactamente en el lugar correcto y garantizar que los cambios de código se prueben por completo, incluidos los impactos indirectos en el código relacionado.

Aunque el objetivo principal es encontrar y corregir errores de forma temprana, existen otras ventajas de tener los resultados del análisis de impacto de las pruebas al alcance de la mano del desarrollador, que incluyen:

  • Resaltar las pruebas que realmente ejecutan código dentro de los archivos modificados, asegurando que solo se ejecuten las pruebas requeridas.
  • Se integra con una variedad de sistemas de compilación y control de código fuente con la capacidad de personalizarse para admitir un entorno único cuando sea necesario.
  • Identifique no solo las dependencias directas entre las pruebas y el código, sino también las dependencias indirectas, para garantizar que las pruebas cubran el impacto total de los cambios.
  • Fácil configuración inicial y la capacidad de identificar y ejecutar automáticamente las pruebas afectadas sin que el usuario tenga que hacer nada más que cambiar el código y ver los resultados.

Al combinar el análisis de impacto de las pruebas con el proceso de CI, el ahorro de tiempo es evidente y puede centrar el esfuerzo del equipo de desarrollo en exactamente lo que se debe hacer para garantizar la calidad. Las optimizaciones en los tiempos de desarrollo y construcción son críticas para lograr objetivos ágiles al lidiar con los cambios.

Las pruebas enfocadas significan un mejor software, entregado a tiempo

Encontrar errores antes es mejor y más económico que encontrarlos más adelante en el ciclo de vida del desarrollo de software, lo que puede provocar retrasos importantes en la programación. Los desarrolladores a menudo no saben qué pruebas ejecutar, por lo que no ejecutan ninguna prueba o ejecutan muy pocas. En este caso, dependen de la compilación, que está configurada para ejecutar todo el conjunto de pruebas, por lo que los equipos de desarrollo están inactivos mientras esperan comentarios / validación del proceso de compilación con respecto a sus cambios. En su lugar, al aprovechar el análisis de impacto de las pruebas, los equipos de desarrollo pueden encontrar y ejecutar las pruebas adecuadas antes incluso de incluir el código en una compilación para validar los cambios.

El análisis del impacto de las pruebas también significa que los desarrolladores pueden obtener comentarios más rápidos sobre los cambios de código que causan fallas en las pruebas de su proceso de CI. Los gerentes de desarrollo quieren que sus equipos realicen pruebas antes de que se registre el código, idealmente, pero a menudo no se hace. Además, quieren asegurarse de que sus equipos sepan lo antes posible, después de que se haya verificado el código, si el código rompió alguna prueba. Por lo tanto, es importante que la capacidad de análisis de impacto de la prueba abarque el proceso de CI, así como el escritorio del desarrollador.

Vista de "Pruebas unitarias afectadas" de Parasoft Jtest en el IDE

Entonces, ¿cómo se ve esto en la práctica? En el IDE, mientras el desarrollador escribe código, la vista "Pruebas unitarias impactadas" de Jtest proporciona una lista (en evolución dinámica) de las pruebas que deben ejecutarse para ejercitar el código que se está modificando localmente. Luego, todo lo que el desarrollador debe hacer es simplemente hacer clic derecho en la prueba impactada y ejecutarla o simplemente ejecutar todas las pruebas impactadas.

Jtest realiza un seguimiento de las pruebas afectadas que se han ejecutado y muestra claramente cuáles han pasado y cuáles no, lo que facilita al desarrollador determinar qué pruebas aún deben ejecutarse o qué pruebas fallaron y deben abordarse. Una vez que todas las pruebas se han ejecutado y están aprobadas, el desarrollador tiene más confianza en su cambio de código y puede confirmar su código de forma segura y pasar a la siguiente tarea de desarrollo.

El flujo de trabajo code-test-feedback-remediate está diseñado específicamente para aumentar la productividad en el escritorio del desarrollador, lo que permite a los usuarios identificar y ejecutar fácilmente solo las pruebas necesarias para verificar los cambios de código local. En un modelo de implementación directa a producción, esto evita que los errores lleguen a los usuarios finales. Cuando varios equipos están involucrados en un proyecto, esto evita la pérdida de tiempo para otros equipos que necesitan solucionar y resolver problemas que podrían haberse evitado si se hubieran ejecutado las pruebas apropiadas antes de que se comprometiera el código.

Integración y complementación de las herramientas de canalización

Las herramientas no funcionan si no puede integrarlas fácilmente en su cadena de herramientas existente. Parasoft Jtest admite proyectos que están en control de fuente Git o SVN, así como otros sistemas de control de fuente. La integración IDE existe tanto para Eclipse como para IntelliJ. Jtest proporciona complementos de Maven y Gradle que se pueden integrar en un trabajo de compilación de CI que ejecuta pruebas como parte de una compilación de Maven o Gradle.

Estos complementos se pueden configurar para automatizar completamente un conjunto de pruebas determinando qué código ha cambiado desde la compilación de referencia, que a menudo se configura para ser la compilación de la última noche, y luego determinando qué pruebas deben ejecutarse para ejercitar ese código, y luego ejecutar solo ese subconjunto de pruebas. Esto permite a un equipo configurar un trabajo de CI que solo ejecuta pruebas basadas en los cambios de código más recientes, lo que les permite reducir la cantidad de tiempo que lleva ejecutar un trabajo de CI potencialmente de horas a minutos.

Como práctica recomendada, los equipos pueden ejecutar el conjunto completo de pruebas unitarias todas las noches y aprovechar el análisis de impacto de las pruebas en las compilaciones diarias (provisionales). Esto hace que Parasoft Jtest sea especialmente beneficioso para los equipos con conjuntos de pruebas de larga duración, que pueden obtener CI real al obtener resultados de pruebas relevantes en cuestión de minutos después de confirmar el código. Sin poder hacer esto, los cambios de código incorrectos pueden introducir regresiones que no se detectan tan rápidamente y, por lo tanto, pueden colarse en la producción o interferir con el trabajo que realizan otros miembros del equipo.

Al concentrar los recursos en exactamente lo que se debe probar, los equipos de desarrollo pueden ejecutar pruebas de manera rápida y eficiente para verificar el código que están revisando de manera constante, detectando errores y vulnerabilidades de seguridad antes de que lleguen a la compilación.

Habilite el análisis de impacto de prueba para obtener comentarios inmediatos sobre nuevos cambios de código

Escrito por

Kapil Bhandari

Kapil es Product Manager en Parasoft, y se centra en Parasoft Jtest. Kapil ocupó varios puestos técnicos que van desde ingeniero de software hasta líder de desarrollo, antes de pasar a la gestión de productos.

Reciba las últimas noticias y recursos sobre pruebas de software en su bandeja de entrada.

Prueba Parasoft