Articulo de referencia

Integridad del código

La integridad del código es una medida utilizada en el ciclo de vida de la entrega de software. Mide la calidad del código fuente cuando se entrega a control de calidad y se ve ...

La integridad del código es una medida utilizada en el ciclo de vida de la entrega de software. Mide la calidad del código fuente cuando se entrega a control de calidad y se ve afectada por la exhaustividad con la que se procesó el código mediante procesos de verificación de corrección (manuales o automáticos). Ejemplos de estos procesos de verificación de corrección pueden ser las pruebas unitarias y de integración , la revisión de código , la automatización de pruebas , el análisis de código basado en IA, etc. [ 1 ] La integridad del código es la combinación de la aplicación de procesos de corrección del código (calidad del software) junto con métricas que miden la exhaustividad de estos procesos de verificación de corrección, como, por ejemplo, la cobertura de código . Si bien la integridad del código generalmente se logra mediante pruebas unitarias del código fuente para alcanzar una alta cobertura de código, definitivamente no es la única manera, ni la mejor, de lograr la integridad del código. De hecho, se sabe que la cobertura de código, una métrica popular para medir la exhaustividad de las pruebas unitarias, tiene una correlación limitada con la medida de la integridad real del código. [ 2 ]

Confianza del desarrollador

La integridad del código no se trata solo de la corrección del código, sino también de la confianza de los desarrolladores respecto a la corrección de su código. Con la integridad del código, el desarrollador puede estar seguro de que su código está escrito correctamente cuando se entrega al equipo de control de calidad. Este es, de hecho, el nivel de calidad esperado del código. La integridad del código ayuda a los desarrolladores y a las empresas a lanzar mejores productos, con menos errores y en menos tiempo. [ 3 ]

Pruebas de desplazamiento a la izquierda e integridad del código de desplazamiento a la izquierda

Las empresas que practican la integridad del código evitan el escenario clásico en el que se retrasa la fase de desarrollo, lo que a su vez retrasa la fase de control de calidad y la fase de lanzamiento. Los productos de las empresas que no adoptan la integridad del código se lanzan con más errores (debido a la presión del tiempo), los usuarios reportan muchísimos errores al equipo de desarrollo y este comienza a trabajar en la versión 1.1 poco después de lanzar la versión 1.0, solo para corregir errores que podrían haberse evitado.

Las pruebas Shift-left son un método para realizar pruebas relacionadas durante los procesos iniciales del desarrollo de software, ya que el departamento de control de calidad no puede medir la integridad del código incluso después de ejecutar todas sus pruebas. Las pruebas Shift-left y la integridad del código están estrechamente relacionadas, pero la integridad no se limita a la parte de las pruebas, que es una subtarea del proceso más amplio de integridad del código Shift-left. Este proceso no solo aplica más pruebas unitarias junto con una mayor cobertura de código, sino que también implica varios otros procesos de verificación de corrección con datos relevantes. [ 4 ] Aquí hay algunos ejemplos:

  • Pruebas unitarias del código
  • Pruebas de integración
  • Revisión de código
  • Análisis de código basado en IA
  • Pruebas automáticas
  • Asignación de un gestor de integridad del código
Ejemplos de métricas de completitud para la verificación de la corrección
  • La formulación de la métrica de integridad del código puro es: 1 − (Errores no cubiertos) / (Errores totales). En otras palabras: la integridad perfecta del código menos el número de errores que no fueron cubiertos por las pruebas unitarias, dividido por el total de errores encontrados durante todo el ciclo del producto, incluido el desarrollo, es el código que no está en integridad.
  • Diferentes tipos de cobertura de código (cobertura de líneas, cobertura de ramas, etc.)
  • Pruebas de mutación
Ventajas de la integridad del código con desplazamiento a la izquierda
  • Menor tiempo de desarrollo: los errores que se detectan durante la fase de desarrollo se corrigen de forma más rápida y sencilla que los que se encuentran en fases posteriores.
  • Menores costes de desarrollo: es más económico corregir los errores que se encuentran durante la fase de desarrollo que en fases posteriores.
  • Confianza en la calidad de tu código: lanzar productos con un código de alta integridad se traduce en comentarios más positivos por parte de tus clientes.
  • Hace que el trabajo del equipo de control de calidad sea mucho más eficiente: el equipo de control de calidad se concentra en probar el sistema, sin preocuparse por errores que podrían haberse detectado fácilmente mediante pruebas unitarias adecuadas.

Habilitación de la integridad del código mediante desplazamiento a la izquierda

Este concepto se basa en el hecho de que los desarrolladores podrían aprovechar al máximo la ventaja tecnológica si disponen de las herramientas de prueba pertinentes desde el principio. A medida que el software más reciente se vuelve más complejo e incluye más dependencias, la inclusión del lado derecho del modelo V en los roles de los desarrolladores les ayudará a asumir el control de los procesos de pruebas unitarias e integración. [ 3 ] [ 5 ] El resultado permitirá a los desarrolladores crear entornos completos en muchas empresas de software. Se espera que esta tendencia continúe, ya que en muchos casos es imposible realizar pruebas unitarias/de integración sin el contexto completo del sistema. [ 6 ]

Referencias

  1. Sharma, Tushar; Kechagia, Maria; Georgiou, Stefanos; Tiwari, Rohit; Vats, Indira; Moazen, Hadi; Sarro, Federica (2021). "Una revisión de las técnicas de aprendizaje automático para el análisis de código fuente". arXiv : 2110.09610 [ cs.SE ].
  2. Hemmati, Hadi (2015). "¿Qué tan efectivos son los criterios de cobertura de código?". Conferencia Internacional IEEE de 2015 sobre Calidad, Confiabilidad y Seguridad del Software . págs. 151–156 . doi : 10.1109/QRS.2015.30 . ISBN  978-1-4673-7989-2. S2CID 7305779 . 
  3. 1 2 Gadi Zimerman (11 de noviembre de 2022). "Las pruebas no son suficientes: ¿por qué importa la integridad del código?" . Recuperado el 16 de marzo de 2023 .
  4. Bjerke-Gulstuen, Kristian; Larsen, Emil Wiik; Stålhane, Tor; Dingsøyr, Torgeir (2015). "Desarrollo basado en pruebas de alto nivel: desplazamiento a la izquierda" . Procesos Ágiles en Ingeniería de Software y Programación Extrema . Apuntes de conferencias sobre procesamiento de información empresarial. vol. 212. págs. 239–247 . doi : 10.1007/978-3-319-18612-2_23 . ISBN   978-3-319-18611-5Consultado el 15 de marzo de 2023 .
  5. Rook, Paul, E. Rook (1986). "Controlling software projects" . Software Engineering Journal . 1 (1): 7– 16. doi : 10.1049/sej.1986.0003 . Recuperado el 15 de marzo de 2023 .{{cite journal}}: CS1 maint: varios nombres: lista de autores ( enlace )
  6. Mowad, Abrar Mohammad; Fawareh, Hamed; Hassan, Mohammad A. (2022). "Efecto del uso de la integración continua (CI) y la entrega continua (CD) en DevOps para reducir la brecha entre desarrollador y operaciones". Conferencia Árabe Internacional de Tecnología de la Información (ACIT) de 2022. pp. 1–8 . doi : 10.1109/ACIT57182.2022.9994139 . ISBN  979-8-3503-2024-4. S2CID 255419041 .