技術(shù)

自動(dòng)變速控制系統(tǒng)開(kāi)發(fā)中的軟件測(cè)試技術(shù)

ainet.cn   2009年03月02日

1

 

自動(dòng)變速控制系統(tǒng)軟件存儲(chǔ)于TCUTransmission Control Unit,變速器控制單元)的ROM 中,主要由數(shù)據(jù)采集與處理、數(shù)據(jù)通信、決策調(diào)度、控制協(xié)調(diào)、驅(qū)動(dòng)控制等模塊和換檔規(guī)律及相關(guān)經(jīng)驗(yàn)數(shù)據(jù)等部分組成?,F(xiàn)代控制理論、電子技術(shù)、計(jì)算機(jī)技術(shù)、車輛自動(dòng)變速理論及人工智能技術(shù)的發(fā)展與應(yīng)用,為車輛動(dòng)力傳動(dòng)系統(tǒng)自動(dòng)操縱的實(shí)現(xiàn)提供了理論支持和技術(shù)保障。共同完成駕駛員意圖及環(huán)境參數(shù)識(shí)別、檔位決策、故障診斷、起步控制、換檔控制、制動(dòng)控制、倒車控制及與外部通信等功能,實(shí)現(xiàn)發(fā)動(dòng)機(jī)與傳動(dòng)系共同工作的最佳匹配[1 ,2 ]。作為質(zhì)量保證的重要手段,軟件測(cè)試技術(shù)的研究與應(yīng)用,對(duì)提高AMT 控制系統(tǒng)軟件質(zhì)量并推動(dòng)其產(chǎn)品化進(jìn)程有著重要的意義。

 

2 自動(dòng)變速控制系統(tǒng)軟件測(cè)試基本概念

 

2.1 測(cè)試目的及對(duì)象

 

自動(dòng)變速控制系統(tǒng)軟件測(cè)試的目的是發(fā)現(xiàn)控制軟件的錯(cuò)誤,而不是去證明其正確性。在測(cè)試活動(dòng)中,應(yīng)始終把目標(biāo)對(duì)準(zhǔn)未被發(fā)現(xiàn)的隱藏錯(cuò)誤。找出軟件錯(cuò)誤不只是找出程序中的錯(cuò)誤,所有與軟件開(kāi)發(fā)有關(guān)的文檔資料也應(yīng)是軟件測(cè)試的對(duì)象。據(jù)我們?cè)陂_(kāi)發(fā)過(guò)程中的統(tǒng)計(jì)表明,在查找出的軟件錯(cuò)誤中,屬需求分析和軟件設(shè)計(jì)的錯(cuò)誤約占64%,而代碼編寫(xiě)的錯(cuò)誤僅占36%。所以自動(dòng)變速控制系統(tǒng)軟件測(cè)試的對(duì)象應(yīng)包括軟件需求分析、設(shè)計(jì)規(guī)格說(shuō)明及程序代碼等方面的內(nèi)容。

 

2.2 測(cè)試原則

 

自動(dòng)變速控制系統(tǒng)軟件測(cè)試遵循如下原則:

 

1)測(cè)試用例(Test Case)應(yīng)由測(cè)試輸入數(shù)據(jù)及對(duì)應(yīng)的預(yù)期輸出結(jié)果兩部分組成,其設(shè)計(jì)必須兼顧有效與無(wú)效輸入、正確與錯(cuò)誤輸入[3 ]。

2)編程人員避免測(cè)試本人的程序,為此在自動(dòng)變速控制軟件開(kāi)發(fā)小組中設(shè)置專業(yè)測(cè)試人員。

3)檢查一個(gè)模塊是否完成了所有的功能,只是完成了測(cè)試工作的一半。另一半是要檢查該模塊是否還有預(yù)料之外的行為。

4)充分注意測(cè)試中的群集現(xiàn)象。經(jīng)驗(yàn)表明,測(cè)試后模塊中殘存的錯(cuò)誤數(shù)與該模塊中已發(fā)現(xiàn)的錯(cuò)誤數(shù)或檢錯(cuò)率成正比[4 ]。

5)應(yīng)在系統(tǒng)有錯(cuò)的假定下進(jìn)行測(cè)試。

 

2.3 錯(cuò)誤類型

 

就錯(cuò)誤發(fā)生的環(huán)境而言,自動(dòng)變速控制系統(tǒng)軟件錯(cuò)誤類型可分類如下:

1)功能錯(cuò)誤:文檔不完整、有歧義、一致性差,從而導(dǎo)致對(duì)系統(tǒng)功能的誤解。

2)系統(tǒng)錯(cuò)誤:包括與外部通信協(xié)議錯(cuò)誤、參數(shù)引用及子程序調(diào)用出錯(cuò)、I/O 操作及I/O 地址錯(cuò)誤、

中斷處理錯(cuò)誤、控制序列錯(cuò)誤、資源分配出錯(cuò)等。

3)過(guò)程錯(cuò)誤:運(yùn)算、初始化及邏輯錯(cuò)誤等。

4)數(shù)據(jù)錯(cuò)誤:信息、參數(shù)與控制數(shù)據(jù)混淆、數(shù)據(jù)結(jié)構(gòu)與屬性錯(cuò)誤等。

5)編碼錯(cuò)誤:語(yǔ)法、變量名錯(cuò);局部與全局變量混淆等。

 

2.4 測(cè)試信息流

 

自動(dòng)變速控制系統(tǒng)軟件測(cè)試過(guò)程中的信息流如圖1 所示。

 

1 自動(dòng)變速控制系統(tǒng)軟件測(cè)試信息流

 

測(cè)試過(guò)程需要三類輸入信息:①軟件配置,包括軟件需求規(guī)格說(shuō)明書(shū)、軟件設(shè)計(jì)規(guī)格說(shuō)明書(shū)、源程序等;②測(cè)試配置,包括測(cè)試計(jì)劃、測(cè)試用例、測(cè)試驅(qū)動(dòng)程序等,在軟件生存期過(guò)程中,它實(shí)際上只是軟件配置的一個(gè)子集;③測(cè)試工具,指測(cè)試過(guò)程中為便于測(cè)試而使用的軟件工具。

 

把測(cè)試結(jié)果和預(yù)期結(jié)果進(jìn)行比較后可以得出是否有錯(cuò)的信息,如果有錯(cuò)需進(jìn)行糾錯(cuò)處理,經(jīng)改正后的軟件(包括文檔)需重新測(cè)試,直到錯(cuò)誤消除為止。另一方面,可根據(jù)出錯(cuò)情況建立軟件可靠性模型,用于可靠性預(yù)測(cè)。

 

3 自動(dòng)變速控制系統(tǒng)軟件測(cè)試分析方法

 

3.1 靜態(tài)分析方法

 

靜態(tài)分析的主要特點(diǎn)是無(wú)需運(yùn)行軟件系統(tǒng)本身,而是以一些人工的技術(shù)對(duì)自動(dòng)變速控制系統(tǒng)軟件開(kāi)發(fā)各階段所形成的軟件配置進(jìn)行測(cè)試,主要是對(duì)需求分析、設(shè)計(jì)和編碼階段的成果進(jìn)行測(cè)試,以保證軟件質(zhì)量。經(jīng)驗(yàn)表明,靜態(tài)分析方法能夠有效地發(fā)現(xiàn)30%~70%的需求分析、邏輯設(shè)計(jì)和編碼錯(cuò)誤,是一種行之有效的軟件測(cè)試分析方法。

 

1)軟件需求規(guī)格說(shuō)明書(shū)的靜態(tài)分析

 

在自動(dòng)變速控制系統(tǒng)軟件需求規(guī)格說(shuō)明書(shū)里,通常要給出軟件系統(tǒng)的功能、性能及輸入/輸出。對(duì)這些進(jìn)行靜態(tài)分析,首先列出檢查表(Check List),然后利用它逐項(xiàng)地做人工檢查。在檢查表中列出的各種可能出現(xiàn)問(wèn)題的條目,這些條目反映以下特性:相容性、必要性、充分性、可行性及可測(cè)性。

 

2)軟件設(shè)計(jì)規(guī)格說(shuō)明書(shū)的靜態(tài)分析

 

在自動(dòng)變速控制系統(tǒng)軟件設(shè)計(jì)規(guī)格說(shuō)明書(shū)包含有數(shù)學(xué)方程、算法、模塊功能描述、模塊的接口、數(shù)據(jù)流程圖、程序流程圖、存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)等設(shè)計(jì)環(huán)節(jié)。同樣也要列出檢查表對(duì)這些設(shè)計(jì)環(huán)節(jié)進(jìn)行分析。檢查表?xiàng)l目體現(xiàn)相容性、必要性、充分性及正確性。

 

3)源代碼的靜態(tài)分析

 

對(duì)源代碼進(jìn)行靜態(tài)分析有兩種方法:一是程序特性信息分析,即在獲取程序特性信息之后用人工方法來(lái)查找錯(cuò)誤。這些特性信息包括模塊 (或子程序 )的調(diào)用關(guān)系、變量或其它符號(hào)名的交叉引用情況、模塊的循環(huán)特性及模塊的參數(shù)特性等;另外就是進(jìn)行程序正確性分析,查找程序中特定類型錯(cuò)誤或發(fā)現(xiàn)程序結(jié)構(gòu)上異?,F(xiàn)象。包括對(duì)模塊邏輯結(jié)構(gòu)錯(cuò)誤、循環(huán)控制變量未被賦初值、數(shù)組使用越界、零做除數(shù)等情況的檢查。

 

為提高靜態(tài)分析的效率,人工測(cè)試的形式也很重要,在自動(dòng)變速控制系統(tǒng)軟件開(kāi)發(fā)過(guò)程中常采用以下幾種形式:

 

1)桌前檢查(Desk Checking

 

在進(jìn)行單元測(cè)試之間,由編程人員檢查自己編寫(xiě)的程序(或模塊),對(duì)源代碼進(jìn)行分析、檢查,并補(bǔ)充相關(guān)的文檔,目的是發(fā)現(xiàn)程序中的錯(cuò)誤。檢查項(xiàng)目包括:變量或符號(hào)的交叉引用表、模塊 (或子程序 )的調(diào)用關(guān)系、標(biāo)準(zhǔn)、風(fēng)格、控制流、選擇/激活路徑、與規(guī)格說(shuō)明是否一致等。實(shí)施此方法時(shí)要求編程人員注意避免主觀片面性。

 

2)評(píng)審會(huì)(Inspection

 

由有經(jīng)驗(yàn)的編程人員主持(非軟件的設(shè)計(jì)者或程序的編寫(xiě)者本人),吸收程序的作者或參加過(guò)設(shè)計(jì)的人員參加,也邀請(qǐng)有關(guān)專家和技術(shù)人員參加。

 

與會(huì)者在評(píng)審會(huì)前應(yīng)研究過(guò)被評(píng)審軟件的有關(guān)資料。會(huì)上由程序作者介紹任務(wù)來(lái)源和程序的編寫(xiě)與調(diào)試情況。參加者提出問(wèn)題,作者回答,使用錯(cuò)誤檢查表(常見(jiàn)錯(cuò)誤清單),逐步進(jìn)行檢查,其中涉及到數(shù)據(jù)引用、數(shù)據(jù)說(shuō)明、計(jì)算、比較、控制流程、接口、輸入和輸出等方面。會(huì)議時(shí)間不太長(zhǎng),以保持審查的效率。評(píng)審會(huì)的目的只是為了發(fā)現(xiàn)問(wèn)題。

 

3)走查會(huì)(Walkthroughs

 

會(huì)前工作與評(píng)審會(huì)相同,會(huì)上不是簡(jiǎn)單地讀程序和對(duì)照錯(cuò)誤清單進(jìn)行檢查,而是讓與會(huì)者集體“充當(dāng)”計(jì)算機(jī)。即會(huì)前由測(cè)試人員準(zhǔn)備好有代表性的測(cè)試用例,提交給走查小組。會(huì)上由集體扮演計(jì)算機(jī),讓測(cè)試用例沿程序的邏輯“運(yùn)行”一遍,隨時(shí)記錄程序蹤跡,供分析和討論之用。

 

3.2 動(dòng)態(tài)分析方法

 

對(duì)自動(dòng)變速控制系統(tǒng)軟件進(jìn)行動(dòng)態(tài)分析是在運(yùn)行(或仿真)程序(或模塊)的條件下,取得程序(或模塊)的動(dòng)態(tài)特性信息,通過(guò)這些信息來(lái)發(fā)現(xiàn)軟件配置中存在的錯(cuò)誤。自動(dòng)變速控制系統(tǒng)軟件動(dòng)態(tài)分析包括以下幾個(gè)步驟:

 

1)對(duì)軟件需求規(guī)格說(shuō)明書(shū)進(jìn)行動(dòng)態(tài)分析

 

典型的方法是黑盒測(cè)試(又稱功能測(cè)試),即根據(jù)功能需求來(lái)設(shè)計(jì)測(cè)試用例,并通過(guò)測(cè)試結(jié)果來(lái)檢驗(yàn)功能是否實(shí)現(xiàn)。

 

2)對(duì)軟件設(shè)計(jì)規(guī)格說(shuō)明書(shū)進(jìn)行動(dòng)態(tài)分析

 

根據(jù)設(shè)計(jì)過(guò)程中所涉及到的計(jì)算公式、算法、模塊功能及接口等設(shè)計(jì)環(huán)節(jié)設(shè)計(jì)測(cè)試用例,進(jìn)行動(dòng)態(tài)測(cè)試。從各個(gè)不同的設(shè)計(jì)方面設(shè)計(jì)不同的測(cè)試用例,使各個(gè)設(shè)計(jì)環(huán)節(jié)均能得到相應(yīng)的驗(yàn)證。

 

3)對(duì)程序(或模塊)進(jìn)行動(dòng)態(tài)測(cè)試

 

一般采用白盒測(cè)試(又稱結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試)方法,即根據(jù)程序(或模塊)的內(nèi)部邏輯結(jié)構(gòu)及有關(guān)信息(包括語(yǔ)句、分支、路徑等)設(shè)計(jì)測(cè)試用例,對(duì)程序(或模塊)的所有邏輯路徑進(jìn)行測(cè)試,通過(guò)不同點(diǎn)檢查程序(或模塊)的狀態(tài),確定實(shí)際的狀態(tài)是否與預(yù)期的狀態(tài)一致。白盒測(cè)試包括語(yǔ)句覆蓋、判定覆蓋、條件覆蓋、判定-條件覆蓋、條件組合覆蓋、路徑覆蓋等測(cè)試方法,從語(yǔ)句覆蓋到路徑覆蓋測(cè)試強(qiáng)度呈遞增的趨勢(shì)。實(shí)際上,對(duì)于自動(dòng)變速控制系統(tǒng)軟件這種控制邏輯比較復(fù)雜的程序,其執(zhí)行路徑比較龐大,采用完全路徑覆蓋方法進(jìn)行測(cè)試是不現(xiàn)實(shí)的且沒(méi)有必要,通常的做法是在程序控制流圖的基礎(chǔ)上,通過(guò)分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,用于設(shè)計(jì)測(cè)試用例。

 

4 自動(dòng)變速控制系統(tǒng)軟件測(cè)試過(guò)程

 

自動(dòng)變速控制系統(tǒng)軟件測(cè)試過(guò)程分三步進(jìn)行:?jiǎn)卧獪y(cè)試、集成測(cè)試和確認(rèn)測(cè)試。

 

4.1 單元測(cè)試(Unit Test

 

又稱模塊測(cè)試,是針對(duì)自動(dòng)變速控制系統(tǒng)軟件實(shí)現(xiàn)的最小單位――程序模塊進(jìn)行檢查,以發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種錯(cuò)誤。單元測(cè)試在模塊編碼階段進(jìn)行,各模塊的測(cè)試可平行、單獨(dú)地進(jìn)行。一般使用白盒測(cè)試法。

 

單元測(cè)試的內(nèi)容主要包括五個(gè)方面:模塊接口、局部數(shù)據(jù)結(jié)構(gòu)、重要執(zhí)行路徑、錯(cuò)誤處理及邊界測(cè)試。由于自動(dòng)變速控制系統(tǒng)軟件的模塊本身并非獨(dú)立的執(zhí)行單位,為完成單元測(cè)試,往往需要編寫(xiě)一個(gè)驅(qū)動(dòng)模塊(Driver)和若干樁模塊(Stub),前者相當(dāng)于被測(cè)模塊的主程序,后者則用來(lái)代替被測(cè)模塊所調(diào)用的模塊。模塊的內(nèi)聚性決定了單元測(cè)試的工作量。

 

4.2 集成測(cè)試(Integrated Test

 

又稱組裝測(cè)試或整體測(cè)試。在單元測(cè)試的基礎(chǔ)上,將各模塊聯(lián)接起來(lái)進(jìn)行測(cè)試,發(fā)現(xiàn)并排除在模塊連接中可能出現(xiàn)的問(wèn)題。這些問(wèn)題可能是:穿越模塊接口數(shù)據(jù)丟失、一個(gè)模塊功能對(duì)另一模塊功能產(chǎn)生負(fù)面影響、各子功能組合后不能完成預(yù)期的父功能、全局?jǐn)?shù)據(jù)結(jié)構(gòu)的使用存在問(wèn)題等。

 

選擇什么方式將模塊組裝成一個(gè)系統(tǒng),直接影響到模塊測(cè)試用例設(shè)計(jì)、模塊編號(hào)及測(cè)試順序、生成測(cè)試用例的費(fèi)用及調(diào)試費(fèi)用等。常用的組裝方式有兩種:一次性組裝和漸增式組裝。

 

一次性組裝首先對(duì)每個(gè)模塊分別進(jìn)行單元測(cè)試,然后再把所有模塊組裝在一起進(jìn)行測(cè)試。這種方法試圖在分別完成單元測(cè)試的基礎(chǔ)上將所有模塊連接起來(lái)進(jìn)行測(cè)試,但實(shí)際上由于不可避免地涉及模塊間接口和全局?jǐn)?shù)據(jù)結(jié)構(gòu)的問(wèn)題,一次運(yùn)行成功的可能性并不大,結(jié)果往往是發(fā)現(xiàn)有錯(cuò)誤時(shí)查錯(cuò)和糾錯(cuò)都很困難。

 

對(duì)自動(dòng)變速控制系統(tǒng)軟件的組裝方式應(yīng)采用漸增式組裝。即先對(duì)一個(gè)個(gè)模塊獨(dú)立進(jìn)行測(cè)試,然后將這些模塊逐步組裝成較大的系統(tǒng),在組裝過(guò)程中邊連接邊測(cè)試,以發(fā)現(xiàn)模塊連接過(guò)程中出現(xiàn)的問(wèn)題,在規(guī)模漸增的過(guò)程中完成自動(dòng)變速控制系統(tǒng)軟件的組裝。我們?cè)趯?shí)際中采用先自底向上( Bottom-up)將關(guān)鍵模塊組裝成功能比較完整且相對(duì)獨(dú)立的子系統(tǒng)、然后再由主模塊開(kāi)始進(jìn)行自頂向下(Top-down)組裝的混合漸增式組裝測(cè)試方式,其優(yōu)點(diǎn)是在減少樁模塊的同時(shí),能及時(shí)發(fā)現(xiàn)主要控制方面的問(wèn)題。

 

4.3 確認(rèn)測(cè)試(Validation Test

 

自動(dòng)變速控制系統(tǒng)軟件確認(rèn)測(cè)試的任務(wù)是測(cè)試軟件的功能、性能及其它特性是否達(dá)到用戶要求,是對(duì)軟件綜合特性的全面測(cè)試。在這一階段要完成有效性測(cè)試、軟件配置復(fù)查、a 測(cè)試、b 測(cè)試及驗(yàn)收測(cè)試。

 

5 結(jié)束語(yǔ)

 

本文結(jié)合自動(dòng)變速控制系統(tǒng)軟件開(kāi)發(fā)實(shí)踐,對(duì)自動(dòng)變速控制系統(tǒng)軟件測(cè)試技術(shù)基本概念、測(cè)試方法和測(cè)試過(guò)程進(jìn)行了較為全面的介紹。軟件測(cè)試技術(shù)的研究與應(yīng)用,有效地保證了自動(dòng)變速控制系統(tǒng)軟件質(zhì)量,對(duì)其它汽車電控系統(tǒng)軟件開(kāi)發(fā)也有一定的借鑒意義。

(轉(zhuǎn)載)

標(biāo)簽:自動(dòng)變速控制系統(tǒng) 軟件測(cè)試技術(shù) 我要反饋 
泰科電子ECK、ECP系列高壓直流接觸器白皮書(shū)下載
優(yōu)傲機(jī)器人下載中心
億萬(wàn)克
專題報(bào)道