Seminario web destacado: Pruebas de API mejoradas con IA: un enfoque de prueba sin código | Vea ahora
Pruebas de integración de software
Pruebas de integración Siguen las pruebas unitarias con el objetivo de validar el diseño arquitectónico o los requisitos de alto nivel. Las pruebas de integración se pueden realizar de abajo hacia arriba y de arriba hacia abajo con una combinación de enfoques, algo que es común en muchas organizaciones de software.
Integración de abajo hacia arriba
Los evaluadores toman casos de prueba unitarios y eliminan fragmentos o los combinan con otras unidades de código que conforman niveles superiores de funcionalidad. Estos tipos de casos de prueba integrados se utilizan para validar requisitos de alto nivel.
Integración de arriba hacia abajo
En esta prueba, primero se prueban los módulos o subsistemas de alto nivel. A continuación, se incluyen las pruebas de los módulos de nivel inferior (subsubsistemas). Este enfoque supone que los subsistemas importantes están lo suficientemente completos como para incluirlos y probarlos como un todo.
El modelo en V es útil para ilustrar la relación entre las etapas de desarrollo y las etapas de validación. En cada etapa de prueba, se validan partes más completas del software en relación con la fase que lo define.
El modelo V puede implicar un método de desarrollo en cascada. Sin embargo, existen formas de incorporar Agile, DevOps y CI/CD en este tipo de desarrollo de productos sin dejar de cumplir con los estándares.
Si bien el acto de realizar pruebas se considera validación de software, está respaldado por un proceso de verificación paralelo que involucra las siguientes actividades para garantizar que los equipos estén construyendo el proceso y el producto correctamente:
Reseñas
Tutoriales
Analisis
Trazabilidad
Examen
Cobertura de código y más
El papel clave de la verificación es garantizar que los artefactos entregados en la etapa anterior cumplan con las especificaciones y cumplan con las pautas de la empresa y la industria.
Pruebas de integración y del sistema como parte de un proceso de prueba continua
Realizar algún nivel de prueba de automatización es fundamental para las pruebas continuas. Muchas organizaciones comienzan automatizando la integración manual y las pruebas del sistema (de arriba hacia abajo) o las pruebas unitarias (de abajo hacia arriba).
Para permitir la realización de pruebas continuas, las organizaciones deben centrarse en crear una práctica de automatización de pruebas escalable que se base en pruebas unitarias, que son aisladas y más rápidas de ejecutar. Una vez que las pruebas unitarias están completamente automatizadas, el siguiente paso son las pruebas de integración y, finalmente, las pruebas del sistema.
Prueba continua Aprovecha la automatización y los datos derivados de las pruebas para proporcionar una evaluación objetiva en tiempo real de los riesgos asociados con un sistema en desarrollo. Si se aplica de manera uniforme, permite que tanto los gerentes comerciales como los técnicos tomen mejores decisiones sobre el equilibrio entre el alcance, el tiempo y la calidad de la versión.
Las pruebas continuas no son solo una mayor automatización, sino una reevaluación más amplia de las prácticas de calidad del software que se basan en el costo de calidad de una organización y se equilibran en función de la velocidad y la agilidad. Incluso dentro del modelo V utilizado en el desarrollo de software crítico para la seguridad, las pruebas continuas siguen siendo un enfoque viable, en particular durante las fases de prueba, por ejemplo, durante las pruebas unitarias y las pruebas de integración.
El siguiente diagrama ilustra cómo las diferentes fases de prueba son parte de un proceso continuo que se basa en un ciclo de retroalimentación de resultados y análisis de pruebas.
Análisis e informes de Parasoft en apoyo de la integración y las pruebas del sistema
Las herramientas de automatización de pruebas de Parasoft respaldan la validación (actividades de prueba reales) en términos de automatización de pruebas y pruebas continuas. Estas herramientas también respaldan la verificación de estas actividades, lo que significa respaldar los requisitos de procesos y estándares. Un aspecto clave del desarrollo de software automotriz crítico para la seguridad es trazabilidad de requisitos y cobertura de código.
Trazabilidad bidireccional
Los requisitos del software crítico para la seguridad son el factor clave para el diseño y desarrollo de productos. Estos requisitos incluyen la seguridad funcional, los requisitos de la aplicación y los requisitos no funcionales que definen completamente el producto. Esta dependencia de los requisitos documentados tiene ventajas y desventajas, ya que los requisitos deficientes son una de las causas críticas de los incidentes de seguridad en el software. En otras palabras, la implementación no fue la culpable, sino los requisitos deficientes o inexistentes.
Automatización de la trazabilidad bidireccional
El mantenimiento de registros de trazabilidad a cualquier escala requiere automatización. Las herramientas de gestión del ciclo de vida de las aplicaciones incluyen capacidades de gestión de requisitos que están maduras y tienden a ser el centro de la trazabilidad. Las herramientas de prueba de software integradas como Parasoft completan la verificación y validación de los requisitos al proporcionar una trazabilidad bidireccional automatizada hasta el caso de prueba ejecutable. Esto incluye el resultado de aprobación o rechazo y el seguimiento hasta el código fuente que implementa el requisito.
Parasoft se integra con herramientas de gestión de requisitos o sistemas ALM líderes en el mercado, como PTC Codebeamer, Polarion de Siemens, Atlassian Jira, Jama Connect, Jira y otros. Como se muestra en la imagen a continuación, cada una de las soluciones de automatización de pruebas de Parasoft, Prueba C/C++, prueba C/C++ CT, jprueba, puntoPRUEBA, Prueba SOAy Selenico, utilizado dentro del ciclo de vida del desarrollo, permite asociar las pruebas con los elementos de trabajo definidos en estos sistemas, como requisitos, defectos y casos de prueba o ejecuciones de prueba. La trazabilidad se gestiona a través de Parasoft Panel central de análisis e informes de DTP.
Parasoft DTP correlaciona los identificadores únicos del sistema de gestión con:
- Resultados del análisis estático
- Cobertura de código
- Resultados de pruebas unitarias, de integración y funcionales
Los resultados se muestran en los informes de trazabilidad de Parasoft DTP y se envían al sistema de gestión de requisitos. Proporcionan trazabilidad y generación de informes bidireccionales completos como parte de la matriz de trazabilidad del sistema.
Los informes de trazabilidad en Parasoft DTP son altamente personalizables. La siguiente imagen muestra una plantilla de matriz de trazabilidad de requisitos para los requisitos creados en Polarion que se remontan a los casos de prueba, los hallazgos de análisis estáticos, los archivos de código fuente y las revisiones manuales de código.
Cobertura de código
La cobertura del código expresa el grado en que el código fuente de la aplicación es ejercitado por todas las prácticas de prueba, incluidas las pruebas unitarias, de integración y del sistema, tanto automatizadas como manuales.
La recopilación de datos de cobertura durante todo el ciclo de vida permite obtener métricas de calidad y cobertura más precisas, al tiempo que permite descubrir partes de la aplicación que no se han probado o que no se han probado lo suficiente. Según el nivel de integridad de seguridad (ASIL en ISO 26262), la profundidad y la integridad de la cobertura del código variarán.
La cobertura de la aplicación también puede ayudar a las organizaciones a centrar sus esfuerzos en las pruebas cuando las limitaciones de tiempo limitan su capacidad para ejecutar el conjunto completo de pruebas de regresión manuales. La captura de datos de cobertura del sistema en ejecución en su hardware de destino durante la integración y las pruebas del sistema completa la cobertura del código de las pruebas unitarias.
Beneficios de la cobertura de código agregado
Los datos de cobertura capturados se aprovechan como parte del proceso de integración continua (CI), así como del flujo de trabajo del evaluador. Parasoft DTP realiza análisis avanzados sobre la cobertura del código de todas las pruebas, los cambios en el código fuente, los resultados de análisis estáticos y los resultados de las pruebas. Los resultados ayudan a identificar código no probado o poco probado y otras áreas de alto riesgo en el software.
Analizar el código, ejecutar pruebas, hacer un seguimiento de la cobertura y reportar los datos en un tablero o gráfico es un primer paso útil para evaluar el riesgo, pero los equipos aún deben dedicar tiempo y recursos importantes a leer las hojas de té y esperar haber interpretado los datos correctamente.
Para comprender los riesgos potenciales de la aplicación se requieren procesos de análisis avanzados que fusionen y correlacionen los datos. Esto proporciona una mayor visibilidad de la cobertura real del código y ayuda a identificar brechas en las pruebas y pruebas superpuestas. Por ejemplo, ¿cuál es la cobertura real de la aplicación que se está probando cuando las herramientas informan valores de cobertura diferentes para las pruebas unitarias, las pruebas funcionales automatizadas y las pruebas manuales?
Los porcentajes no se pueden sumar simplemente porque las pruebas se superponen. Este es un paso fundamental para comprender el nivel de riesgo asociado con la aplicación en desarrollo.
Automatización del cumplimiento de estándares Reduce los costes y la complejidad automatizando los procesos más repetitivos y tediosos. Las herramientas pueden realizar un seguimiento del historial del proyecto y relacionar los resultados con los requisitos, los componentes del software, las pruebas y las desviaciones registradas.
Mejore sus pruebas de software con las soluciones de Parasoft.
Explora los capítulos
- Introducción "
- 1. Descripción general »
- 2. Análisis estático »
- 3. MISRA »
- 4. AUTOSAR C++ 14 »
- 5. SEI/CERTIFICACIÓN »
- 6. CWE »
- 7. Pruebas unitarias »
- 8. Pruebas de regresión »
- 9. Pruebas de integración de software »
- 10. Pruebas de sistemas de software »
- 11. Cobertura del código estructural »
- 12. Matriz de trazabilidad de requisitos »
- 13. Calificación de herramientas »
- 14. Informes y análisis »