La detección temprana de defectos no está disponible en el sitio seleccionado () en este momento.

¡Obtén la vista previa!

La detección temprana de defectos está en vista previa.

Resumen

Detección temprana de defectos es la solución de Datadog que mejora la calidad del código identificando tests defectuosos al principio del ciclo de desarrollo. Para más información sobre tests defectuosos, consulta Gestión de tests defectuosos.

Ejecutando varias veces los tests recién añadidos, Datadog puede detectar errores antes de que estos tests se incorporen a la rama por defecto. En un estudio, se muestra que hasta el 75% de los tests defectuosos pueden ser identificados con este enfoque.

Tests conocidos El backend de Datadog almacena tests únicos para un determinado servicio de tests. Antes de que se ejecute una sesión de test, la biblioteca de Datadog recupera la lista de estos tests conocidos.

Detección de nuevos tests
si un test no se encuentra en la lista de tests conocidos, se considera nuevo y se vuelve a intentar automáticamente hasta diez veces.
Identificación de fallos
ejecutar un test varias veces ayuda a detectar problemas como las condiciones de carrera, que pueden hacer que el test sea exitoso y falle de forma intermitente. Si alguno de los intentos de test falla, el test se etiqueta automáticamente como defectuoso.

Ejecutar un test varias veces aumenta la probabilidad de exponer condiciones aleatorias que causan fallos. La detección temprana de defectos ayuda a garantizar que sólo los tests estables y fiables se integren en la rama por defecto:

Cómo la detección temprana de defectos funciona en tus confirmaciones

Puedes optar por bloquear la fusión de la rama de características con una Quality Gate. Para obtener más información, consulta la documentación de Quality Gates.

Configuración

Antes de implementar la Detección temprana de defectos, debes configurar Test optimization para tu entorno de desarrollo. Si estás informando datos a través de Datadog Agent, utiliza la versión 6.40 o 7.40 y posteriores.

Configuración

Después de haber configurado tu biblioteca de Datadog para Test Optimization, puedes configurar la detección temprana de defectos desde la página de configuración de Test Optimization.

La detección temprana de defectos en la configuración de servicios de test.
    1. Ve a Software Delivery > Test Optimization > Settings (Entrega de software > Test Optimization > Configuración).
    1. Haz clic en Configure (Configurar) en la columna Early Flake Detection (Detección temprana de defectos) para un servicio de tests.
    1. Haz clic en el conmutador para activar la Detección temprana de defectos y añade o modifica la lista de Ramas excluidas de la detección temprana de defectos.
Activar la Detección temprana de defectos y definir las ramas excluidas en la configuración de servicios de tests

Compatibilidad

Las versiones requeridas del marco de tests y dd-trace son:

dd-trace-js:

  • >=5.23.0 para la versión 5.x.
  • >=4.47.0 para la versión 4.x.

La compatibilidad del marco de tests es la misma que la Compatibilidad de optimización de tests, con la excepción de playwright, que sólo es compatible a partir de >=1.38.0.

dd-trace-java>=1.34.0

dd-trace-dotnet>=2.51.0

La Detección temprana de defectos está disponible utilizando la fase beta del nuevo complemento pytest. Establece la variable de entorno DD_PYTEST_USE_NEW_PLUGIN_BETA en true para habilitarla.

dd-trace-py>=2.18.0 (pytest>=7.2.0)

datadog-ci-rb>=1.5.0

Test optimization para Go está en vista previa.

orchestrion >= 0.9.4 + dd-trace-go >= 1.69.1

dd-sdk-swift-testing>=2.5.2

Gestionar ramas excluidas

Las ramas excluidas no tienen tests reintentados por la detección temprana de defectos. Los tests realizados en estas ramas no se consideran nuevos a efectos de la detección temprana de defectos. Puedes gestionar la lista de las ramas excluidas en la página Configuración de Test optimization, asegurándote de que la función se adapta a tu flujo de trabajo y estructura de ramas específicos.

Explorar los resultados en el Test Optimization Explorer

Puedes utilizar las siguientes facetas para consultar las sesiones que ejecutan la Detección temprana de defectos y los nuevos tests en el Test Optimization Explorer.

  • Sesión de tests: las sesiones de tests que ejecutan Detección temprana de defectos tienen la etiqueta (tag) @test.early_flake.enabled establecida en true.
  • Tests nuevos: los tests nuevos tienen la etiqueta @test.is_new establecida en true, y los reintentos para estos tests tienen la etiqueta @test.is_retry establecida entrue.

Resolución de problemas

Si sospechas que hay problemas con la Detección temprana de defectos, ve a la página Configuración de Test optimization, busca tu repositorio y haz clic en Configure (Configurar). Desactiva la Detección temprana de defectos haciendo clic en el conmutador.

No se reintenta un test nuevo

Esto puede deberse a un par de motivos:

  • Este test ya se ha realizado anteriormente.
  • Este test demora más de cinco minutos. Existe un mecanismo para no ejecutar Detección temprana de defectos en tests que son demasiado lentos, ya que hacerlo puede provocar retrasos significativos en los pipelines de CI.

Se ha reintentado un test que no es nuevo

Si la biblioteca de Datadog no puede obtener la lista completa de tests conocidos, es posible que la biblioteca de Datadog reintente tests que no son nuevos. Existe un mecanismo para evitar que este error ralentice el pipeline de CI, pero si ocurre, ponte en contacto con Datadog Support.

Referencias adicionales