X
BLOG

Cómo las pruebas de desplazamiento a la izquierda reducen los riesgos de desarrollo de software

Cómo las pruebas de desplazamiento a la izquierda reducen los riesgos de desarrollo de software Tiempo de leer: 5 minutos
Todas las empresas quieren (o deberían querer) reducir los riesgos asociados con el desarrollo de software. Pero para las empresas que prestan servicios a las industrias financieras y críticas para la seguridad, el riesgo debe eliminarse siempre que sea posible y minimizarse en todos los demás casos.

Prueba de cambio a la izquierda logra la reducción del riesgo en las siguientes áreas clave, que explicaré con más detalle a continuación:

  • Seguridad
  • Visibilidad
  • Cumplimiento de normativas y OEM
  • Confiabilidad
  • Cambios de aplicación
  • Desarrollo subcontratado

¿Qué es "Shift-Left"?

El movimiento hacia el “desplazamiento a la izquierda” se trata de trasladar las prácticas de prueba críticas a una etapa más temprana del ciclo de vida del desarrollo. Este término se encuentra especialmente en iniciativas Agile, Continuous y DevOps. Entonces, ¿por qué necesita realizar las primeras pruebas de software?

Muchas actividades de prueba ocurren al final del ciclo, donde se tarda más en descubrir qué salió mal y cuesta más arreglarlo. Desplazarse a la izquierda se trata de cambiar la identificación y prevención de defectos a una etapa anterior. Cuando no lo hace, y espera para realizar prácticas de prueba más adelante en el ciclo de desarrollo, sus requisitos comerciales no funcionales en particular (es decir, pruebas de seguridad y rendimiento) están tan profundamente arraigados en su código que todo lo que realmente puede hacer es arreglarlos en lugar de arreglarlos correctamente. Entonces, ¿cómo el mover las pruebas “hacia la izquierda” ayuda a las áreas clave del software?

Seguridad

La seguridad de las aplicaciones comprometida da como resultado la fuga de información, el tiempo de inactividad, la desfiguración y la instalación de malware. Estas consecuencias representan el 61.6% de los resultados relacionados con la seguridad según la base de datos de incidentes de piratería web.

El enfoque tradicional de la seguridad es simular ataques directos mediante una combinación de conjeturas y experiencia. El enfoque tradicional es ineficaz y obsoleto debido a su dependencia excesiva de la suerte. Con las pruebas de desplazamiento a la izquierda, estos riesgos de seguridad se pueden prevenir en el momento del desarrollo.

Visibilidad

Uno de los mayores riesgos que enfrenta una organización es la falta de información sobre la cual tomar decisiones. ¿Está progresando el desarrollo a un ritmo que cumpla con el plazo? ¿Está el producto en camino de cumplir con los requisitos? ¿Es necesario hacer algo ahora mismo para aprovechar una oportunidad o suavizar el impacto de un problema inminente del cliente?

La plataforma de pruebas de cambio a la izquierda de Parasoft brinda a las organizaciones una visibilidad sin precedentes, incomparable y completa de todo el proceso de desarrollo al vincular los datos de cada pieza de la infraestructura de desarrollo de software y aplicar inteligencia contextual contra las políticas corporativas definidas para impulsar un proceso automatizado de prevención y desarrollo. entregar la inteligencia empresarial necesaria en los niveles más altos de gestión.

Cumplimiento de normativas y OEM

El incumplimiento de las normativas de seguridad, gubernamentales o de fabricantes de equipos originales (OEM) puede resultar en retiradas del mercado, invalidar un contrato, imponer sanciones o dar lugar a acciones legales. Si bien las sumas varían mucho según la industria y el proyecto, a menudo son considerables. Mediante una combinación de análisis estático, análisis de cobertura, definición de proceso y medición de rutina, un enfoque de prueba de cambio a la izquierda sistematiza el cumplimiento en un proceso automatizado y hermético que garantiza la contención de riesgos.

Confiabilidad

La confiabilidad del software sigue siendo uno de los problemas más visibles que se pueden abordar fácilmente con las pruebas de cambio a la izquierda. Síntomas como bloqueos, tiempo de inactividad y SLA no cumplidos pueden afectar gravemente la posición de una empresa en el mercado. Al combinar la prevención, la detección y la verificación en un proceso de mejora continua, las pruebas de cambio a la izquierda asegurarán la reducción o eliminación de los riesgos de confiabilidad.

Cambios de aplicación

Entre los desarrolladores, hay un viejo chiste: "Si la depuración es el proceso de eliminar errores, entonces el desarrollo debe ser el proceso de colocarlos". En términos comerciales, cada cambio de código es un riesgo.

Las pruebas de desplazamiento a la izquierda eliminan el riesgo de introducir nuevos defectos al aplicar políticas de codificación que evitan problemas estructurales y de diseño mientras los desarrolladores trabajan. Además, una estrategia de prueba de desplazamiento a la izquierda eliminará el riesgo de comprometer la funcionalidad existente al permitir la generación, ejecución y gestión automatizadas de pruebas de regresión junto con un análisis de cobertura detallado. La asignación de revisión por pares automatizada proporciona una capa final de mitigación de riesgos que garantiza que el 100% del código sea inspeccionado por un experto del equipo adecuado.

Desarrollo subcontratado

La subcontratación está perdiendo popularidad a medida que las empresas aprenden lecciones dolorosas sobre los riesgos de la mano de obra barata y sin experiencia en un campo de alta tecnología. No obstante, muchas empresas tienen equipos de prueba y desarrollo offshore activos y continuarán por ese camino. Si bien las estrategias varían, los subcontratistas exitosos establecen múltiples puertas de mitigación de riesgos, tanto en el sitio como fuera, para protegerse contra la inyección de riesgos. Las pruebas de cambio a la izquierda son un ajuste natural para establecer y hacer cumplir las políticas para los estándares de codificación, la cobertura de las pruebas unitarias y la revisión por pares en cada puerta de mitigación de riesgos.

Entonces, ¿cómo se desplaza hacia la izquierda?

En aras de la brevedad, el enfoque de prueba de cambio a la izquierda se divide en dos actividades principales:

Aplicar las mejores prácticas de pruebas de desarrollo

Realizar prácticas de desarrollo en etapas anteriores, como análisis de código estático y pruebas unitarias, ayuda a ambos identificar y  evitar defectos al principio del proceso.

Es importante recordar que el objetivo no es encontrar errores, pero para reducir la cantidad de errores (especialmente los que se incluyen en la versión). En última instancia, crear menos errores en primer lugar es mucho más valioso que encontrar más errores, y es mucho más barato. Es por eso que los estándares de codificación críticos para la seguridad en un enfoque preventivo proactivo al marcar el código que puede "funcionar" pero que aún no es seguro.

Los estándares de codificación son el software equivalente a los estándares de ingeniería y son clave para reducir el volumen de errores (además de encontrar errores antes), para respaldar y obtener el máximo valor de su iniciativa de cambio a la izquierda. Los estándares de codificación son la encarnación del conocimiento de la ingeniería de software que lo ayudan a evitar códigos malos / peligrosos / inseguros. Para usarlos, aplica el análisis de código estático.

Para la seguridad del software, esto es especialmente importante para fortalecer con éxito su software. Quiere incorporar seguridad en su código, no probarlo. Los estándares de codificación le permiten crear una aplicación más segura desde el principio (es decir, segura por diseño), lo cual es tanto una buena idea como un requisito. si está sujeto a regulaciones como GDPR.

Aproveche la virtualización de servicios para permitir pruebas continuas

A continuación, debe tomar las pruebas que se crearon en todas las etapas, incluidas las etapas posteriores, del proceso de desarrollo, y ejecutarlas continuamente avanzando. Esto es fundamental para los equipos que están adoptando prácticas de desarrollo ágiles para proporcionar retroalimentación continua durante todo el proceso de desarrollo. Las pruebas unitarias se pueden ejecutar fácilmente de forma continua, pero cambiar a la izquierda la ejecución de las pruebas funcionales de la etapa posterior a menudo es difícil debido a las dependencias del sistema externo, y aquí es donde puede aprovechar la virtualización de servicios para permitir las pruebas continuas.

Virtualización de servicios le permite simular sistemas dependientes que pueden tener disponibilidad limitada, como mainframes, tarifas de acceso, servicios de terceros o quizás sistemas que aún no están listos. Simulándolos, puede realizar pruebas funcionales sin tener todo el sistema disponible, y puede desplazar la ejecución de la prueba a la izquierda hasta el escritorio de desarrollo.

En términos de pruebas de rendimiento, la virtualización de servicios le permite realizar pruebas antes de que todo esté listo y sin tener un laboratorio completo de todo en el sistema. Incluso puede ejecutar todo tipo de escenarios hipotéticos, como qué pasa si el servidor de aplicaciones es rápido y la base de datos lenta (algo difícil de hacer en el mundo real). O, ¿qué pasa si mi servidor comienza a arrojar errores divertidos como un error 500? ¿Cómo afectará eso al rendimiento del sistema?

Puede impulsar el sistema tanto como quiera y más allá, y hacerlo lo antes posible. (Obtenga más información sobre cómo shift-left su prueba de rendimiento.)

Del mismo modo, puede comenzar a realizar sus pruebas de seguridad antes. El desacoplamiento de los sistemas físicos le permite hacer algo aún más interesante, que es hacer que los sistemas simulados se comporten de manera maligna. Ahora puede REALMENTE realizar pruebas de seguridad ... En lugar de simplemente hurgar en su sistema en busca de datos contaminados y DDoS, puede hacer que un sistema lo inunde con paquetes, o envíe datos mal formados o cualquiera de los muchos otros exploits comúnmente utilizados por los atacantes. Por lo tanto, no solo puede probar antes (a la izquierda), sino que también puede probar mucho más profundamente de lo que es posible con un laboratorio de pruebas o un sistema de producción.

Escrito por

Jason Schadewald

Jason Schadewald es director de producto de Parasoft.

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

Prueba Parasoft