保證測試有效性的方法
除了提供嵌入式領域最好的測試工具之一外,我們還為汽車行業的客戶測試軟件產品(包括駕駛輔助功能、驅動組件、充電和電池系統的控制軟件)。
隨著時間的推移,我們也遇到了測試過程中的錯誤。為了避免過程錯誤,我們制定了各種策略和方法。始終以快速為客戶的開發模型提供高質量的報告為目標。
下面,我們將詳細解釋其中一種方法。它是由我們的測試工程師開發的,并在日常實踐中使用。
此方法的目的是確保測試用例在任何時候都實際測試鏈接到它的需求。
這里有一個簡單的例子來說明為什么這件事如此重要。
在用于控制車輛外燈的軟件中,當燈開關處于on位置時,外燈應始終打開。在最壞的情況下,這個需求只與從未包含條件“燈開關處于ON位置”的測試用例相關聯。如果這些測試用例成功地測試了另一個方面(例如,燈開關關閉,外部燈保持關閉),那么可以認為鏈接的需求已經被充分測試了。
![pYYBAGPp3EeALqTLAAB-tUq8qyE017.png](https://file.elecfans.com/web2/M00/90/DE/pYYBAGPp3EeALqTLAAB-tUq8qyE017.png)
錯誤的鏈接會以不同的方式出現:
- 測試人員在測試用例和需求之間創建了一個錯誤的鏈接。
- 隨著時間的推移,由于測試項的更改,現有鏈接將失去其意義
有一個簡單且可快速實現的解決方案可以解決這個問題。
在我們的方法中,如果每個測試用例沒有正確地測試鏈接的需求,那么它將被報告為“失敗”。由于錯誤鏈接導致的失敗在報告中有詳細說明。我們的方法本質上是基于分別定義測試數據和期望值的可能性。
在TPT中,測試項的預期結果(在這里我們也說測試預言)可以在Assesslet的幫助下描述。Assesslets可以同時用于幾個測試用例的評估。
該方法的實現分為5個步驟:
- 將需求導入TPT
- 根據單個需求創建1個Assesslet
- 創建檢查腳本
- 創建測試用例
- 測試用例與導入需求的鏈接.
步驟1:將需求導入到TPT
導入可以通過幾種方式完成。對于這種方法,只有需求在TPT中可用才是有意義的。
步驟2:為每個需求創建一個Assesslet
一個Assesslet的目的是在定義的條件下指定測試對象的預期行為。這個單一數據源的定義可以用于多個測試用例。
如何做到這一點?
在Assesslet文件夾中為每個需求創建一個新的腳本Assesslet,相應地命名并實現它。
一個Assesslet的實現包含以下元素:
- 定義條件或情況區別(通常來自需求)
- 定義每個條件的期望值(有些簡單,有些復雜)
- 添加一個注釋,說明哪個期望值涵蓋了哪個需求
對于上面的燈控制示例,這里是一個評估Assesslet的參考實現,它使用ID 2018檢查需求“如果燈開關是打開的,那么大燈應該立即打開”:
![poYBAGPp3EeAL5qcAAA1h_Ly8Q8225.png](https://file.elecfans.com/web2/M00/90/5B/poYBAGPp3EeAL5qcAAA1h_Ly8Q8225.png)
Assesslet檢查需求2018:條件“當燈開關位于位置1(3號線)”。我們的期望值記錄在第4行:TPT.CheckAlways()檢查大燈是否== true。使用REQUIREMENTS.checked(),附加到需求2018的屬性將被結果覆蓋(從第4行開始)。
其他請求的過程是相同的。
步驟3:創建檢查腳本
然后使用另一個Assesslet腳本檢查鏈接到測試用例的所有需求是否具有定義好的屬性。對于Assesslet,這是在第5行中使用REQUIREMENTS.checked()函數完成的。當調用這個函數時,默認值將被更改。
換句話說,對于每個測試用例,對于鏈接到該測試用例的每個需求,我們檢查默認值的屬性。如果存在默認值,則要么沒有測試Assesslet,要么是需求的測試Assesslet不正確。
下面是一個參考實現:
![poYBAGPp3EeASKGtAADTuUA3hOk109.png](https://file.elecfans.com/web2/M00/90/5B/poYBAGPp3EeASKGtAADTuUA3hOk109.png)
您需要將該腳本移動到報告部分。然后它將在Assesslet之后運行以檢查需求。
步驟4:創建測試用例
步驟5:將測試用例與導入的需求鏈接起來
需求與測試之間的鏈接或者測試與需求的鏈接,都可以通過拖拽來完成。選擇一些測試用例并將它們拖到需求上即可。
優點是什么?
這個過程的優點是報告中不正確的鏈接可以立即和容易地看到。在報告中,每個錯誤鏈接的測試用例都被標識為失敗的測試用例。
因此,該報告為用戶提供了一個關于是否為所有需求創建了相關測試用例的快速概述。與此同時,這提高了生產率,因為可以省略對完成度的分析。
在應用這種方法時必須考慮什么?
應該檢查Assesslet的正確性和與需求的一致性。只有當Assesslet是正確的,它們才有意義。這是測試過程中的實際工程工作。我們(目前)還不能從你們手中接過這個任務。
進一步的提示和建議:
在我們的一些項目中,我們沒有將腳本Assesslet直接鏈接到需求。然而,映射是通過命名約定完成的:每個“需求-測試”腳本Assesslet都有以下結構“Ass_”& 。雙向可追溯性的要求(例如來自ASPICE)在原則上得到了滿足,因為配對可以在任何時候確定。
總結
我們確保測試重要性的方法符合ASPICE和ISO26262的要求。
在它的應用中,它需要使用測試自動化的基本功能,例如用于刺激的測試數據的分離和測試對象預期行為的單獨定義。幾年來,我們一直在安全關鍵型汽車項目中成功地使用這種方法。
我們的工程師被直觀的程序所說服,不再想沒有它,因為費時的手工檢查鏈接正確性的工作可以省略。
編寫腳本和檢查Assesslets及需求的正確性的工作是可管理的,并且顯著低于諸如審查和演練之類的替代指標。
-
測試
+關注
關注
8文章
5403瀏覽量
127137 -
嵌入式
+關注
關注
5096文章
19192瀏覽量
308050
發布評論請先 登錄
相關推薦
?憶聯企業級測試驗證平臺介紹
Advantest CEO:先進芯片測試需求大增
【米爾-紫光PG2L100H國產FPGA開發板試用】串口通信功能測試
是德科技助力三星電子驗證FiRa 2.0安全測距測試用例
教學驗證丨BUCK電路仿真驗證
如何理解機器學習中的訓練集、驗證集和測試集
接口測試的測試點有哪些類型
功能測試主要做什么 功能測試包含哪些測試
功能測試和接口測試的區別
康謀分享 | aiSim5仿真場景重建感知置信度評估(三)
![康謀分享 | aiSim5仿真場景重建感知<b class='flag-5'>置信度</b>評估(三)](https://file1.elecfans.com/web2/M00/E2/26/wKgZomY7JtmAZHRuAAC4t2gOwHI724.png)
評論