Contenuto principale

La traduzione di questa pagina non è aggiornata. Fai clic qui per vedere l'ultima versione in inglese.

Creazione di un test harness

Un test harness è un modello che isola il componente sottoposto a test con input, output e blocchi di verifica configurati per gli scenari di test. È possibile creare un test harness per un componente del modello o per un modello completo. Un test harness offre un ambiente di test separato per un modello o un componente del modello. Ad esempio:

  • È possibile eseguire il test unitario di un sottosistema isolandolo dal resto del modello.

  • È possibile creare uno scenario di test a loop chiuso per un controller aggiungendo un modello di impianto al test harness.

  • È possibile mantenere il modello principale privo di blocchi di verifica non necessari inserendo i blocchi Model Verification e Test Assessment nel test harness.

Per assegnare un test harness a un caso di test, selezionare Test Harness nella sezione System Under Test del Test Manager.

È possibile salvare l'harness con il modello oppure in un file esterno. Se il modello è sottoposto a gestione delle modifiche, valutare la possibilità di salvare il test harness in un file esterno. L'harness funziona allo stesso modo sia che sia interno sia che sia esterno al modello. Per maggiori informazioni, vedere Manage Test Harnesses e Synchronize Changes Between Test Harness and Model.

Creazione dell'harness

In questo esempio, si crea un harness direttamente da un modello. L'harness verifica il sottosistema shift_logic del modello sltestCarRootInport.

  1. Aprire il modello sltestCarRootInport.

    openExample("sltestCarRootInport.slx")
  2. Fare clic con il tasto destro del mouse sul sottosistema shift_logic. Dal menu contestuale, selezionare Test Harness > Create for 'shift_logic'.

  3. Nella finestra di dialogo Create Test Harness (Crea test harness), specificare gli input, gli output e le altre opzioni:

    1. Utilizzare i blocchi Constant per fornire i segnali di input. In Sources and Sinks, impostare la sorgente su Constant e la destinazione su Scope.

    2. Lasciare le altre opzioni con le impostazioni predefinite. Per impostazione predefinita:

      • L'harness viene salvato con il file del modello.

      • L'harness si sincronizza con il modello all'apertura, ossia le modifiche apportate al modello vengono aggiornate nell'harness.

  4. Fare clic su OK per creare il test harness.

Test harness showing the throttle and speed inputs connected to a routing subsystem. The subsystem connects to the shift logic block, and the block connects to another routing subsystem, which then connects to the scope.

Al centro dell'harness è presente una copia del sottosistema shift_logic. Il sottosistema shift_logic è il componente sottoposto a test. I due sottosistemi verticali contengono le specifiche dei segnali e il routing.

I nomi dei segnali utilizzati nel componente sottoposto a test si propagano dal modello al test harness. Per gli harness dei sottosistemi, alcuni nomi dei segnali propagati potrebbero essere visibili solo dopo aver compilato l'harness. Per gli harness del diagramma del blocco, i nomi dei segnali vengono propagati anche se non si seleziona Show propagated signals nella finestra di dialogo Signal Properties (Proprietà del segnale).

È inoltre possibile creare un harness o più harness contemporaneamente utilizzando la funzione sltest.harness.create, la funzione sltest.testmanager.createTestForComponent, o la procedura guidata Create Test for Model Component (Crea test per il componente del modello), disponibile nel Test Manager. Per informazioni sulla procedura guidata, vedere Generate Tests and Test Harnesses for a Model or Components.

Per informazioni sull'architettura del test harness, vedere Test Harness Construction for Specific Model Elements. Per informazioni sulla personalizzazione delle impostazioni predefinite dell'harness quando si crea un nuovo harness, vedere Customize Test Harness Creation Default Property Values.

Simulazione del test harness

Assegnare valori ai blocchi Constant per testare il componente:

  1. Modificare il valore del blocco Speed in 50.

  2. Modificare il valore del blocco Throttle in 30.

  3. Fare clic su Run (Esegui) nella scheda Simulation (Simulazione) per simulare l'harness.

  4. Aprire lo scope e osservare il risultato. Il controller del cambio seleziona la terza marcia.

    Output showing very short amounts of time in first and second gear and a significant amount of time in third gear.

Esecuzione dei test utilizzando Test Manager

Nel caso precedente, sono stati forniti input di test con i blocchi Constant. È anche possibile utilizzare input di test da file di dati esterni.

  1. Creare un test harness che utilizza sorgenti Inport.

  2. Creare un caso di test che utilizza il test harness come System Under Test.

  3. Mappare gli input esterni al caso di test.

L'utilizzo di un caso di test nel Test Manager consente di iterare con diversi vettori di test, aggiungere casi di test, eseguire batch di casi di test e organizzare i risultati. Questo esempio mostra come utilizzare i dati esterni con un test harness e simulare dal Test Manager.

  1. Per aprire Test Manager, nella scheda Apps, in Model Verification, Validation and Test (Verifica del modello, validazione e test), fare clic su Simulink Test. Quindi, nella scheda Tests, fare clic su Simulink Test Manager.

  2. Selezionare New > Test File dalla barra degli strumenti di Test Manager.

  3. Assegnare un nome al file ShiftLogicTest.

  4. Selezionare New Test Case 1. Nella sezione System Under Test, fare clic su Use current model .

  5. Per Test Harness, selezionare ShiftLogic_InportHarness dall'elenco a discesa. Il test harness è già presente nel modello.

  6. Nella sezione Inputs, fare clic su Create. Assegnare un nome al file di input dei dati shift_logic_input e selezionare il formato file MAT.

  7. In Signal Editor (Editor dei segnali), inserire i valori per gli input:

    1. Selezionare il segnale speed e inserire 50 per i tempi 0 e 30. Premere INVIO per aggiornare il grafico.

    2. Selezionare il segnale throttle e inserire 30 per i tempi 0 e 30. Premere INVIO per aggiornare il grafico.

      Speed plot showing constant value of 50 and throttle plot showing constant value of 30.

    3. Fare clic su Save nella barra degli strumenti di Signal Editor (Editor dei segnali).

  8. Selezionare i dati di output da acquisire.

    1. Nella sezione Simulation Outputs del Test Manager, fare clic su Add.

    2. Nel diagramma del blocco del test harness, selezionare la linea del segnale gear. Selezionare il segnale nella finestra di dialogo Connect.

    3. Fare clic su Done per aggiungere il segnale agli output del caso di test.

  9. Fare clic su Run nella barra degli strumenti di Test Manager.

  10. Espandere i risultati ed evidenziare l'output del segnale del cambio. Il grafico mostra che il controller seleziona la terza marcia.

    Plot of the gear output from the controller

Vedi anche

Argomenti