Logotipo para GIGAOM 365x70

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

Cumplimiento de software DO-178C para la industria aeroespacial y de defensa

Pruebas de regresión

Como parte de la mayoría de los procesos de desarrollo de software, se realizan pruebas de regresión después de realizar cambios en el software. Estas pruebas determinan si los nuevos cambios tuvieron un impacto en el funcionamiento existente del software.

La norma DO-178C no menciona explícitamente las pruebas de regresión, pero es una buena práctica de ingeniería y se emplea ampliamente en la industria aeroespacial para verificar la estabilidad y la corrección del software durante todo su ciclo de vida de desarrollo. Los requisitos relacionados con el proceso de integración de software y hardware implican la necesidad de mantener una verificación y validación actualizadas después de cualquier cambio.

Icono dentro de un círculo azul que muestra un contorno blanco de una lista de verificación de pautas.

Pruebas de integración de hardware y software basadas en requisitos, sección 6.4.3

Las pruebas de integración son un nivel de pruebas en DO-178C que verifica las interacciones entre diferentes unidades de software. Cuando se realizan cambios en los componentes o unidades de software, es necesario realizar pruebas de regresión para verificar que las modificaciones no hayan afectado negativamente al sistema integrado.

Icono dentro de un círculo azul que muestra un contorno blanco de una lista de verificación de pautas.

Proceso de Integración, Sección 5.4

Se centra en la integración de componentes de software y hace hincapié en que el proceso de integración debe planificarse y controlarse. La integración de unidades de software nuevas o modificadas requiere pruebas de regresión para garantizar que el comportamiento general del sistema siga siendo correcto y que no se hayan introducido efectos secundarios no deseados.

Icono dentro de un círculo azul que muestra un contorno blanco de una lista de verificación de pautas.

Resultados de la verificación del software, sección 11.14

Abarca la documentación y el registro de los resultados de la verificación, incluidos los resultados de las actividades de prueba. Si se realizan pruebas de regresión, los resultados deben documentarse para demostrar que los cambios no afectaron negativamente al sistema.

Las pruebas de regresión son necesarias, pero sólo indican que los cambios recientes en el código no han provocado que las pruebas fallen. No hay garantía de que estos cambios funcionen. Además, la naturaleza de los cambios que motivan la necesidad de realizar pruebas de regresión pueden ir más allá de la aplicación actual e incluir cambios en el hardware, el sistema operativo y el entorno operativo.

Pruebas de regresión de software en sistemas aerotransportados

En el desarrollo de software crítico para la seguridad, la validación es fundamental para demostrar la funcionalidad, la seguridad y la protección correctas. Las pruebas son necesarias por dos razones principales.

  1. Confirme cualquier cambio en la aplicación para garantizar su funcionalidad.
  2. Verificar que no haya impactos imprevistos en el resto del sistema.

Si un caso de prueba que antes se aprobaba pero ahora falla, se ha identificado una posible regresión. La falla podría deberse a una nueva funcionalidad, en la que puede ser necesario actualizar el caso de prueba para que tenga en cuenta los cambios en los valores de entrada y salida.

Las pruebas de regresión de sistemas integrados también incluyen la ejecución de los siguientes tipos de casos de prueba:

  • Unidad
  • Integración:
  • System
  • Performance
  • Estrés y más

De hecho, es necesario ejecutar todos los casos de prueba creados previamente para garantizar que no existan regresiones y que se construya una nueva versión de software confiable. Esto es fundamental porque cada nueva versión de sistema o subsistema de software se basa en ella. Si no se cuenta con una base sólida, todo puede derrumbarse.

Parasoft C/C++test admite la creación de líneas base de pruebas de regresión como una colección organizada de pruebas y verifica automáticamente todos los resultados. Estas pruebas se ejecutan automáticamente de forma periódica para verificar si las modificaciones del código cambian o interrumpen la funcionalidad capturada en las pruebas de regresión. Si se introduce algún cambio, estos casos de prueba no alertarán al equipo sobre el problema. Durante las pruebas posteriores, C/C++test informará las tareas si detecta cambios en el comportamiento capturado en la prueba inicial.

Cómo decidir qué se debe probar mediante regresión

El principal desafío de las pruebas de regresión es determinar qué partes de una aplicación se deben probar. Es común ejecutar todas las pruebas de regresión de manera predeterminada cuando hay dudas sobre el impacto que han tenido los cambios recientes en el código: el enfoque de todo o nada.

Fotografía que muestra la vista frontal de un pequeño avión comercial en una pista al amanecer con un señalero parado al frente guiándolo hacia dónde estacionarse.

Para grandes proyectos de software, esto se convierte en una tarea enorme y reduce la productividad del equipo. Esta incapacidad para centrar las pruebas obstaculiza muchos de los beneficios de los procesos iterativos y continuos, lo que puede verse exacerbado en el software integrado, donde los objetivos de las pruebas son un recurso limitado.

Aquí se requieren un par de tareas.

  • Identifique qué pruebas deben volver a ejecutarse.
  • Centre los esfuerzos de prueba (pruebas unitarias, pruebas funcionales automatizadas y pruebas manuales) en validar las características y el código relacionado que se ven afectados por los cambios más recientes.

Los desarrolladores y evaluadores pueden obtener una comprensión clara de los cambios en la base de código entre compilaciones utilizando el motor de inteligencia de procesos (PIE) dentro de Parasoft DTP (plataforma de pruebas de desarrollo) combinado con los motores de análisis de cobertura propietarios de Parasoft:

Con esta combinación, los equipos pueden mejorar la eficiencia y lograr la promesa de Agile. Esta forma de ejecución de pruebas inteligente se denomina análisis del impacto de las pruebas. A veces se la denomina prueba basada en cambios.

Comprender el impacto de los cambios de código en las pruebas con el análisis de impacto de las pruebas

Análisis de impacto de prueba Utiliza datos recopilados durante las ejecuciones de pruebas y los cambios en el código entre compilaciones para determinar qué archivos han cambiado y qué pruebas específicas han afectado a esos archivos. El motor de análisis de Parasoft puede:

  • Analizar la diferencia entre dos compilaciones.
  • Identifique el subconjunto de pruebas de regresión que deben ejecutarse.
  • Comprenda las dependencias de las unidades modificadas para determinar qué efecto dominó han tenido los cambios en otras unidades.

Parasoft Jtest y dotTEST brindan información sobre el impacto de los cambios de software. Cada solución recomienda dónde agregar pruebas y dónde se necesitan más pruebas de regresión.

Captura de pantalla de Parasoft DTP Change Based Testing: los archivos enumeran las áreas del código que se prueban y las que no.
Un ejemplo de informe de pruebas basado en cambios de Parasoft DTP que muestra áreas del código que se prueban y otras que no.
Pancarta azul oscuro con imagen de un hombre hablando con una mujer sosteniendo una tableta en la mano en una sala de servidores.
Imagen de un hombre y una mujer con una tableta en la mano conversando en una sala de servidores.

Mejore sus pruebas de software con las soluciones de Parasoft.