Vea cómo integrar fácilmente el análisis estático, las pruebas unitarias y otros métodos de prueba de software C y C++ en su canalización de CI/CD. Regístrese para la demostración >>

Análisis estático para la FDA: 3 claves para el éxito

por Parasoft

23 de junio de 2011

3  min leer

Continuando con nuestra serie de publicaciones sobre análisis de código estático para Cumplimiento de software de dispositivos médicos/FDA

1.Hacer del proceso de análisis estático un proceso continuo

Tener el análisis estático estrechamente integrado en el SDLC como se describe en el informe de la semana pasada.  Análisis estático para la FDA: ¿Qué implica? la publicación, en lugar de solo como una auditoría al final del proceso, proporciona dos beneficios distintos.

  • Los desarrolladores adoptan mejores hábitos de codificación que les ayudan a escribir mejor código más rápido. El proceso de corregir una infracción de análisis de código estático es más significativo y más educativo cuando se realiza en el contexto de lo que el desarrollador intentaba lograr. Por lo tanto, en un proceso continuo, es más probable que el desarrollador aprenda de sus errores y eventualmente comience a escribir código compatible como un hábito.
  • Los desarrolladores solucionan los problemas de forma más rápida y sencilla. Si el código todavía está fresco en la mente del desarrollador cuando se informa del problema, el desarrollador no necesita perder el tiempo tratando de recordar qué se suponía que debía hacer el código, por qué lo escribió de la manera en que lo hizo, qué impactos necesita. considerar al modificar el código para cumplir con las expectativas de cumplimiento, etc. Como puede imaginar, resolver el mismo problema semanas o meses después requeriría mucho más trabajo para lograr el mismo resultado.

2. Mantenga los resultados del análisis de código estático relevantes y significativos a través del contexto

Adopte un enfoque basado en políticas para el análisis estático: use el análisis de código estático para monitorear un conjunto no negociable de expectativas en torno a la confiabilidad, seguridad, rendimiento y mantenibilidad del código. Con este enfoque, la violación de una directriz en particular no es solo otra sugerencia para las personas que crean software en una torre de marfil: es una notificación de que el código no cumplió con las expectativas de la organización. De lo contrario, las infracciones de las reglas se perciben como sugerencias para mejoras generales del código, no como problemas críticos de codificación que deben abordarse de inmediato.

La gestión de políticas eficaz permite a una organización cerrar la brecha entre las expectativas de la gestión y el desempeño del desarrollador. Básicamente, si una regla de análisis de código estático aplica algo que es parte de la política, no es negociable corregir una infracción de esa regla. Si un desarrollador no cumple con la política definida, no está ejecutando su trabajo como esperaba la gerencia.

Para una analogía, considere las reglas de conducción en su estado. Si está conduciendo en un día normal, sin la presencia de agentes de la ley, puede adoptar un enfoque bastante laxo para seguir ciertas reglas. Pero si está tomando un examen de manejo detrás del volante que debe aprobar para recibir o renovar su licencia, probablemente estará mucho más atento a seguir las regulaciones aplicables.

3. Reducir el dolor del análisis estático a través del proceso y el flujo de trabajo

Para asegurarse de que un proceso de análisis de código estático en línea y basado en políticas sea fácil de introducir y sostenible de adoptar, asegúrese de considerar la administración de políticas, la administración del flujo de trabajo y la optimización del flujo de trabajo.

La gestión de políticas se encuentra en el centro de dicho proceso en línea. Un conjunto de políticas cuidadosamente definidas e implementadas establece una base de conocimientos que guía a los desarrolladores a comenzar a escribir código seguro y confiable como una cuestión de hábito.

Con una política establecida, ponerla en práctica implica la gestión del flujo de trabajo: definir, automatizar y monitorear un flujo de trabajo que mejora la productividad del desarrollo y forma la base de un proceso sostenible.

Para la optimización del flujo de trabajo, las tareas para respaldar las políticas de calidad deben optimizarse para que puedan convertirse de manera factible en una parte integral del flujo de trabajo existente del equipo, asegurando que el proceso de análisis estático es sostenible y escalable. La falta de automatización, repetibilidad o consistencia degradará cualquier iniciativa de calidad que la organización pretenda implementar.

Una forma de optimizar el flujo de trabajo es mediante el uso de análisis estático junto con otras capacidades de análisis, como el análisis de métricas y la revisión de código por pares. Esto le permite optimizar mejor el tiempo de los desarrolladores al enfocar sus esfuerzos en escenarios más severos o más complejos primero. Por ejemplo, si recibe una alerta de que un determinado fragmento de código tiene un alto nivel de Complejidad Ciclomática, así como problemas de seguridad de alta gravedad, en última instancia, deseará señalar primero a los desarrolladores a esa región. De hecho, este es un excelente ejemplo de cómo el análisis de código puede ayudarlo a concentrarse en los elementos que deben discutirse durante la revisión del código entre pares.

Otras formas de optimizar el flujo de trabajo incluyen:

  • Enrutar cada problema informado directamente al desarrollador responsable, así como personalizar la priorización de problemas para que se adapte a las prioridades de su política, garantiza que sus problemas más críticos se aborden de manera oportuna.
  • La gestión de configuración centralizada garantiza que los conjuntos de reglas se apliquen de forma coherente y se puedan actualizar sin esfuerzo a medida que evolucionan las prioridades y los procesos.
  • El uso de la refactorización automatizada siempre que sea posible ayuda al equipo a corregir las infracciones de las reglas lo más rápido posible.

***

Crédito de la imagen: ~ Brenda-Starr ~

por Parasoft

Las herramientas de prueba de software automatizadas líderes en la industria de Parasoft respaldan todo el proceso de desarrollo de software, desde que el desarrollador escribe la primera línea de código hasta las pruebas unitarias y funcionales, hasta las pruebas de rendimiento y seguridad, aprovechando los entornos de prueba simulados en el camino.

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