Vea cómo la solución de calidad continua de Parasoft ayuda a controlar y administrar los entornos de prueba para ofrecer software de alta calidad con confianza. Regístrese para la demostración >>
Parte 1 de esta publicación discutió los beneficios de usar contenedores para implementar cadenas de herramientas de desarrollo integradas. Mostró cómo configurar Parasoft C / C ++ test Professional para trabajar con la cadena de herramientas de compilación y el entorno de ejecución de pruebas implementado en un contenedor.
Ahora, veamos cómo crear una imagen de contenedor con Parasoft C / C ++ test Standard. Demostraré un ejemplo simple con una ejecución de análisis estático en el contenedor.
Como herramienta basada en la línea de comandos, el estándar de prueba Parasoft C / C ++ es adecuado para implementaciones en contenedores. Se puede empaquetar con el compilador y el sistema de compilación en una imagen de contenedor y usarse para CI / CD e implementarse en los escritorios de los desarrolladores para los escaneos de línea de comandos locales. La siguiente imagen muestra la descripción general de alto nivel de esta configuración:
El diagrama muestra a Jenkins usando la prueba C / C ++ en contenedores para ejecutar análisis estático. En esta configuración específica, la prueba de Parasoft C / C ++, la cadena de herramientas de compilación y las herramientas de compilación se implementan en el contenedor que se muestra en la esquina superior derecha del diagrama.
El contenedor debajo de él, en la parte inferior derecha, proporciona el entorno de ejecución, que puede ser necesario para ejecutar pruebas en tiempo de ejecución, como pruebas unitarias o pruebas de nivel de sistema automatizadas.
Si pretendemos implementar solo análisis estático, lo más probable es que nuestra configuración incluya solo un tipo de contenedor con la cadena de herramientas de compilación y la prueba Parasoft C / C ++.
Si aún no lo ha hecho, por favor instale la última versión de la prueba Parasoft C / C ++ 2020.1 para Linux.
Para simplificar el proceso de creación de una imagen de contenedor con la prueba C / C ++, la última versión se envía con un ejemplo de Dockerfile. Puede encontrar este Dockerfile en la siguiente ubicación:
/ integración / docker / Dockerfile
Este simple Dockerfile se enfoca solo en los pasos de prueba C / C ++ requeridos para construir la imagen. En la mayoría de los casos del mundo real, deberá fusionar este archivo con su Dockerfile.
Antes de analizar el contenido en el Dockerfile de ejemplo, veamos cómo funciona. Mi ejemplo asume la siguiente estructura de archivo simple:
style = ”tamaño de fuente: 13px;”>$ HOME / sandbox / parasoft_cpptest_standard-2020.1.0-linux.x86_64.tar.gz
1. Descomprima la distribución de prueba C / C ++.
2. Copie el Dockerfile de ejemplo de la distribución
3. Prepare un archivo de propiedades para la prueba C / C ++ con la información sobre la licencia. Usaremos el archivo cpptestcli.properties predeterminado como base, así que lo copiaremos a nuestro directorio de trabajo:
Edítelo para insertar la información sobre la ubicación del servidor de licencias. Utilice su editor favorito para configurar la información de licencia. Guarde el archivo cuando haya terminado.
4. Edite el Dockerfile y elimine el comentario de la línea número 13 (en la que se copia el archivo cpptestcli.properties del directorio local a la ubicación en los contenedores). La línea en el Dockerfile debería verse así:
5. Ahora, estamos listos para crear la imagen de Docker. Ejecute el comando para construir la primera imagen con la prueba C / C ++. El nombre de la imagen es "cpptest_ci_image".
Docker tardará un tiempo en analizar su caché y descargar la imagen base requerida. Una vez hecho esto, la distribución de prueba de C / C ++ se copia e instala en la imagen. Después de uno o dos minutos, la imagen debería estar lista. Confirme ejecutando el comando para listar todas las imágenes:
En la salida, debería ver "cpptest_ci_image" en la parte superior. Genial, tenemos una imagen construida y lista. ¡Ahora es el momento de probarlo!
Para una prueba simple, use una de las líneas de comando auxiliares / ejemplares proporcionadas dentro del Dockerfile.
Use su editor favorito para abrir el Dockerfile y desplácese hacia abajo hasta la parte inferior de los archivos. Debería ver un par de líneas de comando de ejemplo como esta:
Usemos la línea de comando de la línea 26 para ejecutar un análisis estático en el contenedor en uno de los ejemplos de prueba de C / C ++ enviados con la distribución.
Dado que decidimos compilar el archivo cpptestcli.properties con la información de la licencia en el contenedor, podemos simplificar la línea de comandos y eliminar la opción -settings. La línea de comando para la prueba debería tener este aspecto:
¡Voila! El análisis estático se ejecutó en el contenedor. Los resultados se informaron en la consola.
Podríamos configurar aún más la herramienta para producir el informe HTML en el sistema de archivos local, pero esta es una historia diferente. Nuestro objetivo principal era crear el contenedor con la prueba C / C ++ dentro y configurarlo para ejecutar análisis estáticos. Logramos la meta.
Si necesita configurar un servidor CI con análisis estático como parte del proceso, su tarea es mucho más sencilla. Simplemente acceda al contenedor. Lo mismo ocurre si los desarrolladores de su equipo desean ejecutar un análisis estático.
Necesita actualizar la prueba de Parasoft C / C ++ a la último lanzamiento? Simplemente descargue la distribución, reconstruya la imagen de su contenedor y ¡listo! El equipo y la infraestructura automatizada ni siquiera notarán esta operación. Suave, fácil y reversible, si es necesario.
Antes de terminar, veamos el contenido del Dockerfile enviado con la prueba Parasoft C / C ++ que se usó para crear nuestra imagen. La siguiente imagen muestra el contenido de / integración / docker / Dockerfile.
Aquí están los detalles:
Esto es todo lo que se necesita para crear un contenedor simple con la prueba Parasoft C / C ++ que esté listo para ejecutar análisis estáticos.
Como mencioné, este es un simple Dockerfile. Se agregó a la distribución para darle un ejemplo de lo que puede necesitar para crear una imagen de contenedor para su entorno. Deberá adaptarlo a sus necesidades o fusionarlo con Dockerfiles existentes.
Gerente de producto para las soluciones de prueba integradas de Parasoft, las especialidades de Miroslaw incluyen C / C ++, RTOS, análisis de código estático, pruebas unitarias, gestión de la calidad del software para aplicaciones críticas de seguridad y cumplimiento del software con los estándares de seguridad.