


摘要:硬件在環測試是整車開發過程中不可缺少的一環,是在交付用戶前對整車質量的檢查和保證。由于硬件在環測試用例的數量上千條,設計測試用例非常耗時。為了減少測試用例設計時間,提高硬件在環測試效率,本文提出一種基于知識圖譜的硬件在環測試用例復用方法,通過使用已有項目的測試用例建立一個測試用例庫,根據測試用例庫構建知識圖譜檢索模型,對新建測試用例進行關鍵字匹配,篩選出所需要的測試用例,進行測試用例重用。再通過模型匹配和檢索,根據整車控制器的功能規范,對復用的測試用例進行驗證。實踐表明,該方法能夠提高硬件在環測試用例的開發效率和測試用例復用率,平均用例復用率達到了74%,測試用例設計開發時間累計節約73%。
關鍵詞:知識圖譜;檢索模型;硬件在環;測試用例復用
中圖分類號:U469.72 文獻標識碼:A
0 引言
硬件在環(Hardware-in-the-Loop,簡稱HIL)是通過建立MATLAB 或Simulink 仿真模型來模擬測試對象,并對測試對象進行系統層級的半實物半仿真的測試。在整車開發周期中,對控制器直接進行實車測試存在很大的安全隱患,且成本高。因此很多主機廠在實車測試之前會要求進行硬件在環測試,進一步對整車控制器的功能和性能進行驗證。HIL 測試已經成為ECU 開發流程中非常重要的一環[1-2]。
HIL 測試過程中,由于測試對象是控制器,功能種類繁多,測試用例開發工作任務繁重,相同功能的控制器在不同車型上又表現出不同的功能,這就需要大量功能相同的測試用例。為了減少測試用例開發的工作量,重復利用測試用例可以提高測試效率[3-4]。但是,測試工程師如何對測試用例進行重復利用又是一個重要的問題。
錢忠勝等對程序測試代碼進行分析,提出相似測試用例程序可用關鍵字流圖的程序[5]。李昊等以現有雷達軟件測試本體關系模型,基于識圖譜構建了雷達軟件測試用例方法[6],該方法復用性強,但有局限性,無法應用于其他類型測試的測試用例。萬進勇基于Bert 語言模型,針對文本相似度實現用例復用[7],對于較大的需求文檔提取關鍵字消耗時間較長,在提高測試效率方面不高。余祥等建立相似度量模型解決測試用例庫中有效用例缺乏的問題,改進的K 最鄰近算為基礎,并設計了檢索測試用例算法[8]。
目前,對用例復用的研究還較少,大多是通過研究測試用例的設計方法來更快速地開發測試用例。且大部分測試用例的復用都是針對軟件測試設計,關于硬件在環測試用例的復用研究成果目前還很缺乏。因此,為了解決以上敘述的問題,本文提出了一種基于知識圖譜的硬件在環測試用例復用方法。利用知識圖譜算法,通過建立測試用例庫和關鍵字搜索模型,匹配所需要的測試用例,進行硬件在環的測試用例重用。
1 測試用例復用與知識圖譜
1.1 測試用例
測試用例是測試過程中的最小單元實體,是為實現特定目的而設計的一組包含測試輸入輸出、執行條件和預期結果等的數據。硬件在環測試是一種黑盒測試技術,要進行測試用例復用研究,首先應了解硬件在環測試用例的設計方法。目前黑盒測試的測試用例設計方法有以下幾類,包括等價類劃分法、邊界值分析、枚舉法及場景分析法等。
(1)等價類劃分法是指將輸入數據作為一個集合,在該集合中,每個輸入數據對檢測出錯誤的幾率都是等效,每個等價類的代表值都等于其他等價類代表值的測試結果。因此,可以將這些輸入數據劃分為若干組等價類,從每組等價類中取出其中一個值作為輸入,就可以利用少量具有代表性的數據進行測試并得到較好的測試結果,提高測試效率。
等價類可以分為有效等價類和無效等價類。有效等價類是有輸出值的輸入數據;而無效等價類是有輸出值的輸入數據之外的數據。假如對于學生成績,輸入是一個學生的成績,范圍是0 ~ 100,其有效等價類和無效等價類劃分如圖1 所示,可以確定1 個有效等價類和2 個無效等價類。
(2)邊界值分析方法相對于等價類劃分法而言,是取稍高于最高邊界值和稍低于最低邊界值的一些特殊情形,主要發生在輸入值或輸出值的邊界上,而不是發生在輸入或輸出的范圍內部。因此,使用邊界值分析方法設計測試用例時,首先要確定邊界值。通過輸入輸出等價類的邊界就是測試的邊界,應當選取等于、介于大于或小于邊界的值作為測試輸入。
(3)枚舉法是窮舉各輸入變量的全部可能取值并進行排列組合,適用于輸入變量少且均為可枚舉的功能。該方法優點是覆蓋度高,簡單易行,缺點是用例數量大,易產生冗余或無意義用例。
(4)場景分析法是指根據用戶場景來模擬用戶的操作步驟,模擬不同用戶在不同的環境下可能乃至不可能進行的操作。測試工程師站在用戶的角度設計測試用例,可以生動描繪事件觸發時的情景,使測試更全面、更完整地執行。場景分析方法通常是在系統測試、驗收測試階段使用。
1.2 測試用例復用研究
通過對測試用例進行修改適配,或直接調用用于被測對象的測試過程稱為測試用例復用。硬件在環測試用例復用主要包含有軟件、硬件及測試環境的復用,測試用例設計方法復用、執行策略和測試流程均為測試用例復用的重要組成部分。一個良好的測試用例模型可通過重復使用以及不斷優化,使得測試效率、結果準確性不斷提高。硬件在環測試屬于一種黑盒測試,只關注測試對象外部功能的實現,不看內部邏輯。因此,本文選取的測試對象是硬件在環測試,該測試對測試用例有如下要求。
(1)通用性。指在測試過程中不過分依賴測試環境,對測試用例不經修改或稍加修改,就可以在同類控制器中廣泛使用。
(2)有效性。指設計的測試用例輸入數據有效,能夠順利執行并有對應的輸出值,同時還有發現被測對象缺陷的可能。
(3)獨立性。指各測試用例之間不存在依賴關系,各自獨立。即能夠單獨在測試環境中執行測試,與運行的環境和其他測試用例的執行結果狀態無關。
(4)易用性。要求設計的測試用例易于理解,可靈活檢索和獲取,方便測試人員使用。
2 硬件在環測試用例復用模型構建
2.1 知識圖譜概述
知識圖譜在本質上是一種語義網絡,主要是將一些學科技術理論(如可視化技術、圖形技術、數學技術和信息科學技術等)與實踐方法結合,通過不同的圖形顯示發展進程與結構關系,以及運用可視化技術將知識資源及其載體,通過挖掘、分析、構建、回執和顯示各種知識及它們之間的相互聯系。知識圖譜可以應用于智能搜索、文本分析、機器閱讀理解、異常監控和風險控制等,它可以幫助企業構建行業圖譜,擺脫原始的人工輸入,實現智能化和自動化。
現今在很多專業領域中能看到知識圖譜技術的廣泛應用。在軟件工程領域中,主要應用于構建知識管理庫、設計和開發工程項目庫以及構建軟件檢索庫等。為了彌補測試管理工具的不足,使測試用例庫得到有效管理,需要進一步優化測試用例的復用檢索,提高測試用例的利用率。本文在硬件在環測試用例復用設計過程中,引入知識圖譜技術來進行研究。
2.2 構建知識圖譜模型
本文構建的基于知識圖譜的硬件在環測試用例復用模型屬于軟件測試知識領域。其以測試用例復用為核心,采用屬性圖構建本體關系模型(圖2)。不同的控制器可以建立相關的本體關系模型,被測對象運行于硬件在環,將被測控制器的功能需求分解為若干關鍵測試項,使用等價類劃分法、邊界值分析法和因果分析法等設計測試用例。
本體關系模型是將測試對象的歷史缺陷與其對應的測試用例執行建立一種屬性關聯,通過測試得到被測對象缺陷的激發條件,記錄缺陷發生時輸出故障的表現形式,然后得到相對獨立的被測對象的FMEA 數據。基于知識圖譜的硬件在環測試用例是將測試用例中的有關知識和數據庫中的測試用例,通過圖形可視化的復雜語義形式進行存儲和沖洗,以方便測試工程師從“關系”可視化的角度去訪問知識圖譜。
知識圖譜在簡單和復雜的項目中運用有所不同,本文基于硬件在環構建的知識圖譜基本框架包含5 個層級(圖3)。第一層級為原始數據,即硬件在環測試用例庫;第二層級為知識抽取,包括功能需求、測試用例等關鍵字抽取、測試實體屬性抽取和實測實體間關系抽取;第三層級則進行知識融合,通過構建測試本體與計算測試實體對齊;第四層級是進行知識加工,通過構建Neo4j 圖形數據庫進行關系推理、質量評估和知識更新;第五層級為知識應用,可將本框架應用于圖譜瀏覽、質量分析、風險分析和智能檢索。在此基礎上,通過不斷補充已有測試知識的質量和應用效果,以圖形化人機交互界面的形式在知識應用層實現知識檢索與質量數據統計分析。
2.3 硬件在環測試用例復用設計
測試人員為滿足硬件在環測試用例的復用,通過檢索測試用例相似功能需求時間的覆蓋與追溯的關系[9]。當測試用例庫中大量的程序可供選擇時,需要在其中進行篩選,擇優處理。本文應用知識圖譜技術進行關系網絡解析,采用知識融合中計算測試實體對齊自動化處理這一過程,構建以功能需求和測試用例為核心,包括被測控制器功能需求和控制器實體關聯的知識圖譜。知識圖譜在關系網絡分析上,獲取實體最優的檢索匹配結果?;谥R圖譜的硬件在環測試用例復用檢索模型如圖4 所示。
硬件在環測試用例復用檢索模型的優勢,是可以快速搭建適合于特定場景的測試用例和測試質量管理平臺。除此之外,還可開展相關用例的智能檢索、質量評估、缺陷預測和效融合測試關聯信息等諸多擴展研究。該檢索模型在硬件在環測試過程中,可為測試質量管理決策分析提供依據,并為測試過程的改進提供數據基礎。
3 測試驗證與分析
本文選取了3 個控制器的歷史測試用例作為數據輸入,在Visual Studio 2019 中運行項目,跳轉到圖5 所示模型檢索應用界面。點擊“導入需求文檔”按鈕,顯示文檔名稱在文本框中;點擊“知識檢索”按鈕,軟件根據算法檢索出功能需求文檔的關鍵字并顯示出來;點擊“知識匹配”按鈕,經過運行算法顯示測試用例復用結果;最后點擊按鈕“下載測試用例”,可以將匹配的測試用例以Excel 形式導出到本地。
各測試項目的主要實體數量和測試驗證結果如表1 所示。根據歷史數據,測試用例開發速度為300 條/ 天。通過本文的測試用例復用方法,平均時間節約率和平均復用率分別為:
時間節約率= 節約時間/ 用例開發時間
=(4+8+3)/(3+6+2)=73%
平均復用率= 匹配測試用例數/ 測試用例=74.48%
4 結束語
本文基于知識圖譜設計了一種硬件在環測試用例復用的方法,用大量已有的歷史相關測試數據建立基于知識圖譜的硬件在環測試用例模型,并將其用到控制器的功能測試,得到以下結論。
(1)知識實體匹配技術可提高硬件在環測試用例檢索的效率,同時減少測試用例開發過程中出現的錯誤,更好地發揮出敏捷測試的優勢。
(2)通過設計3 個測試項目驗證基于知識圖譜的硬件在環測試用例復用方法,進行了測試用例復用情況統計。結果表明,該模型的平均復用率達到了74%,累計節約73% 的測試用例設計開發周期。
【參考文獻】
[1] 劉江波, 楊發松, 孫濤. 整車多ECU 系統HIL 測試與分析[J]. 農業裝備與車輛工程,2018,56(08):89-92.
[2] 劉帝平. 硬件在環測試在純電動汽車VCU 開發中的運用[J]. 機電技術,2013,36(01):93-96.
[3] 尹平. 可復用測試用例研究[J]. 計算機應用,2010,30(05):1309-1311+1355.
[4] 樓芳, 李亮, 賀志強. 基于本體的滲透測試用例復用模型[J]. 計算機工程與科學,2011,33(02):23-26.
[5] 錢忠勝, 宋濤. 面向關鍵字流圖的相似程序間測試用例的重用[J]. 軟件學報,2021,32(09):2691-2712.
[6] 李昊, 柳溪. 基于知識圖譜的雷達軟件測試用例復用研究[J]. 測控技術,2021,40(06):18-26.
[7] 萬進勇, 史涯晴, 黃松, 等. 基于Bert 的測試用例復用方法研究[J]. 軟件導刊,2021,20(12):59-63.
[8] 余祥, 李強, 孫勝軍. 基于TCBR 的測試用例復用方法研究[J]. 計算機工程與設計,2012,33(11):4230-4234+4313.
[9] Heiko Paulheim. Knowledge Graph Refinement: A Survey of Approachesand Evaluation Methods[J]. Semantic Web, 2016,8(3): 489-508.
作者簡介:
龍鮮菊,本科,助理工程師,研究方向為汽車控制器測試。