覆蓋度是用來表示一個測試用例對模型邏輯結構的所有路徑測試的完成程度,適用于對模型進行結構測試的測試用例。一個完整的模型結構測試用例應當對模型或狀態機內的每條路徑都有唯一的條件進行測試。并且不與其他路徑條件發生沖突。 覆蓋度的作用對象是模型的測試用例,不是模型對象本身。 一、Simulink自動生成測試用例。 針對被測試的模型編寫測試用例,使盡可能的包括所有的輸入情況,可以使用Design Verifier 自動生成測試用例,再根據自己的流程對用例進行修改。 自動生成之前,應將所有的輸入信號取值范圍、參數類型設置好,這樣生成的測試用例能更準確。 詳細見《基于模型的設計——MCU篇》第443頁-454頁 二、覆蓋度測試
模型覆蓋通過測量被測試模型被徹底測試的程度,幫助你驗證你的模型測試用例,模型覆蓋計算測試程序經過一個模型的模擬路徑次數多少,模型覆蓋是一定程度的說明一個測試案例如何徹底的測試一個模型和測試路徑百分率的測度。
模型的覆蓋分析以下類型的模型對象的執行情況,直接或間接地通過您的模型確定simulation 路徑: Simulink 塊 模型塊中引用的模型 Stateflow 的狀態和轉換 模擬運行期間,該工具記錄涵蓋對象的行為、狀態和轉換。 在仿真最終,該工具報告在多大程度上運行行駛過的隱藏仿真路徑通過模型的每個覆蓋對象。 Verification and Validation程序只能為一個模型采集覆蓋如果他的仿真模型設置正常。如果仿真模型設置為除正常外的所有模型,覆蓋將在仿真期間不被測量。 3.模型覆蓋的類型 1.序復雜性 序復雜性是模型結構復雜性的度量 ,為了計算對象的序復雜性,模型覆蓋用下面的公式:
N是對象表示的決策點數,On是第N個決策點的輸出數。 2.決策覆蓋(DC) 決策覆蓋分析模型中表示決策點的要素,比如開關模塊或者狀態流狀態,對于這些項,模型覆蓋確定模擬測試時實際通過這些路徑的百分率。 3.條件覆蓋(CC) 條件覆蓋分析組合邏輯(比如邏輯操作)和狀態轉移,條件覆蓋分析報告是否模型中的每個模塊被完全覆蓋了。 當收集模型覆蓋,可能達不到100%的條件覆蓋,比如如果確定短路邏輯模塊(一種處理方式),就不能達到100%的條件覆蓋。 4. 改進條件/決策覆蓋(MDCD) 改進的條件/決策覆蓋分析擴展了決策和條件覆蓋能力,它確定測試實驗測試邏輯模塊輸入和轉移條件獨立性的程度。 一個測試實驗達到模型的完全覆蓋,當改變模塊的一個獨立于其它輸入的輸入,引起了模塊的輸出改變。 一個測試實驗到到狀態流轉移的完全覆蓋,也就是每個轉移條件在一個條件觸發時,狀態至少轉移一次。 MCDC也不保證100%的決策覆蓋和條件覆蓋。 SIMULINK的一些模塊支持MCDC覆蓋,一些僅支持條件覆蓋,一些僅支持決策覆蓋。關于這更細致的MCDC,可以研究一下DO-178B標準。 5. 查詢表條件覆蓋 查詢表覆蓋用表實體的輸入、輸出、內插、外推信息來分析模塊,它記錄每個內插間隙被使用的頻率,要達到完全覆蓋,每個內插和外推間隙至少被執行一次。
信號范圍覆蓋是在模擬期間記錄模型中沒個模塊的最大最小值。 7. 信號寬度覆蓋 信號寬度覆蓋記錄可變寬度信號的最大最小值。
打開tools—》coverage setting 打開覆蓋設置選項卡
Coverage for this model 指示軟件手機和報告您在仿真過程中制定的模型覆蓋范圍。 Select subsystem 指定軟件收集和報告覆蓋數據的子系統。默認情況下,生成整個模型的覆蓋數據。 Coverage for referenced models 記錄和報告在仿真過程中的參考模型指定模型覆蓋范圍。 三、根據測試結果修改模型 自動生成測試用例后運行仿真,觀察被測試狀態機,當提示手動選擇路徑時,表示狀態機條件有沖突,根據實際情況修改。 |
|
來自: stevin_lib > 《MBD》