楊 薇,曹春芳,姚素娟,申曉彥,姜曉博,閆云艷
(中國北方發(fā)動機(jī)研究所(天津),天津 300400)
隨著柴油機(jī)電子控制系統(tǒng)的快速發(fā)展,軟件逐步成為柴油機(jī)的核心,其復(fù)雜程度也大幅增加。其典型的表現(xiàn)是需求數(shù)量激增,需求之間的控制耦合、數(shù)據(jù)耦合關(guān)系復(fù)雜。軟件測試作為保證需求完整并正確傳遞至設(shè)計(jì)和編碼人員、提高軟件質(zhì)量和可靠性的重要手段,逐漸成為研究的熱點(diǎn)。
為了提早發(fā)現(xiàn)盡可能多的不確定性因素和設(shè)計(jì)缺陷、降低項(xiàng)目后期風(fēng)險(xiǎn),需要轉(zhuǎn)變開發(fā)完成后才開展軟件測試的工作方式,全面分析柴油機(jī)控制要求,逐步梳理影響軟件質(zhì)量的正確性、健壯性、安全性等因素,有計(jì)劃、分步驟地開展測試工作。柴油機(jī)電控系統(tǒng)軟件根據(jù)柴油機(jī)的實(shí)際運(yùn)行工況,控制噴油定時和噴油量,對柴油機(jī)及車輛的可靠工作起著至關(guān)重要的作用。本文從仿真測試環(huán)境搭建、測試用例設(shè)計(jì)和復(fù)用方法等方面,對柴油機(jī)控制軟件的測試方法進(jìn)行了研究。所設(shè)計(jì)的用例可有效檢驗(yàn)輸入/輸出信息,以及電控系統(tǒng)功能、性能指標(biāo)是否符合需求規(guī)格說明書的要求。
軟件測試環(huán)境是開展測試用例設(shè)計(jì)的前提,為軟件測試工作的有效開展提供了根本保證。柴油機(jī)電控系統(tǒng)軟件的突出特點(diǎn)在于其運(yùn)行環(huán)境(目標(biāo)機(jī)環(huán)境)和開發(fā)環(huán)境(宿主機(jī)環(huán)境)的不一致。因此,在進(jìn)行配置項(xiàng)測試時,首先要搭建模擬測試環(huán)境[1]??刂栖浖討B(tài)測試環(huán)境如圖1所示。
圖1 控制軟件動態(tài)測試環(huán)境
本文所述的柴油機(jī)電控軟件測試工作基于Dspace半實(shí)物仿真測試平臺開展[2],用于發(fā)現(xiàn)程序中功能錯誤/遺漏、接口錯誤和性能錯誤等問題。
該環(huán)境以基于模型的半實(shí)物仿真方法為核心,利用發(fā)動機(jī)各個部分的數(shù)學(xué)模型代替發(fā)動機(jī)本體,輸出發(fā)動機(jī)運(yùn)行的轉(zhuǎn)速、油門踏板和環(huán)境變量等模擬信息。對Dspace硬件在回路仿真測試平臺進(jìn)行功能和接口分析后,將仿真系統(tǒng)提供的I/O硬件接口與柴油機(jī)控制器連接,從而實(shí)現(xiàn)對柴油機(jī)控制軟件的動態(tài)測試,有效降低臺架試驗(yàn)、試車的工作量和事故風(fēng)險(xiǎn)[3]。
柴油機(jī)電控軟件仿真測試過程框圖如圖2所示。
圖2 柴油機(jī)電控軟件仿真測試過程框圖
測試過程主要包括測試需求分析、測試策劃、測試用例設(shè)計(jì)、測試執(zhí)行、測試總結(jié)五個部分[4]。各部分主要工作內(nèi)容如下。
①測試需求分析。分析柴油機(jī)電控系統(tǒng)需要測試的內(nèi)容,確保每一項(xiàng)被測內(nèi)容都滿足研制任務(wù)書、合同的要求。
②測試策劃。安排軟件測試需要的人、時間、工具與環(huán)境,并評估進(jìn)度、分析風(fēng)險(xiǎn)等內(nèi)容。
③測試用例設(shè)計(jì)。根據(jù)測試需求分析的結(jié)果,設(shè)計(jì)正常、異常的用例,驗(yàn)證各個測試需求點(diǎn)的實(shí)現(xiàn)是否滿足要求。
④測試執(zhí)行。在仿真測試環(huán)境下執(zhí)行測試用例,實(shí)施對各類正常、異常狀態(tài)的測試以及故障注入的測試,發(fā)現(xiàn)系統(tǒng)問題、記錄測試結(jié)果,并對測試用例是否通過進(jìn)行分析。
⑤測試總結(jié)。對前期的測試活動進(jìn)行總結(jié),編制測試報(bào)告。
經(jīng)過上述測試,盡可能發(fā)現(xiàn)隱藏的問題、并充分驗(yàn)證柴油機(jī)電控系統(tǒng)的功能、性能、余量、接口、可靠性、安全性等特性,為電控系統(tǒng)提供強(qiáng)有力的質(zhì)量保障。
測試用例通常是指對一項(xiàng)特定的軟件產(chǎn)品進(jìn)行測試,用于體現(xiàn)測試方案、方法、技術(shù)和策略[5]。軟件測試用例的設(shè)計(jì)是測試活動中的重要工作,是保證測試全面性和有效性的基礎(chǔ),可用于評價測試工作對需求的覆蓋程度。
設(shè)計(jì)柴油機(jī)電控軟件測試用例,首先要分析電控軟件的設(shè)計(jì)需求。通常,電控軟件可進(jìn)一步劃分為采集、狀態(tài)檢測、發(fā)動機(jī)保護(hù)、數(shù)據(jù)記錄和總線通信等功能模塊。通過識別上述功能模塊控制需求,分析各模塊的功能、性能等特點(diǎn),以劃分等價類或分析控制狀態(tài)間的轉(zhuǎn)換關(guān)系的方式,從而設(shè)計(jì)電控軟件運(yùn)行的基本測試用例。然后,針對柴油機(jī)電控系統(tǒng)運(yùn)行的邊界、極限條件,補(bǔ)充設(shè)計(jì)測試用例。柴油機(jī)電控軟件對可靠性的要求很高,因此在驗(yàn)證軟件正確性的基礎(chǔ)上,還需開展可靠性測試和安全性測試[6]。這就要針對軟件運(yùn)行的故障狀態(tài)處理、軟件容錯性、冗余性設(shè)計(jì)需求,進(jìn)行軟件運(yùn)行異常測試用例的設(shè)計(jì)。最后,要分析軟件的動態(tài)響應(yīng)需求,修改并完善測試用例的評價指標(biāo),或補(bǔ)充新的測試用例[7]。柴油機(jī)電控系統(tǒng)軟件測試用例的設(shè)計(jì)策略如圖3所示。
圖3 測試用例的設(shè)計(jì)策略
以柴油機(jī)運(yùn)行狀態(tài)噴油量控制為例,噴油量控制策略如圖4所示。柴油機(jī)電控軟件首先根據(jù)柴油機(jī)運(yùn)行油門位置和平均轉(zhuǎn)速信息,通過查油量確定目標(biāo)噴油量基本值,結(jié)合進(jìn)氣溫度、進(jìn)氣壓力和冷卻水溫對基本油量進(jìn)行修正,得到的結(jié)果與當(dāng)前轉(zhuǎn)速下的最大噴油量作比較,較小的值即為最終噴油量[8-11]。
圖4 噴油量控制策略
在設(shè)計(jì)噴油量控制功能的測試用例時,首先對控制邏輯進(jìn)行分析,設(shè)計(jì)轉(zhuǎn)速和踏板輸入狀態(tài)正常時和處于邊界時噴射功能的正常測試用例。然后對程序運(yùn)行的異常狀態(tài)進(jìn)行識別和分析,同時測試系統(tǒng)對于轉(zhuǎn)速傳感器故障、踏板故障狀態(tài)的容錯處理能力。噴油量控制測試用例設(shè)計(jì)思路如表1所示。該設(shè)計(jì)可較好地實(shí)現(xiàn)對噴油量控制策略需求的全覆蓋[12]。
表1 噴油量控制測試用例設(shè)計(jì)
測試用例參數(shù)自動匹配方法如圖5所示。
圖5 測試用例參數(shù)自動匹配方法
各種類型的柴油機(jī)電控系統(tǒng),具有產(chǎn)品特性相似、總體設(shè)計(jì)需求明確、開發(fā)過程相通等特點(diǎn)。因此,可通過建立底層測試用例數(shù)據(jù)庫和頂層管理系統(tǒng)的方法,實(shí)現(xiàn)測試用例的良好復(fù)用。
底層測試用例數(shù)據(jù)庫主要用于實(shí)現(xiàn)基礎(chǔ)測試用例的存儲,根據(jù)各類型電控系統(tǒng)設(shè)計(jì)以及軟件測試工作的開展,不斷擴(kuò)充和完善[13]。頂層管理系統(tǒng)主要用于實(shí)現(xiàn)底層測試用例庫的訪問以及測試項(xiàng)和測試用例的匹配。對于柴油機(jī)電控系統(tǒng),分析整理柴油機(jī)電控軟件測試用例的特征參數(shù)后,在設(shè)計(jì)測試用例時充分考慮用例的通用性。后續(xù)項(xiàng)目可通過測試用例參數(shù)匹配的方法實(shí)現(xiàn)用例的復(fù)用,進(jìn)而有效減少測試用例的設(shè)計(jì)時間[14-15]。
本文對柴油機(jī)電控軟件測試的方法進(jìn)行了探討。柴油機(jī)電控軟件作為強(qiáng)實(shí)時性的嵌入式軟件,具有實(shí)時性、復(fù)雜性、硬件依賴性等特點(diǎn)[16]。針對其設(shè)計(jì)的用例實(shí)現(xiàn)了需求的全覆蓋。經(jīng)過在多個項(xiàng)目中的應(yīng)用實(shí)踐,在臺架試驗(yàn)前發(fā)現(xiàn)了多項(xiàng)軟件缺陷。由此證明,軟件測試用例設(shè)計(jì)切實(shí)有效,能夠測試電控軟件的功能、性能、執(zhí)行強(qiáng)度、安全性和可靠性是否達(dá)到要求,保證軟件需求正確地落實(shí)到設(shè)計(jì)和編碼,使軟件質(zhì)量和可靠性穩(wěn)步提高。同時,本文提出了一種測試用例參數(shù)自動匹配方法,所設(shè)計(jì)的測試用例具有良好的可復(fù)用性,形成組織資產(chǎn)庫后,可大大減少軟件測試設(shè)計(jì)的時間,提高研發(fā)效率,縮短研制周期,實(shí)現(xiàn)軟件測試工作的精益管理。