- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用模组覆盖以验证设计需求
使用模組覆蓋以驗證設計需求
文/ Uttara Kumar, Nishaat Vasi,
MathWorks 公司
今天是一個大日子。你們團隊正準備要將設計好的系統部署在硬體上 ,進行下
一步的整合測試 ;然而,最後一刻卻出了個簍子:系統行為異常,它的速度閥值
和生產程式碼(production code)不符 。怎麼會這樣? 團隊明明已經完全遵照標
準驗證流程,進行了以下事項:
1. 檢視系統及軟體設計規格需求。
2. .在Simulink 下模擬演算法。
3. 使用功能測試(functional test)案例來驗證設計。
4. 已針對產生的程式碼進行驗證 ,來確認程式覆蓋率(code coverage)是足夠
的。
那麼,為什麼進行功能測試時無法預測出這種意料外的行為?更重要的,到底
要進行多少 「測試」才夠?
功能測試的正確性,或者換個說法 ,單獨驗證模型實現的輸入- 輸出行為 ,這
並不能保證設計的正確性。功能測試基本上從規格需求(requirements)衍生而
來,而這些需求可能本來就不完整、不正確、或過度狹隘 ,因此,想透過功能
驗證技術去偵錯變得非常困難,原因是需求本身就存在瑕疵。
而結構式的驗證方式,例如模組覆蓋率(model coverage) ,則可指出模型中未
執行或未使用的模擬路徑。藉由探測這些未測試過的路徑,你可以偵測出潛在
的設計錯誤,並且驗證規格需求。模型覆蓋量測對於必須符合DO 178C 、ISO
26262 、以及 IEC61508 標準的應用程式而言,是非常有用的。
本文將簡要說明,如何使用模型覆蓋分析去測試巡航控制器元件的工作流程。
本模型包含了一個PI 控制器,用以計算實際速度和目標速度差之油門輸出 (圖
1) 。
圖1. 巡航控制系統之控制器設計
設定測試工具
針對控制器,我們使用Simulink 驗證及有效性檢測模塊組 (Simulink
Verification and Validation™) 來建立一個訓練模型(harness model) (圖2) 。
圖2. 以Simulink 驗證及有效性檢測模塊組產生之訓練模型元件
在訓練模型裡的訊號產生器 (Signal Builder) 包含了描述我們想測試設計的輸
入情境的測試向量 。在訊號產生器中,雖然我們可以手動建立這些測試向量,
但我們想要重新使用之前我們用來測試功能正確性之規格需求的測試案例。為
了這麼做,我們簡單地拉出了包含這些測試案例的Excel 檔案,並把它們匯入
訊號產生器模塊中 (圖3) 。
圖3. 匯入現存測試資料至訊號產生器模塊(Signal Builder block)的介面。每個
匯入的訊號群組都代表一個獨特的測試案例。
分析模型覆蓋率
然而,這些已測試過設計功能正確性的測試範例 ,真的能完全的測試我們的設
計架構嗎?還有,這些測試範例能履行設計的邏輯路徑到什麼程度?
模型覆蓋分析能幫助我們回答這些問題。本文以巡航控制器為例,我們模擬了
待測設計 (DUT) ,而全部的測試範例都在訊號產生器模塊中執行。之後,我們
將針對各種覆蓋指標組合(coverage metrics) ,包含條件、決策以及修正條件/
決策覆蓋去分析模型。
在模擬的最後,Simulink 驗證及有效性檢測模塊組(Simulink Verification and
Validation™) 可產生詳細的覆蓋指標組合的 HTML 格式報告,內容包含了在待
測設計(DUT)中各種不同模型要素 。摘要區塊(Summary) 則能提供整體的覆
蓋指標組合 ,而詳細區塊(Details) 則包含了各個測試要素的覆蓋指標組合 。
透過報告,我們可以了解哪些設計邏輯路徑在模擬的可能組合中並沒有被測試
到(圖4) 。我們可以使用報告中的超連結去辨認模型中相關的區塊。
圖4. 模型覆蓋分析所產生之HTML 報告
作為報告的選項之一,我們可以檢視模型內的覆蓋結果。每個模型要素都以顏
色代碼標示其覆蓋狀況 。綠色代表現有測試已可完全覆蓋或測試 ,而紅色則代
表不完全的結構覆蓋。
在本次的案例中,我們可以清楚看到部分模型要素並未完全覆蓋 (圖5) 。因
此,描述功能正確性的功能覆蓋測試 ,並未完全測試到其設計。
圖5. 在模型上顯示模型覆蓋結果
我們有兩種
文档评论(0)