Planificación de pruebas y estrategias
Puede utilizar Simulink® Test™ para probar modelos y código de manera funcional. Antes de crear una prueba, considere lo siguiente:
Identificar los objetivos de la prueba
Antes de crear la prueba, debe comprender los objetivos. Es posible que tenga uno o más de estos objetivos:
Pruebas de simulación
En los casos en los que la prueba solo requiere un modelo para simular sin errores o para realizar pruebas de regresión, puede ejecutar una prueba de simulación. Las pruebas de simulación son útiles si el modelo aún se está desarrollando o si tiene un modelo de prueba existente que contiene entradas y evaluaciones, y registra datos relevantes. Para ver un ejemplo, consulte Test a Simulation for Run-Time Errors.
Verificación de requisitos
Si ha instalado Requirements Toolbox™, puede evaluar si un modelo se comporta de acuerdo con los requisitos enlazando uno o más casos de prueba a requisitos creados en Requirements Toolbox. Puede verificar si el modelo cumple los requisitos:
Creando instrucciones verify o scripts de criterios personalizados en el modelo o arnés de pruebas.
Incluyendo Model Verification Blocks en el modelo o arnés de pruebas.
Capturando la salida de la simulación en el caso de prueba y comparando la salida de la simulación con los datos de referencia.
Para ver un ejemplo que utiliza instrucciones verify, consulte Test Downshift Points of a Transmission Controller.
Comparación de datos
Puede comparar los resultados de la simulación con datos de referencia o con otra simulación. También puede comparar resultados entre diferentes versiones de MATLAB®.
En una prueba de referencia, puede establecer en primer lugar los datos de referencia, que son las salidas esperadas. Puede definir los datos de referencia manualmente, importar datos de referencia de un archivo Excel® o MAT o capturar datos de referencia de una simulación. Para obtener más información, consulte Baseline Testing. Para comparar los resultados de las pruebas de varios modelos, puede comparar los resultados de la prueba de cada modelo con los mismos datos de referencia.
En una prueba de equivalencia, puede comparar dos simulaciones para comprobar si son equivalentes. Por ejemplo, puede comparar resultados de dos solvers o comparar resultados de una simulación en modo normal con código generado en modo software-in-the-loop (SIL), processor-in-the loop (PIL) o hardware-in-the-loop (HIL) en tiempo real. Puede explorar el impacto de valores de parámetro o conjuntos de datos de calibración ejecutando pruebas de equivalencia. Para ver un ejemplo de pruebas de equivalencia, consulte Back-to-Back Equivalence Testing. No se pueden comparar más de dos modelos en un único caso de prueba de equivalencia.
En una prueba de versiones múltiples se ejecutan pruebas en más de una versión de MATLAB instalada. Utilice las pruebas de múltiples versiones para verificar que las pruebas se superan y que se producen los mismos resultados en diferentes versiones.
Pruebas en SIL y PIL
Puede verificar la salida del código generado ejecutando simulaciones consecutivas en modo normal y en modo SIL o PIL. Ejecutar pruebas consecutivas en modo normal y en modo SIL o PIL es una forma de realizar pruebas de equivalencia. La misma prueba consecutiva puede ejecutar varios escenarios de prueba iterando en distintos vectores de prueba definidos en un archivo MAT o Excel. Puede aplicar tolerancias a los resultados para permitir diferencias de valor y tiempo técnicamente aceptables entre el modelo y el código generado. Las tolerancias también se pueden aplicar a código que se ejecuta en hardware en tiempo real. No puede utilizar el modo SIL o PIL en modelos de subsistemas.
Pruebas en tiempo real
Con Simulink Real-Time™, puede incluir los efectos de plantas físicas, señales y hardware integrado ejecutando pruebas en modo HIL (hardware-in-the-loop) en un equipo objetivo en tiempo real. La ejecución de una prueba de referencia en tiempo real permite comparar resultados con datos correctos conocidos. También puede ejecutar una prueba consecutiva entre un modelo, SIL o PIL, y una simulación en tiempo real.
Cobertura
Con Simulink Coverage™, puede recopilar datos de cobertura para ayudar a cuantificar en qué medida se ha probado el modelo o el código. Cuando se configura la recopilación de datos de cobertura para el archivo de prueba, los resultados de prueba incluyen la cobertura del sistema que se somete a prueba y, opcionalmente, los modelos referenciados. Puede especificar las métricas de cobertura que desea que devuelva. La cobertura se admite en bloques Model Reference, bloques Atomic Subsystem y modelos de nivel superior si están configurados para software-in-the-loop (SIL) o processor-in-the-loop (PIL). La cobertura no se admite con bloques S-Function en SIL o PIL.
Si los resultados muestran una cobertura incompleta, puede incrementar la cobertura:
Añadiendo casos de prueba manualmente al archivo de prueba.
Generando casos de prueba para incrementar la cobertura con Simulink Design Verifier™.
En cualquier caso, puede enlazar los casos de prueba nuevos a los requisitos, lo que es obligatorio para determinadas certificaciones.
Probar un modelo completo o componentes específicos
Puede probar un modelo completo o un componente de un modelo. Una forma de realizar pruebas es realizar en primer lugar una prueba unitaria de un componente y, después, aumentar el número de componentes que se están probando para realizar la integración y pruebas en nivel de sistema. Utilizar este esquema de pruebas permite identificar más fácilmente y depurar problemas de casos de prueba y diseño de modelos. Si desea obtener una cobertura agregada, pruebe el modelo completo.
Usar un arnés de pruebas
Un arnés de pruebas contiene una copia del componente que se está probando o, para probar un modelo completo, una referencia al modelo. Los arneses también contienen las entradas y salidas utilizadas para las pruebas. Utilizar un arnés de pruebas aísla el modelo o el componente que se está probando del modelo principal, lo que mantiene el modelo principal limpio y sin sobrecargas.
Puede guardar el arnés internamente con el archivo del modelo o en un archivo externo separado del modelo. Guardar el arnés internamente simplifica el intercambio del modelo y las pruebas ya que se generan menos artefactos, y permite depurar problemas de pruebas más fácilmente. Guardar el arnés externamente permite reutilizar y compartir únicamente el arnés, y separar de manera clara el diseño de los artefactos de prueba. El funcionamiento del arnés de pruebas es el mismo tanto si es interno o externo con respecto al modelo. Para obtener más información sobre arneses de pruebas, consulte Test Harness and Model Relationship y Crear un arnés de pruebas.
La figura muestra un ejemplo de un arnés de pruebas.

El componente que se somete a prueba es el bloque shift_logic, que se ha copiado del modelo principal durante la creación del arnés. La copia del bloque shift_logic está enlazada al modelo principal. Las entradas son bloques Inport y la salida es un bloque Outport. Los subsistemas verticales contienen bloques de especificación de señales y enrutamiento que conectan la interfaz del componente con las entradas y salidas.
Determinar las entradas y salidas
Considere qué señales de entrada y tolerancias de señal desea utilizar para probar el modelo y dónde conseguirlas. Puede añadir un bloque Signal Editor al arnés de pruebas para definir las señales de entrada. De forma alternativa, puede definir y utilizar entradas de un archivo Microsoft® Excel o MAT, o un bloque Test Sequence. Si dispone de Simulink Design Verifier instalado, puede generar entradas de prueba de manera automática.
Para la salida de la prueba, considere si desea que los detalles de la prueba y los datos de los resultados de la prueba se guarden en un informe para archivarlo o distribuirlo. También puede utilizar salidas como entradas para bloques Test Assessment para evaluar y verificar los resultados de la prueba. Para las pruebas de referencia, utilice las salidas para comparar los resultados reales con los resultados esperados.
Optimizar el tiempo de ejecución de pruebas
Entre las formas que permiten optimizar el tiempo de ejecución de las pruebas se incluyen usar iteraciones, realizar pruebas en paralelo y ejecutar un subconjunto de casos de prueba.
Cuando se diseña una prueba, se puede decidir si se desean varias pruebas o iteraciones de la misma prueba. Una iteración es una variación de un caso de prueba. Utilice iteraciones para distintos conjuntos de datos de entrada, conjuntos de parámetros, conjuntos de configuración, escenarios de prueba, datos de referencia y modos de simulación en iteraciones. Una ventaja de utilizar iteraciones es que puede ejecutar pruebas utilizando el reinicio rápido, que evita la necesidad de volver a compilar el modelo para cada iteración y, de este modo, se reduce el tiempo de simulación.
Por ejemplo, si tiene varios conjuntos de datos de entrada, puede configurar una iteración del caso de prueba para cada archivo de entrada externo. Otra forma de anular parámetros es utilizar barridos de parámetros con índices, que permiten realizar iteraciones sobre muchos valores. Utilice casos de prueba separados si necesita un control independiente de la configuración o si cada prueba está relacionada con un requisito distinto. Para obtener más información sobre iteraciones, consulte Test Iterations.
Si dispone de Parallel Computing Toolbox™, puede ejecutar pruebas en paralelo en el equipo o cluster locales. Si dispone de MATLAB Parallel Server™, puede ejecutar pruebas en paralelo en un cluster remoto. Realizar pruebas en paralelo es útil cuando se tiene un gran número de casos de prueba o los casos de prueba tardan mucho tiempo en ejecutarse. Consulte Run Tests Using Parallel Execution.
Otra forma de optimizar el tiempo de las pruebas es ejecutar un subconjunto de casos de prueba etiquetando las pruebas que se desea ejecutar.
Para obtener más información sobre cómo mejorar y optimizar la simulación de modelos, consulte la sección Optimizar el rendimiento dentro de Simulación en la documentación de Simulink.
Utilizar la interfaz programática o la interfaz gráfica
Para crear y ejecutar pruebas, Simulink Test proporciona Test Manager, que es una herramienta interactiva, y comandos y funciones de API que se pueden usar en scripts de prueba y en la línea de comandos. Con Test Manager, puede gestionar muchas pruebas, y capturar y gestionar resultados de manera sistemática. Si es necesario definir nuevas evaluaciones de prueba, utilice Test Manager, ya que esta funcionalidad no está disponible en la API. Si está trabajando en un entorno de integración continua, utilice la API. De lo contrario, puede utilizar la opción que prefiera.