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