Seminario web destacado: MISRA C++ 2023: todo lo que necesita saber | Vea ahora

El análisis estático ayuda al fabricante de herramientas de telecomunicaciones a ofrecer software de alta calidad

Foto de cabeza de Ricardo Camacho, Director de Cumplimiento de Seguridad y Seguridad
Enero 30, 2020
4 min leer

No se puede descartar la importancia del análisis estático para garantizar la calidad de su código de software. Lea para aprender cómo el análisis estático es fundamental para lograr los objetivos de seguridad y calidad del software.

En este artículo, discutiré algunas de las razones por las que el análisis estático es una tecnología imprescindible para lograr sus objetivos de seguridad y calidad de software. También compartiré algunas ideas de uno de los viajes de implementación de análisis estático de uno de nuestros valiosos clientes.

Una de las mejores formas de diferenciarse en el abarrotado espacio de software crítico para el negocio es proporcionar productos seguros, fiables y que satisfagan las expectativas de sus clientes. Pero entregar software libre de defectos es un desafío, especialmente si su proyecto aprovecha construcciones complejas para optimizar el rendimiento, contiene millones de líneas de código y está siendo tocado por varios desarrolladores. Esta es la razón por la que muchas empresas, como G3 Technologies, una organización de telecomunicaciones inalámbricas que ofrece herramientas y soluciones personalizadas, confían en el análisis estático como parte de su política de desarrollo. Descargue el estudio de caso de G3 Technologies para obtener más información.

¿Cómo respalda el análisis estático la calidad y la seguridad del código?

El análisis estático ayuda a las organizaciones a lograr sus objetivos de seguridad y calidad de software al comparar el código con los patrones de programación que se sabe que hacen que el software sea vulnerable a errores y vulnerabilidades de seguridad. Los verificadores de código de análisis estático buscan construcciones que pueden conducir a pérdidas de memoria, problemas de mantenimiento del código y otros problemas y señalan las construcciones como violaciones. Por ejemplo, muchos verificadores informarán una infracción si se utilizan declaraciones "goto" o "saltar" porque agregan complejidad a la lógica del programa, lo que aumenta la probabilidad de errores de bloqueo del software.

Los verificadores de código (también llamados reglas de análisis estático) se basan en conjuntos de pautas, como MISRA C 2012, CWE Top 25 u OWASP Top Ten, que se han convertido en estándares para muchas industrias. Para su implementación de análisis estático, G3 aprovechó el soporte nativo de Parasoft para las principales pautas de programación. Parasoft, además, le permite personalizar qué comprobadores se utilizan para analizar su código, lo que le brinda la posibilidad de utilizar comprobadores de combinación y combinación de varios estándares para que pueda adaptar el análisis a su código.

G3 emplea más de 1000 reglas de análisis estático de Parasoft como parte de su proceso de integración continuo, lo que ayuda a la empresa a garantizar que el código de producción esté libre y libre de problemas de programación comunes. En los primeros seis meses de la implementación de las herramientas de análisis estático de Parasoft, G3 abordó aproximadamente 50,000 violaciones, algunas de las cuales eran errores críticos, como problemas de conversión de tipos, variables no utilizadas y desreferencias de puntero nulo.

El alto costo de los defectos del software

Si bien siempre es valioso encontrar defectos de software, encontrarlos al principio del ciclo de vida del desarrollo es la forma en que las organizaciones obtienen el mayor valor de su inversión en análisis estático. El siguiente gráfico muestra el costo de encontrar defectos en relación con el ciclo de vida del desarrollo de software (SDLC).


In su caso de estudio, G3 destaca el valor de encontrar errores en la etapa de codificación. Aprovechar el análisis estático permitió a G3 encontrar errores de programación antes de que el software llegue a producción, lo que ahorra costos asociados con la repetición de pruebas, la recertificación y la reimplementación. Sin embargo, lo más importante es que la detección temprana de defectos mantiene a G3 al día con sus clientes. Su enfoque proactivo para detectar la mayor cantidad posible de errores desde el principio permite a la empresa entregar rápidamente el software de alta calidad que sus clientes esperan, al tiempo que evita los costos asociados con la detección de defectos en la etapa tardía.

Es asombroso que algunas empresas renuncien al análisis estático en sus proyectos. En uno de mis roles anteriores como Project Manager de servicios, un cliente me contrató para realizar pruebas unitarias en tres subsistemas de software. El software tenía aproximadamente 111,000 líneas de código C y C ++. Después de un par de meses de pruebas y más de 620 defectos identificados, decidí realizar un análisis estático en el código como un experimento. Descubrí que más del 80% de los defectos identificados a través de las pruebas unitarias se habían encontrado en cuestión de una hora mediante la realización de análisis estáticos. Los ahorros de costos para el cliente hubieran sido sustanciales si hubieran adoptado un análisis estático y lo hubieran complementado con pruebas unitarias.

No todas las soluciones de análisis estático son iguales

Felicitaciones si ha implementado o está a punto de implementar análisis estático. Sus usuarios apreciarán cualquier paso que tome para mejorar la seguridad, protección y confiabilidad de su código. Y aunque aplaudimos todos los esfuerzos para mejorar el software del mundo, debe tener en cuenta lo que es importante para su organización antes de decidirse por un proveedor de análisis estático.

No hace falta decir que el análisis de código profundo, minucioso y preciso es el requisito mínimo para cualquier solución de análisis estático. Sin embargo, algunos proveedores centran su tecnología de análisis estático en aspectos específicos del desarrollo, como la seguridad. Por el contrario, el enfoque de Parasoft es crear calidad y seguridad en la aplicación. De hecho, una de las razones por las que G3 dejó su anterior proveedor de análisis estático en favor de Parasoft es que su proveedor anterior estaba reduciendo su enfoque de la calidad general del software y hacia un hiperenfoque en la seguridad.

Dejando a un lado las diferencias de implementación, recomendamos buscar un proveedor de análisis estático que demuestre su voluntad de asociarse con usted en su viaje de análisis estático. G3 ha encontrado a su socio en Parasoft porque estamos comprometidos a trabajar con G3 en el futuro previsible. Su proveedor anterior no era receptivo a trabajar con G3 para mejorar su solución de análisis estático. Reconocieron que colaborar con un proveedor de herramientas de análisis estático en las mejoras no solo les ayuda a analizar el código de manera más eficaz, sino que también garantiza que el proveedor esté disponible para ayudar a G3 a entregar productos de alta calidad en el futuro. Descargue el caso de estudio de G3 Technologies para obtener más información.

Conclusión

El análisis estático es la piedra angular de cualquier política de seguridad y calidad de software. La práctica de calidad ayuda a las organizaciones a encontrar defectos de software en la etapa más temprana posible, lo que reduce el costo general de la calidad durante el ciclo de vida del desarrollo de software. Sin embargo, no todos los proveedores de análisis estáticos son iguales. Si está explorando una solución de análisis estático o está buscando un nuevo socio, considere cómo el enfoque de implementación del proveedor, la voluntad de asociarse y el soporte para las pautas de programación se alinean con los objetivos de calidad y seguridad de su software.

Parasoft se enorgullece y honra de proporcionar la tecnología de análisis estático que ayuda a G3 Technologies a continuar entregando software de alta calidad mientras cumple con su riguroso programa de lanzamiento. Las soluciones de prueba de software de Parasoft y nuestra relación de colaboración con G3 han convertido a Parasoft en un socio tecnológico clave, lo que garantiza que las aplicaciones de software de G3 se desarrollen correctamente desde la primera vez. Parasoft también se ha incorporado dentro del proceso de integración continua de G3, lo que garantiza que el software no entre en producción hasta que se hayan resuelto todos los defectos identificados. Puede leer la historia de éxito de los clientes de G3 siguiendo este enlace: Estudio de caso de G3 Technologies

Descubra el valor de usar una solución de pruebas C/C++ unificada y cómo maximizar el ROI de las pruebas.

“MISRA”, “MISRA C” y el logotipo del triángulo son marcas comerciales registradas de The MISRA Consortium Limited. © The MISRA Consortium Limited, 2021. Todos los derechos reservados.