李 勇,汪 偉,彭再武,馬超文,劉昆朋,文 多
(1.中車時(shí)代電動(dòng)汽車股份有限公司,湖南 株洲 412000; 2.長(zhǎng)沙中車智馭新能源科技有限公司,長(zhǎng)沙 410000)
隨著新能源城市客車等商用車在我國(guó)逐漸普及,以及新能源車“新四化”的發(fā)展,軟件產(chǎn)品在新能源汽車領(lǐng)域占比呈急劇上升趨勢(shì)。更加復(fù)雜的電子電氣架構(gòu)、頻繁的需求變更、愈加嚴(yán)格的安全要求以及小批量周期短的開發(fā)環(huán)境,不僅增加了商用車軟件開發(fā)的難度,而且對(duì)商用車軟件質(zhì)量的保證提出了更高的要求。針對(duì)商用車車型多、批量小、周期短的特點(diǎn),如何實(shí)現(xiàn)軟件快速迭代的同時(shí)保證軟件質(zhì)量,已成為商用車軟件產(chǎn)品開發(fā)必須重視和面對(duì)的課題。為此,本文從建立軟件開發(fā)流程體系、自動(dòng)化測(cè)試及軟件質(zhì)量度量3個(gè)方面進(jìn)行研究。
建立軟件的開發(fā)流程體系就是建立軟件的質(zhì)量門。按照新版IATF16949標(biāo)準(zhǔn)要求[1],軟件開發(fā)流程必須符合ASPICE或CMMI標(biāo)準(zhǔn)要求。軟件開發(fā)活動(dòng)過(guò)程中的每個(gè)步驟缺一不可,且開發(fā)周期相對(duì)于商用車產(chǎn)品開發(fā)周期過(guò)長(zhǎng),無(wú)法滿足商用車車型多、需求變更頻繁、周期短的要求。因此,為了實(shí)現(xiàn)軟件快速迭代的同時(shí)保證軟件質(zhì)量,必須根據(jù)商用車軟件產(chǎn)品的特點(diǎn),對(duì)軟件開發(fā)“V”流程進(jìn)行裁剪。
在獲取到車型訂單的軟件產(chǎn)品需求后(一般包括配置和控制平臺(tái)信息),開始進(jìn)行軟件開發(fā)需求的定義。通過(guò)控制平臺(tái)信息可以確定此車型訂單的基版軟件,通過(guò)配置信息與基版軟件的匹配可以獲取此車型訂單的軟件開發(fā)需求。通常情況下,經(jīng)過(guò)與基版軟件的匹配后,可以將此車型訂單的軟件開發(fā)需求歸納為3種類型:功能新增、功能優(yōu)化以及配置變更。根據(jù)這3種類型的開發(fā)需求對(duì)軟件開發(fā)“V”流程進(jìn)行裁剪,裁剪表見(jiàn)表1。其中有關(guān)裁剪說(shuō)明如下:
1) 軟件集成及測(cè)試。新增功能模塊可能會(huì)在架構(gòu)設(shè)計(jì)上進(jìn)行調(diào)整,比如新增接口,此時(shí)軟件集成及測(cè)試必須進(jìn)行且不可裁剪;優(yōu)化功能模塊只是算法或參數(shù)的優(yōu)化,不涉及架構(gòu)的改變,做完單元測(cè)試后可酌情不進(jìn)行軟件集成及測(cè)試。
2) 系統(tǒng)測(cè)試(HIL測(cè)試用例庫(kù)測(cè)試)。商用車車型配置雖然變更很大,但是控制平臺(tái)是相對(duì)穩(wěn)定的。因此,通過(guò)建立平臺(tái)化的HIL測(cè)試用例庫(kù),對(duì)3種類型的軟件開發(fā)質(zhì)量有極大的保證。通過(guò)新增HIL測(cè)試用例庫(kù),不僅可以驗(yàn)證新增功能模塊的正確性,也可以快速驗(yàn)證其架構(gòu)設(shè)計(jì)有沒(méi)有影響其他功能實(shí)現(xiàn);通過(guò)優(yōu)化HIL測(cè)試庫(kù)中對(duì)應(yīng)的優(yōu)化功能模塊的測(cè)試,快速驗(yàn)證優(yōu)化功能模塊的正確性和獨(dú)立性;通過(guò)配置變更選用不同的HIL測(cè)試用例庫(kù),可以快速驗(yàn)證配置參數(shù)的正確性。
3) 相關(guān)功能實(shí)車測(cè)試。通過(guò)系統(tǒng)測(cè)試(HIL測(cè)試用例庫(kù)測(cè)試),新增功能模塊和優(yōu)化功能模塊在實(shí)車測(cè)試時(shí)進(jìn)行有針對(duì)性的測(cè)試,不僅可以保證測(cè)試質(zhì)量,還可以縮短測(cè)試周期;在實(shí)車資源緊張的情況下,配置變更的軟件開發(fā)活動(dòng)在經(jīng)過(guò)系統(tǒng)測(cè)試(HIL測(cè)試用例庫(kù)測(cè)試)后,可以酌情裁剪相關(guān)功能實(shí)車測(cè)試。
軟件產(chǎn)品開發(fā)活動(dòng)過(guò)程中重視“上游工序”是構(gòu)成軟件質(zhì)量保證的核心思路。為保證上述軟件開發(fā)活動(dòng)有效實(shí)施,針對(duì)軟件開發(fā)活動(dòng)過(guò)程特別制定了軟件質(zhì)量門管理程序,包括軟件產(chǎn)品分類要求、軟件質(zhì)量門清單、軟件產(chǎn)品質(zhì)量門分級(jí)決策及職責(zé)定義、軟件質(zhì)量門評(píng)審內(nèi)容定義等。對(duì)于軟件開發(fā)過(guò)程,需要注重的是過(guò)程質(zhì)量,為此,制定了軟件開發(fā)過(guò)程質(zhì)量指標(biāo),主要包括客戶需求變更次數(shù)、配置點(diǎn)檢準(zhǔn)確率、評(píng)審缺陷覆蓋率、測(cè)試需求覆蓋率及訂單車輛軟件變更率這5大指標(biāo),涵蓋了開發(fā)過(guò)程和運(yùn)維過(guò)程的軟件質(zhì)量度量。
表1 軟件開發(fā)“V”流程裁剪表
注:++不可裁剪,+ 酌情裁剪,o可裁剪。
針對(duì)商用車軟件產(chǎn)品需求變更頻繁、周期短的特點(diǎn),為了讓所開發(fā)的軟件產(chǎn)品更加易于變更、維護(hù)和管理,必須采用更加高效的分布式開發(fā)方式[2]。規(guī)范的軟件開發(fā)環(huán)境是軟件開發(fā)高效高質(zhì)的前提,主要包括以下幾個(gè)方面:
1) 按照ASPICE或ISO26262標(biāo)準(zhǔn)要求[3],在開發(fā)階段配置相應(yīng)的軟件開發(fā)工具鏈,搭建一體化的開發(fā)、仿真、測(cè)試平臺(tái),如圖1舉例所示方案,主要包括虛擬仿真測(cè)試能力和硬件在環(huán)測(cè)試能力兩個(gè)部分。硬件在環(huán)測(cè)試將控制器總成與被控對(duì)象模型進(jìn)行集成,完成部件級(jí)、系統(tǒng)級(jí)以及整車級(jí)的功能測(cè)試、故障注入測(cè)試以及復(fù)雜工況循環(huán)測(cè)試等,如圖2所示。
圖1 一體化仿真測(cè)試平臺(tái)方案
圖2 硬件在環(huán)測(cè)試能力
2)建立統(tǒng)一的軟件開發(fā)規(guī)范、測(cè)試環(huán)境及測(cè)試用例庫(kù),以保證軟件產(chǎn)品開發(fā)質(zhì)量[4-6]。軟件開發(fā)規(guī)范包括控制算法建模規(guī)范、控制算法模型參數(shù)配置規(guī)范、控制算法編碼裁剪規(guī)范、控制算法模型命名規(guī)范以及軟件測(cè)試流程規(guī)范。測(cè)試用例庫(kù)(部分)見(jiàn)表2。
表2 測(cè)試用例庫(kù)
3) 控制軟件持續(xù)集成平臺(tái)。持續(xù)集成是指軟件開發(fā)成員經(jīng)常性(每天)的工作集成。每次集成都通過(guò)自動(dòng)化的測(cè)試來(lái)驗(yàn)證,從而盡快地發(fā)現(xiàn)軟件中的錯(cuò)誤和問(wèn)題[7]。控制軟件持續(xù)集成平臺(tái)按照持續(xù)集成思想對(duì)仿真測(cè)試平臺(tái)所涉及的相關(guān)工具鏈和測(cè)試項(xiàng)目進(jìn)行無(wú)縫集成、自動(dòng)化調(diào)用和管理。持續(xù)集成平臺(tái)建設(shè)的主要目標(biāo)包括:
① 實(shí)現(xiàn)后臺(tái)自動(dòng)化測(cè)試功能。針對(duì)甲方現(xiàn)有控制軟件開發(fā)測(cè)試工具,實(shí)現(xiàn)后臺(tái)人工或自動(dòng)定時(shí)觸發(fā)調(diào)用相關(guān)測(cè)試軟件進(jìn)行自動(dòng)化測(cè)試[8]。
② 實(shí)現(xiàn)測(cè)試需求及問(wèn)題管理功能。針對(duì)控制軟件開發(fā)測(cè)試過(guò)程中需求和問(wèn)題的記錄、追溯、提交及匯報(bào),包括MIL、SIL和HIL等過(guò)程迭代開發(fā)中的歷史問(wèn)題管理以及產(chǎn)品售后現(xiàn)場(chǎng)的問(wèn)題管理。
控制軟件持續(xù)集成平臺(tái)界面功能模塊如圖3所示。
圖3 控制軟件持續(xù)集成平臺(tái)界面功能模塊
4) 建成后的控制軟件持續(xù)集成平臺(tái)主要有以下功能:
① 平臺(tái)管理。主要包括軟件持續(xù)集成項(xiàng)目管理、人員及權(quán)限管理和郵件設(shè)置等。
② 工具鏈集成。主要包括自動(dòng)調(diào)用已有的仿真測(cè)試平臺(tái)工具鏈,執(zhí)行軟件的代碼生成、編譯、下載、靜態(tài)檢查、動(dòng)態(tài)測(cè)試、HIL測(cè)試等工作。對(duì)于自動(dòng)調(diào)用的測(cè)試工具,應(yīng)提供配置界面,方便配置測(cè)試工具的功能特性參數(shù)。同時(shí),應(yīng)根據(jù)工具鏈license數(shù)量和應(yīng)用場(chǎng)景提供合理的license管理策略,具體包括人工申請(qǐng)(SVN觸發(fā))優(yōu)先、閑時(shí)全負(fù)荷運(yùn)行、用即分配、不用即釋放等,避免license被過(guò)度占用。
③ 測(cè)試配置管理。包括創(chuàng)建、修改和刪除測(cè)試配置,保存后生成測(cè)試配置文件。平臺(tái)允許有多個(gè)測(cè)試配置文件,但僅有一個(gè)全局測(cè)試配置文件[9]。
④ 需求管理。包括需求收集、需求轉(zhuǎn)化、需求變更、需求狀態(tài)管理、需求關(guān)聯(lián)關(guān)系管理、需求導(dǎo)入導(dǎo)出及需求報(bào)表生成等。
⑤ 測(cè)試管理。包括測(cè)試用例管理、測(cè)試知識(shí)庫(kù)管理、測(cè)試問(wèn)題管理、漏測(cè)分析、關(guān)聯(lián)關(guān)系管理、測(cè)試報(bào)表生成等。
⑥ 自動(dòng)測(cè)試。圖4為自動(dòng)化測(cè)試的典型功能。
圖4 自動(dòng)化測(cè)試典型功能
通過(guò)上述一體化開發(fā)平臺(tái)的建立,能夠?qū)崿F(xiàn)軟件高效開發(fā),提升軟件產(chǎn)品快速響應(yīng)市場(chǎng)的能力。
軟件質(zhì)量直接影響軟件的使用與維護(hù),對(duì)軟件質(zhì)量進(jìn)行客觀、科學(xué)地評(píng)價(jià)貫穿于軟件整個(gè)生命周期,與軟件開發(fā)過(guò)程并行實(shí)施,對(duì)軟件開發(fā)過(guò)程中的質(zhì)量進(jìn)行持續(xù)測(cè)量,揭示軟件質(zhì)量的當(dāng)前狀態(tài),估計(jì)軟件質(zhì)量的后續(xù)走勢(shì),是為企業(yè)、需方和評(píng)價(jià)方提供量化的軟件質(zhì)量管理的有力手段,從而精確地控制軟件產(chǎn)品的質(zhì)量[10]。目前車輛軟件質(zhì)量度量多利用實(shí)車驗(yàn)證及工程師主觀評(píng)價(jià)的方法進(jìn)行,尚無(wú)獨(dú)立的客觀評(píng)價(jià)方法。
基于長(zhǎng)期的軟件開發(fā)實(shí)踐,本文提出了車用控制軟件質(zhì)量客觀度量的方法[11],如圖5所示。質(zhì)量客觀度量系統(tǒng)所包括的4個(gè)單元簡(jiǎn)要介紹如下:
圖5 控制軟件質(zhì)量客觀度量系統(tǒng)原理圖
1) 用戶接口單元。主要為軟件開發(fā)工程師、軟件測(cè)試工程師、大數(shù)據(jù)分析工程師和軟件質(zhì)量度量工程師提供接口,是軟件測(cè)試管理單元、車輛大數(shù)據(jù)管理單元和軟件質(zhì)量度量單元的統(tǒng)一接口,分別執(zhí)行軟件上傳、測(cè)試請(qǐng)求發(fā)起、測(cè)試用例編寫、測(cè)試觸發(fā)、大數(shù)據(jù)管理與分析、軟件質(zhì)量度量模型設(shè)計(jì)[12]等工作。
2) 軟件測(cè)試管理單元。該單元即是第2部分所述的軟件測(cè)試管理單元,主要用于生成軟件開發(fā)過(guò)程質(zhì)量數(shù)據(jù)。
3) 車輛大數(shù)據(jù)管理單元。通過(guò)車載終端采集到的車輛控制單元發(fā)出的車輛運(yùn)行數(shù)據(jù)上傳到大數(shù)據(jù)管理單元,由大數(shù)據(jù)分析工程師進(jìn)行分析,獲得結(jié)構(gòu)化的軟件運(yùn)維過(guò)程質(zhì)量數(shù)據(jù)。典型數(shù)據(jù)如訂單車輛軟件變更次數(shù)/率。
4) 軟件質(zhì)量度量單元。該單元與軟件測(cè)試管理單元和車輛大數(shù)據(jù)管理單元部署在同一以太網(wǎng)絡(luò)內(nèi)。軟件質(zhì)量度量單元通過(guò)網(wǎng)絡(luò)獲取上述軟件開發(fā)過(guò)程質(zhì)量數(shù)據(jù)和軟件運(yùn)維過(guò)程質(zhì)量數(shù)據(jù),采用質(zhì)量數(shù)據(jù)處理函數(shù)處理后,分配到標(biāo)準(zhǔn)符合性、功能符合性、性能符合性、可靠性、可維護(hù)性等5個(gè)質(zhì)量度量屬性中[13],并采用特定的質(zhì)量度量算法和質(zhì)量度量權(quán)重對(duì)軟件從上述5個(gè)維度進(jìn)行質(zhì)量度量,形成最終的軟件質(zhì)量度量結(jié)果,并自動(dòng)生成軟件質(zhì)量度量報(bào)告,通過(guò)郵件或網(wǎng)頁(yè)形式向相關(guān)用戶進(jìn)行展示。
典型的軟件質(zhì)量度量流程圖如圖6所示。選取標(biāo)準(zhǔn)符合性、可靠性、功能性以及維護(hù)性作為軟件質(zhì)量度量特性;分配相應(yīng)的權(quán)重都為25%。如通過(guò)獲取開發(fā)過(guò)程質(zhì)量數(shù)據(jù)和軟件運(yùn)維過(guò)程質(zhì)量數(shù)據(jù)計(jì)算出當(dāng)前輪次的標(biāo)準(zhǔn)符合性、可靠性、功能性、維護(hù)性分別得100分、50分、88分、94分;則得出當(dāng)前輪次的軟件質(zhì)量綜合得分為100×25%+50×25%+88×25%+94×25%=83分。
圖6 軟件質(zhì)量度量流程圖
在實(shí)際項(xiàng)目中應(yīng)用上述方法進(jìn)行相關(guān)軟件產(chǎn)品的開發(fā),一定程度上可以輔助企業(yè)對(duì)車用軟件產(chǎn)品全生命周期的質(zhì)量進(jìn)行全面客觀把握,提升軟件質(zhì)量,減少批量問(wèn)題。但由于上述方法涉及的面非常廣,所搭建的自動(dòng)化測(cè)試平臺(tái)以及質(zhì)量度量系統(tǒng)在通用化和全面推廣方面還有一定局限性,后續(xù)將繼續(xù)優(yōu)化方案設(shè)計(jì)和平臺(tái)搭建,實(shí)現(xiàn)其通用化以便推廣。