Vea qué solución de pruebas de API resultó ganadora en el informe GigaOm Radar. Obtenga su informe analítico gratuito >>

Vea qué solución de pruebas de API resultó ganadora en el informe GigaOm Radar. Obtenga su informe analítico gratuito >>
Saltar a la sección
Las organizaciones pueden reducir significativamente el riesgo de incidentes como el fallo de CrowdStrike automatizando las pruebas de software y desplazándolo hacia la izquierda. Continúe leyendo para descubrir el poder de adoptar un enfoque de desplazamiento a la izquierda en las pruebas.
Saltar a la sección
Saltar a la sección
El error en la actualización del software de CrowdStrike sirve como una lección fundamental sobre la importancia de las pruebas de software tempranas, automatizadas y completas. Como mi colega, Miroslaw Zielinski, enfatizado en Información sobre pruebas de software a partir del incidente de CrowdStrike, tomar atajos para ahorrar tiempo y dinero en las pruebas puede conducir a resultados desastrosos. Las pruebas no son sólo una casilla que hay que marcar. Es una parte vital para garantizar que el software que ofrece sea confiable, seguro y capaz de funcionar como se espera en el mundo real.
Si bien hay múltiples factores detrás de este fracaso, un desafío común que escucho con frecuencia de las organizaciones es la presión incesante para publicar actualizaciones frecuentes. Esta presión a menudo hace que optimizar el costo y el tiempo de las pruebas sea un objetivo atractivo. Sin embargo, la clave para evitar incidentes como el fracaso de CrowdStrike reside en adoptar una estrategia integral y enfoque de desplazamiento hacia la izquierda para las pruebas.
Las pruebas de software de Parasoft, particularmente análisis estático, está diseñado para facilitar este enfoque de desplazamiento a la izquierda. Pero antes de profundizar en esta solución, primero comprendamos el poder de las pruebas de desplazamiento a la izquierda.
La prueba de desplazamiento a la izquierda es uno de los conceptos más poderosos en el desarrollo de software moderno, ya que permite la detección temprana de errores y mejora la calidad general del código. Tradicionalmente, las pruebas y la depuración se realizaban hacia el final del ciclo de desarrollo (después de escribir e integrar el código) y, a menudo, después de las fases iniciales de prueba. Este enfoque generalmente conducía al descubrimiento de errores y problemas críticos en una etapa avanzada del proceso, cuando era mucho más difícil y requería más tiempo solucionarlos.
Al implementar un análisis estático durante el proceso de implementación, los ingenieros pueden abordar problemas de codificación o violaciones de cumplimiento mientras escriben el código. Esta retroalimentación inmediata permite a los desarrolladores corregir problemas en el momento, mejorando significativamente la calidad del código desde el principio. El resultado es una reducción sustancial de los defectos que, de otro modo, se descubrirían más adelante en el ciclo de vida del desarrollo, donde solucionarlos se vuelve cada vez más complejo y costoso.
Por ejemplo, cuando un defecto se identifica tempranamente mediante un análisis estático, se puede abordar de forma rápida y eficiente. Sin embargo, si las pruebas de control de calidad no detectan el mismo defecto hasta más tarde, el proceso de resolución se vuelve más complicado. Hay más miembros del equipo involucrados y los pasos para registrar, informar, reproducir y solucionar el problema toman más tiempo, lo que genera mayores esfuerzos y demoras.
Lo que está en juego se vuelve aún mayor si el defecto llega a la producción. Abordar un defecto en el campo es particularmente desafiante, ya que afecta directamente a los clientes y puede requerir parches urgentes, retiros del mercado o incluso control de daños para proteger la reputación del producto. El equipo de desarrollo debe actuar con rapidez para corregir el error, mientras que el equipo de control de calidad debe volver a probar la solución, añadiendo más capas de complejidad al proceso.
Al reflexionar sobre el incidente de CrowdStrike, queda claro cuán vital es el análisis estático para identificar y abordar defectos en las primeras etapas del proceso de desarrollo, evitando que problemas costosos y dañinos lleguen a producción.
El análisis estático es una técnica avanzada para examinar el código fuente para identificar errores potenciales, como el uso de variables no inicializadas, desreferenciación de punteros NULL, desbordamientos de búfer y muchos otros defectos de codificación, sin ejecutar el código.
Por ejemplo, el motor de análisis estático de Parasoft va más allá de simples comprobaciones de sintaxis. No solo realiza análisis de flujo de control y flujo de datos para detectar una amplia gama de errores y problemas de codificación, sino que también se adelanta a la competencia con una aplicación única de IA y aprendizaje automático. Nuestro Solución impulsada por IA revisa los nuevos hallazgos del análisis estático en el contexto de las interacciones históricas con el código base y los resultados del análisis estático anterior, prediciendo la relevancia y priorizando los nuevos hallazgos para ayudar a las organizaciones a adoptar el análisis estático de manera más efectiva.
Éstos son sólo algunos tipos de errores o problemas que el análisis estático puede detectar.
Este tipo de errores de codificación se buscan y mitigan agresivamente en el desarrollo crítico para la seguridad, donde se podrían perder vidas si el sistema falla o falla. Aunque los conceptos de seguridad no son un requisito para CrowdStrike, la calidad del software sí lo es, y deberían considerar la adopción de estándares de codificación como Misra, CERT, CWE, u otras personas.
Los estándares de codificación como MISRA son desarrollados por expertos con años de experiencia, y Parasoft, como miembro contribuyente de la MISRA C y C++ 2023 estándares de codificación, ofrece una sólida solución de análisis estático basada en esta experiencia.
A pesar de estos claros beneficios, sorprende cuántos equipos de desarrollo todavía no utilizan el análisis estático. La adopción del análisis estático es esencial para reducir los costos en las pruebas de software y al mismo tiempo aumentar la calidad del código.
Al incorporar el análisis estático en su canal de integración/implementación continua (CI/CD), CrowdStrike podría haber identificado automáticamente los problemas de acceso a la memoria que provocaron que fallara la actualización de su software.
En un entorno CI/CD moderno, los desarrolladores escriben y confirman código, lo que desencadena un proceso de compilación automatizado. Cuando una compilación se completa con éxito, se ejecutan pruebas automatizadas, incluido el análisis estático. Parasoft Soluciones de prueba C y C++ como las pruebas C/C++ se integran fácilmente en canalizaciones de CI/CD y funcionan perfectamente con herramientas como Jenkins, GitLab, Bamboo, VS Code, Eclipse y muchas otras.
Esta integración garantiza que la calidad del código se supervise y mejore continuamente y que los desarrolladores reciban comentarios inmediatos sobre cualquier problema que identifique el análisis estático. Al automatizar estos controles de calidad, las organizaciones pueden:
El incidente de CrowdStrike ofrece lecciones valiosas para los equipos de desarrollo.
El error en la actualización del software CrowdStrike resalta la importancia de las pruebas integrales y automatizadas en el entorno de desarrollo de software actual. Las organizaciones pueden reducir significativamente el riesgo de tales incidentes aprovechando las soluciones de Parasoft para análisis estático junto con pruebas unitarias, cobertura de código y otros métodos de prueba. Nuestras herramientas ayudan a los equipos a mantener altos estándares de calidad del software mientras gestionan los riesgos comerciales, garantizando que su software sea confiable, seguro y esté listo para funcionar en el mundo real.
La guía definitiva de CI/CD para sistemas de software integrados
“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.