国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用Simulink Test進行單元測試

這篇具有很好參考價值的文章主要介紹了使用Simulink Test進行單元測試。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

本文摘要:主要介紹如何利用Simulink Test工具箱,對模型進行單元測試。內容包括,如何創(chuàng)建Test Harness模型,如何自動生成excel格式的測試用例模板來創(chuàng)建測試用例,如何手動填寫excel格式的測試用例模板來手動創(chuàng)建測試用例。

  • 單元測試的目的

創(chuàng)建完模型后,我們需要驗證模型的行為,即仿真結果,是否跟我們預期的一致,這樣才能保證由模型生成的代碼在嵌入式系統(tǒng)中執(zhí)行得到結果跟我們預期的一致。單元測試主要是以模型或者模型內的子系統(tǒng)為單位進行測試。

雖然單元測試不能發(fā)現所有的問題,比如實際系統(tǒng)中的接口信號跟我們預期的不符,或者一些性能方面的需求。但是單元測試個人感覺還是必須的,測試用例設計的越全面,即把自己能想到的所有情況都測試一遍,后續(xù)在實車上出現非預期的情況就越少。

并且在模型單元測試中找問題會比在后續(xù)的集成測試,以及實車測試中找問題容易的多,所以盡量能在單元測試中發(fā)現的不能就不應該流出到后續(xù)的開發(fā)流程中。

做好單元測試會極大的提高開發(fā)效率。

現在Matlab的Simulink Test工具箱做的也越來越完善,只需要簡單幾步就可以創(chuàng)建出測試環(huán)境,方便的修改測試用例,結果的可視化和報告功能也做得很好了,下面就具體介紹一下用法。

  • 創(chuàng)建Test Harness測試模型

Test Harness 模型可以理解為一個測試框架。由被測試模型,信號輸入和信號輸出組成。

如果一個模型不是很復雜的話,可以直接對一個模型整體創(chuàng)建一個Test Harness模型,進行測試。具體方法是在模型最外層的空白處,點擊鼠標右鍵,選擇Test Harness -> Create for Model…

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

如果模型很復雜的話,也可以對模型中的各個子系統(tǒng)分別創(chuàng)建Test Harness模型,然后分別單獨測試這些子系統(tǒng)。具體方法是選中想要測試的子系統(tǒng),點擊鼠標右鍵,選擇Test Harness -> Create for 'subsystem name'

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

點擊后,就會出現如下的配置界面

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

其中,{Name}是給出Test Harness模型的名稱
{Save test harness extern}如果不勾選 ,那么這個test harness模型就不會單獨的生成一個文件,而是保存在原模型里面
{Save test harness extern}如果勾選,那么這個test harness模型就以一個單獨的文件保存

Test Harness模型的可以選擇的輸入輸出如下:

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

其中Harness模型的輸入,可以選擇為普通的Inport,Signal Builder,Signal Editor,From Workspace,From File,Test Sequence等
Harness模型的輸出,可以選擇為普通的Outport,Scope,To Workspace,To File,Terminator等
實際可以根據自己的習慣和需求進行選擇。
下圖是輸入為Inport,輸出為Outport的Test Harness模型,本篇文章主要介紹針對這種類型的Test Harness模型進行單元測試。這種模型的輸入信號以及期望的輸出信號可以通過excel的測試用例模板來給出。

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

其中,Signal spec and routing 里的內容如下,會按照原模型的設置,將所有的輸入信號的數據類型和采樣時間做一個轉換。

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

這樣一個Test Harness模型就創(chuàng)建完了,接下來就準備對這個模型做測試。

  • 自動創(chuàng)建excel格式的測試用例模板

首先打開Simulink Test Manager,可以在模型菜單的APPS里面搜索Simulink Test

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

然后點擊“Simulink Test Manager”

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

或者直接在窗口輸入命令:
sltest.testmanager.view

就會打開Test Manager的窗口

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

接下來用AUTO CREATE功能,新建一個Test File,并且自動生成測試用例的模板。點擊New -> Test File from Spreadsheet

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

然后會跳出如下界面,選擇“Create a test template file for specifying data”

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

點擊Next后跳出如下的界面,在Model中選擇要被測試的模型,Harness中選擇該模型中創(chuàng)建的需要被測試的Test Harness模型

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

然后會跳出如下界面,勾選想要在excel中想要包含的項目

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

Inputs:模型最外層的輸入。這個必須要選的,可以在excel表中編輯輸入的值
Parameters:模型中的參數。如果測試時不需要改變參數值的話,可以不勾選。
這邊推薦是弄清楚Parameters在excel頁中設置的格式后,這邊也都不用勾選了,如果需要修改參數值的話,按照格式,手動添加想要修改的參數值
Comparison signals:信號線上logged的信號。這個必須勾選,并且需要把希望被測試的信號對應的信號線設置為logged。

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

Include all attributes in the spreadsheet:信號的一些參數設置,比如插值方式,絕對允許誤差等,推薦勾選上。

下一步是設置測試用例的個數和測試用例的基本名稱

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

比如按照上面的設置,就會在測試用例的excel文件中,生成10個sheet,每一個sheet的名字為我們指定的名稱+序號

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

最后,指定Test Manager的測試文件名和測試用例的excel文件名和存儲位置。

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

這樣就會自動生成Test Manager的測試文件和測試用例的excel文件。
Test Manager的測試文件打開后,如下圖。

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

Test Suite:每一個測試文件中,都可以定義若干個Test Suite,可以把同一類型或同一功能的測試用例放到一個Test Suite中
Test Case:每一個Test Suite中,可以定義若干個Test Case,Test Case中規(guī)定了測試詳細的執(zhí)行信息。實際測試執(zhí)行的時候也針對每一個Test Case進行測試的
Create Test Case from External File:測試用例的具體信息從excel模板中提取,這篇文章重點介紹以這種形式來創(chuàng)建測試用例
小鎖標記:表示這些設置是通過excel文件中的設置固定的,無法在該頁面進行修改,只能通過excel文件進行修改。
*標記:提示這些設置是有過修改

下面詳細介紹測試用例的每一項設置的內容:
TAGS:可以給一個標簽名,比如按照功能,測試類型等,方便以后批量查找測試用例
DESCRIPTION:可以給描述測試用例的測試步驟,方法等,方便理解
REQUIREMENTS:可以和需求關聯(lián)。Matlab現在有“Simulink Requirements”這個Toolbox,可以在里面寫需求文檔,將需求和模型,以及對應的測試用例關聯(lián)起來,以滿足A-ASPICE或者ISO26262所規(guī)定的軟件開發(fā)流程中的可追溯性的要求。
SYSTEM UNDER TEST:里面設置了要被測試的模型,或者針對模型中所創(chuàng)建的某一個Test Harness模型進行測試。
另外,如果有需要的話,這邊也可以在進行單元測試時,覆蓋掉原模型的設置,比如常用的一個就是仿真時間,可以根據每個測試用例輸入數據的實際結束時間,覆蓋掉原模型的仿真結束時間

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

PARAMETER OVERRIDES:這里如果是根據excel模板生成的測試用例的話,是鎖定不能修改的,里面列出了某個測試用例中,需要改變的參數

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

CALLBACKS:里面分為3個不同時刻的,運行我們想要的腳本。
其中PER-LOAD是在讀取模型之前,POST-LOAD是在讀取完模型之后,CLEANUP是在測試仿真完成之后。
一種比較常見的用法是,在PER-LOAD中讀取測試模型的數據詞典里數據,在CLEANUP中清除這次測試的所有數據。

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

INPUTS:定義測試的輸入信號,這里如果是根據excel模板生成的測試用例的話,是鎖定不能修改的。
另外這邊有兩個選項可以勾選,如果勾選“Include input data in test result”的話,在最后的結果中,也會顯示輸入信號。
如果勾選“Stop simulation at last time point”的話,仿真測試到最后一個輸入點的時候就會停止。

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

SIMULATION OUTPUTS:可以在里面再選取模型中l(wèi)ogged的信號作為觀測量
CONFIGURATION SETTINGS OVERRIDES:可以在仿真測試的時候對原模型的設置進行覆蓋
BASELINE CRITERIA:里面設置了期望值,以及比較仿真測試結果和期望值的一些參數。這里如果是根據excel模板生成的測試用例的話,是鎖定不能修改的。但可以點擊Edit在excel文件中修改。
對比數據時,可以設置絕對誤差,相對誤差,時序領先誤差和時序滯后誤差

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

這四個參數可以在excel中,對應變量的下方設置,具體格式和參數名稱如下

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

ITERATIONS:迭代測試。這里如果是根據excel模板生成的測試用例的話,是鎖定不能修改的。會根據測試用例數自動生成,表示這個測試會根據不同的配置重復進行

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

COVERAGE SETTINGS:統(tǒng)計覆蓋度的設置。如果需要統(tǒng)計模型的覆蓋度的話,就勾選“Record coverage for referenced models”和“Record coverage for system under test”

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

COVERAGE METRICS 的設置要在最外面的工程中設置,一般選擇Decision,Condition和MCDC這三個覆蓋度就夠應付各種檢查了。

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

點擊Run,就會執(zhí)行測試

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

測試的結果會在Result and Artifacts中顯示。如果仿真結果和預期符合就是綠色的勾勾,否則是紅色的叉叉
Baseline Criteria Result里顯示的就是我們給定的信號期望值與實際值之間的比較。
上面的圖是把仿真結果和期望結果放在一張圖上顯示出來,下面的圖是兩者之差和允許誤差范圍
External Inputs里顯示的是輸入信號的值。(在{INPUTS}里勾選了Include input data in test result才會有)
Sim Output里顯示的是模型中l(wèi)ogged信號的值

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

另外如果設置了搜集覆蓋度,那么還可以看到針對被測模型,所有測試用例累積的覆蓋度

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

手動創(chuàng)建excel測試用例模板

了解了Test Manager用的excel測試模板的格式后,有時候手動創(chuàng)建測試模板會更方便一些。被測對象有多個測試用例的話,可以寫多個excel文件,也可以在一個excel文件中的多個sheet上寫。

比如對于下圖的Test Harness模型,有7個輸入和兩個輸出,那我們就要給7個輸入賦值,以及給出對應時刻的輸出的值

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

首先定義輸入信號,時間序列{time}定義必須寫在最前面,然后在每一列跟著輸入信號的名稱。
對于輸入信號還推薦定義輸入信號的數據類型,用Type:<數據類型>來定義。
另外為了區(qū)分信號是輸入還是輸入,需要在輸入信號最開始的一列定義Source:Input

對于輸出信號,也是一樣,首先是時間序列{time},然后在后面的列跟著輸出信號的名稱。
輸出信號也要定義數據類型,以及定義該信號為輸出Source:Output
對于輸出信號還可以定義允許誤差,比較常用的是相對誤差和絕對誤差。一般對于浮點類型的數據,需要給一個相對誤差,因為浮點數沒法比較完全相等
對于輸出信號,還需要指定該信號在模型中的位置,是通過BlockPath加PortIndex來確定的。
比如對于上圖的兩個輸出信號,不但要指定信號名,還要指定連接信號線的模塊{BlockPath}和該模塊對應的端口號{PortIndex}(如果端口號是1的話可以忽略不填)
還可以指定信號的插值方式{Interp},如果時間序列不是最小步長的話,插值方式有兩種,一個是保持上一次時刻的值“zoh”和線性插值”linear“

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

創(chuàng)建好測試用例的excel模板后,就可以手動創(chuàng)建一個以填寫好的excel模板,在Test Manager中創(chuàng)建Test Case。
點擊New -> Test File,然后給測試文件起一個名字

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

在{SYSTEM UNDER TEST}下面選擇要被測試的模型以及模型內的Harness模型,然后選中“Create Test Case from External File”,選擇之前創(chuàng)建的excel測試用例文件。系統(tǒng)就會把在excel模板中填寫的輸入和輸出的信息分別在{INPUTS}和{BASELINE CRITERIA}中自動創(chuàng)建好

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

最后再修改一些其他想要修改的設置,就能進行測試了。

最后:?下方這份完整的軟件測試視頻學習教程已經整理上傳完成,朋友們如果需要可以自行免費領取【保證100%免費】

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展

?這些資料,對于【軟件測試】的朋友來說應該是最全面最完整的備戰(zhàn)倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!

simulink生成測試用例,程序人生,程序員,自動化測試,單元測試,測試用例,自動化測試,程序人生,職場和發(fā)展文章來源地址http://www.zghlxwxcb.cn/news/detail-567840.html

到了這里,關于使用Simulink Test進行單元測試的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • MATLAB simulink MIL SIL單元測試,模型在環(huán)測試,軟件在環(huán)測試,測試步驟文檔

    MATLAB simulink MIL SIL單元測試,模型在環(huán)測試,軟件在環(huán)測試,測試步驟文檔

    MATLAB simulink MIL SIL單元測試,模型在環(huán)測試,軟件在環(huán)測試,測試步驟文檔,包含期望輸出和實際輸出的比較,輸出測試報告pass或fail狀態(tài)。 ID:29333 640313736484 卡路卡路里

    2024年02月11日
    瀏覽(25)
  • [C++] 基礎教程 - 如何使用google test進行單元測試

    [C++] 基礎教程 - 如何使用google test進行單元測試

    https://download.csdn.net/download/u011775793/88601877 單元測試是一種軟件測試方法,用于測試代碼中的最小可測試單元。在軟件開發(fā)中,我們通常將代碼分解為多個模塊或類,每個模塊或類都有自己的功能和行為。單元測試的目的是確保每個模塊或類都能正常工作,不會影響其他模塊或

    2024年02月04日
    瀏覽(25)
  • 使用testMe自動生成單元測試用例

    使用testMe自動生成單元測試用例

    公司對于系統(tǒng)單元測試覆蓋率有要求,需要達到50%或80%以上才可以,但是對于之前的老項目或者是前期趕進度未添加單元測試用例的項目來說,手動添加單元測試耗時又費力,這時候我們就需要一款能夠提高效率的一款插件來幫助我們提高單元測試覆蓋率,經過對比temstMe、

    2024年02月07日
    瀏覽(28)
  • Maven-使用maven mvn命令進行單元測試、指定測試某個類、mvn test

    Maven-使用maven mvn命令進行單元測試、指定測試某個類、mvn test

    添加測試插件 運行mvn test命令

    2024年02月05日
    瀏覽(19)
  • Spring Test中使用MockMvc進行上傳文件單元測試時,報NullPointerException

    問題 : MockMvc peform在集成測試中返回nullPointerException 原因 : springboot-2.x版本以上,當你添加依賴spring_boot_starter_test后,可以在內部看到自帶了jupiter測試核心模塊,也就是 junit5,junit5(jupiter測試引擎)不再支持junit4(vintage測試引擎),在使用時自然不再需要spring來提供了,

    2024年02月14日
    瀏覽(28)
  • 記錄使用vue-test-utils + jest 在uniapp中進行單元測試

    uniapp推薦了測試方案 @dcloudio/uni-automator ,屬于自動化測試,api提供的示例偏重于渲染組件,判斷當前渲染的組件是否和預期一致 vue推薦的測試方案 vue test utils ,屬于單元測試,可以搭配jest、mocha等單測運行器 我選了方案2??? 關于vue的組件測試,vue官方提到: 你的 Vue 應用

    2024年02月06日
    瀏覽(31)
  • MATLAB使用Simulink 進行建模與仿真方法 - Simulink基本操作與入門教程

    MATLAB使用Simulink 進行建模與仿真方法 - Simulink基本操作與入門教程

    Simulink 是 MATLAB 很強大的功能組件,廣泛用于系統(tǒng)建模、仿真和分析。下面分享給大家MATLAB使用Simulink 進行建模與仿真方法、步驟,希望能夠幫助大家。 電腦 MATLAB及Simulink 組件 MATLAB使用Simulink 進行建模與仿真 1 我們打開MATLAB軟件,然后在命令窗口中輸入simulink或點擊左上角的

    2024年02月05日
    瀏覽(296)
  • test-02-test case generate 測試用例生成 EvoSuite 介紹

    test-02-test case generate 測試用例生成 EvoSuite 介紹

    junit5 系列 基于 junit5 實現 junitperf 源碼分析 Auto generate mock data for java test.(便于 Java 測試自動生成對象信息) Junit performance rely on junit5 and jdk8+.(java 性能測試框架。性能測試。壓測。測試報告生成。) 自動生成測試用例 EvoSuite是一個自動生成Java類的JUnit測試套件的工具,其目標是

    2024年01月19日
    瀏覽(34)
  • 使用 Simulink 進行 STM32 編程

    使用 Simulink 進行 STM32 編程

    介紹 所需材料 步驟 1:在MATLAB中設置STM32-MAT軟件路徑 步驟 2:在STM32CubeMX中創(chuàng)建一個項目 步驟 3:配置時鐘和 GPIO 引腳 步驟 4:項目經理并生成代碼 步驟 5:在 Simulink 中創(chuàng)建模型 步驟 6:在模型中插入 STM32_Config 模塊 步驟 7:創(chuàng)建模型 步驟 8:編譯并生成代碼 步驟 9:將代碼

    2024年02月14日
    瀏覽(15)
  • test-04-test case generate 測試用例生成 tcases 快速開始

    test-04-test case generate 測試用例生成 tcases 快速開始

    junit5 系列 基于 junit5 實現 junitperf 源碼分析 Auto generate mock data for java test.(便于 Java 測試自動生成對象信息) Junit performance rely on junit5 and jdk8+.(java 性能測試框架。性能測試。壓測。測試報告生成。) 自動生成測試用例 關于本指南 本指南詳細解釋了Tcases的工作原理。在涉及示例

    2024年01月19日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包