楊 薇,曹春芳,姚素娟,申曉彥,姜曉博,閆云艷
(中國北方發(fā)動機研究所(天津),天津 300400)
隨著柴油機電子控制系統(tǒng)的快速發(fā)展,軟件逐步成為柴油機的核心,其復雜程度也大幅增加。其典型的表現(xiàn)是需求數(shù)量激增,需求之間的控制耦合、數(shù)據(jù)耦合關系復雜。軟件測試作為保證需求完整并正確傳遞至設計和編碼人員、提高軟件質(zhì)量和可靠性的重要手段,逐漸成為研究的熱點。
為了提早發(fā)現(xiàn)盡可能多的不確定性因素和設計缺陷、降低項目后期風險,需要轉(zhuǎn)變開發(fā)完成后才開展軟件測試的工作方式,全面分析柴油機控制要求,逐步梳理影響軟件質(zhì)量的正確性、健壯性、安全性等因素,有計劃、分步驟地開展測試工作。柴油機電控系統(tǒng)軟件根據(jù)柴油機的實際運行工況,控制噴油定時和噴油量,對柴油機及車輛的可靠工作起著至關重要的作用。本文從仿真測試環(huán)境搭建、測試用例設計和復用方法等方面,對柴油機控制軟件的測試方法進行了研究。所設計的用例可有效檢驗輸入/輸出信息,以及電控系統(tǒng)功能、性能指標是否符合需求規(guī)格說明書的要求。
軟件測試環(huán)境是開展測試用例設計的前提,為軟件測試工作的有效開展提供了根本保證。柴油機電控系統(tǒng)軟件的突出特點在于其運行環(huán)境(目標機環(huán)境)和開發(fā)環(huán)境(宿主機環(huán)境)的不一致。因此,在進行配置項測試時,首先要搭建模擬測試環(huán)境[1]??刂栖浖討B(tài)測試環(huán)境如圖1所示。

圖1 控制軟件動態(tài)測試環(huán)境
本文所述的柴油機電控軟件測試工作基于Dspace半實物仿真測試平臺開展[2],用于發(fā)現(xiàn)程序中功能錯誤/遺漏、接口錯誤和性能錯誤等問題。
該環(huán)境以基于模型的半實物仿真方法為核心,利用發(fā)動機各個部分的數(shù)學模型代替發(fā)動機本體,輸出發(fā)動機運行的轉(zhuǎn)速、油門踏板和環(huán)境變量等模擬信息。對Dspace硬件在回路仿真測試平臺進行功能和接口分析后,將仿真系統(tǒng)提供的I/O硬件接口與柴油機控制器連接,從而實現(xiàn)對柴油機控制軟件的動態(tài)測試,有效降低臺架試驗、試車的工作量和事故風險[3]。
柴油機電控軟件仿真測試過程框圖如圖2所示。

圖2 柴油機電控軟件仿真測試過程框圖
測試過程主要包括測試需求分析、測試策劃、測試用例設計、測試執(zhí)行、測試總結(jié)五個部分[4]。各部分主要工作內(nèi)容如下。
①測試需求分析。分析柴油機電控系統(tǒng)需要測試的內(nèi)容,確保每一項被測內(nèi)容都滿足研制任務書、合同的要求。
②測試策劃。安排軟件測試需要的人、時間、工具與環(huán)境,并評估進度、分析風險等內(nèi)容。
③測試用例設計。根據(jù)測試需求分析的結(jié)果,設計正常、異常的用例,驗證各個測試需求點的實現(xiàn)是否滿足要求。
④測試執(zhí)行。在仿真測試環(huán)境下執(zhí)行測試用例,實施對各類正常、異常狀態(tài)的測試以及故障注入的測試,發(fā)現(xiàn)系統(tǒng)問題、記錄測試結(jié)果,并對測試用例是否通過進行分析。
⑤測試總結(jié)。對前期的測試活動進行總結(jié),編制測試報告。
經(jīng)過上述測試,盡可能發(fā)現(xiàn)隱藏的問題、并充分驗證柴油機電控系統(tǒng)的功能、性能、余量、接口、可靠性、安全性等特性,為電控系統(tǒng)提供強有力的質(zhì)量保障。
測試用例通常是指對一項特定的軟件產(chǎn)品進行測試,用于體現(xiàn)測試方案、方法、技術和策略[5]。軟件測試用例的設計是測試活動中的重要工作,是保證測試全面性和有效性的基礎,可用于評價測試工作對需求的覆蓋程度。
設計柴油機電控軟件測試用例,首先要分析電控軟件的設計需求。通常,電控軟件可進一步劃分為采集、狀態(tài)檢測、發(fā)動機保護、數(shù)據(jù)記錄和總線通信等功能模塊。通過識別上述功能模塊控制需求,分析各模塊的功能、性能等特點,以劃分等價類或分析控制狀態(tài)間的轉(zhuǎn)換關系的方式,從而設計電控軟件運行的基本測試用例。然后,針對柴油機電控系統(tǒng)運行的邊界、極限條件,補充設計測試用例。柴油機電控軟件對可靠性的要求很高,因此在驗證軟件正確性的基礎上,還需開展可靠性測試和安全性測試[6]。這就要針對軟件運行的故障狀態(tài)處理、軟件容錯性、冗余性設計需求,進行軟件運行異常測試用例的設計。最后,要分析軟件的動態(tài)響應需求,修改并完善測試用例的評價指標,或補充新的測試用例[7]。柴油機電控系統(tǒng)軟件測試用例的設計策略如圖3所示。

圖3 測試用例的設計策略
以柴油機運行狀態(tài)噴油量控制為例,噴油量控制策略如圖4所示。柴油機電控軟件首先根據(jù)柴油機運行油門位置和平均轉(zhuǎn)速信息,通過查油量確定目標噴油量基本值,結(jié)合進氣溫度、進氣壓力和冷卻水溫對基本油量進行修正,得到的結(jié)果與當前轉(zhuǎn)速下的最大噴油量作比較,較小的值即為最終噴油量[8-11]。

圖4 噴油量控制策略
在設計噴油量控制功能的測試用例時,首先對控制邏輯進行分析,設計轉(zhuǎn)速和踏板輸入狀態(tài)正常時和處于邊界時噴射功能的正常測試用例。然后對程序運行的異常狀態(tài)進行識別和分析,同時測試系統(tǒng)對于轉(zhuǎn)速傳感器故障、踏板故障狀態(tài)的容錯處理能力。噴油量控制測試用例設計思路如表1所示。該設計可較好地實現(xiàn)對噴油量控制策略需求的全覆蓋[12]。

表1 噴油量控制測試用例設計
測試用例參數(shù)自動匹配方法如圖5所示。

圖5 測試用例參數(shù)自動匹配方法
各種類型的柴油機電控系統(tǒng),具有產(chǎn)品特性相似、總體設計需求明確、開發(fā)過程相通等特點。因此,可通過建立底層測試用例數(shù)據(jù)庫和頂層管理系統(tǒng)的方法,實現(xiàn)測試用例的良好復用。
底層測試用例數(shù)據(jù)庫主要用于實現(xiàn)基礎測試用例的存儲,根據(jù)各類型電控系統(tǒng)設計以及軟件測試工作的開展,不斷擴充和完善[13]。頂層管理系統(tǒng)主要用于實現(xiàn)底層測試用例庫的訪問以及測試項和測試用例的匹配。對于柴油機電控系統(tǒng),分析整理柴油機電控軟件測試用例的特征參數(shù)后,在設計測試用例時充分考慮用例的通用性。后續(xù)項目可通過測試用例參數(shù)匹配的方法實現(xiàn)用例的復用,進而有效減少測試用例的設計時間[14-15]。
本文對柴油機電控軟件測試的方法進行了探討。柴油機電控軟件作為強實時性的嵌入式軟件,具有實時性、復雜性、硬件依賴性等特點[16]。針對其設計的用例實現(xiàn)了需求的全覆蓋。經(jīng)過在多個項目中的應用實踐,在臺架試驗前發(fā)現(xiàn)了多項軟件缺陷。由此證明,軟件測試用例設計切實有效,能夠測試電控軟件的功能、性能、執(zhí)行強度、安全性和可靠性是否達到要求,保證軟件需求正確地落實到設計和編碼,使軟件質(zhì)量和可靠性穩(wěn)步提高。同時,本文提出了一種測試用例參數(shù)自動匹配方法,所設計的測試用例具有良好的可復用性,形成組織資產(chǎn)庫后,可大大減少軟件測試設計的時間,提高研發(fā)效率,縮短研制周期,實現(xiàn)軟件測試工作的精益管理。