符麗枚,于敏
(工業(yè)和信息化部電子第五研究所,廣東 廣州 510610)
飛行記錄器被俗稱為 “黑匣子”,具有強大的數(shù)據(jù)監(jiān)測和記錄功能;現(xiàn)代增強型飛行記錄器更是集數(shù)據(jù)采集、數(shù)據(jù)處理和數(shù)據(jù)記錄等功能于一身,可同時支持飛行參數(shù)、座艙聲音/機組通話和數(shù)據(jù)鏈等數(shù)據(jù)的記錄,供飛行實驗、事故分析之用,因此被廣泛地應(yīng)用于各類飛行器上。駐留在飛行記錄器內(nèi)的配套軟件,功能邏輯實現(xiàn)基本一致,但與外部交聯(lián)的接口種類繁多,交互的數(shù)據(jù)龐大。對于此類軟件的測試,如果繼續(xù)使用傳統(tǒng)的 “一型一套”的測試模式,設(shè)計測試用例和準(zhǔn)備測試數(shù)據(jù)的工作量將會很大,所需的時間也會很長,根本無法滿足日益增長的測試任務(wù)需求。如果能在這兩個方面進行有效的突破,將可以大大地減少測試該類軟件的工作量[1]。
本文對飛行記錄器軟件共性功能進行了分析提煉,針對影響該類軟件測試效率的主要問題進行了分析,以測試用例復(fù)用技術(shù)為基礎(chǔ),結(jié)合測試數(shù)據(jù)準(zhǔn)備、測試過程管理和測試文檔生產(chǎn)等自動化測試手段,研究了基于測試用例復(fù)用的軟件自動化測試平臺,有效地減少了測試用例設(shè)計、測試數(shù)據(jù)準(zhǔn)備和測試文檔編制的工作量,極大地提升了軟件測試的效率和質(zhì)量。
飛行記錄器軟件一般具備數(shù)據(jù)接收、數(shù)據(jù)分析處理、數(shù)據(jù)記錄存儲、數(shù)據(jù)轉(zhuǎn)發(fā)輸出和系統(tǒng)維護等共性功能[2],具體的內(nèi)容如下所述。
a)數(shù)據(jù)接收功能
按照約定的接收規(guī)則,從機上傳感器和其他系統(tǒng)采集數(shù)字化飛行數(shù)據(jù)和音頻模擬信號,數(shù)據(jù)形式多樣,數(shù)據(jù)量大,數(shù)字信號包含各種總線、串口、以太網(wǎng)和I/O數(shù)據(jù)等,接收數(shù)據(jù)的同時可對數(shù)據(jù)格式和范圍大小進行初步的驗證。
b)數(shù)據(jù)分析處理功能
對接收的數(shù)據(jù)進行分類打包,或提取相關(guān)的控制命令并執(zhí)行。
c)數(shù)據(jù)記錄存儲功能
對數(shù)據(jù)進行分區(qū)和按類存儲,并建立存儲索引號;當(dāng)存儲器的容量記滿時,可擦除舊的數(shù)據(jù),記錄最新的飛行信息;對不同類型的數(shù)據(jù)的記錄時長有不同的要求。
d)數(shù)據(jù)轉(zhuǎn)發(fā)輸出功能
向外輸出狀態(tài)信息和告警信息,常見的輸出形式為模擬信號、離散信號或數(shù)字信號。
e)系統(tǒng)維護功能
通過維護接口來實現(xiàn)記錄數(shù)據(jù)、狀態(tài)監(jiān)控、記錄數(shù)據(jù)下載、記錄器參數(shù)配置和查詢,以及系統(tǒng)自檢等地面維護功能。
以上功能的實現(xiàn),均可歸納為對外部接口數(shù)據(jù)的輸入/輸出處理,如若對接口每個字段的所有值分別單獨設(shè)計執(zhí)行用例,要達到100%測試覆蓋,工作量無疑是巨大的。如果對這些接口數(shù)據(jù)進行提煉,將對接口數(shù)據(jù)的處理設(shè)計成固定模式用例,即應(yīng)用測試復(fù)用理念設(shè)計用例來避免重復(fù)性的設(shè)計工作,并借助自動化數(shù)據(jù)生成手段來快速地生成各類接口測試數(shù)據(jù),這將會極大地提升該類軟件的測試效率。
測試復(fù)用技術(shù)的應(yīng)用可以有效地幫助測試人員減少軟件測試過程中的重復(fù)勞動,提高軟件測試的效率和質(zhì)量,但面向通用軟件的測試復(fù)用技術(shù),由于建立和維護復(fù)用庫的成本過大,見效周期長,導(dǎo)致該技術(shù)的實際應(yīng)用較少,所以開發(fā)特定專業(yè)領(lǐng)域的軟件測試復(fù)用技術(shù),進行折中取舍,將具有較高的實際工程應(yīng)用價值[3]。
測試復(fù)用技術(shù)的核心內(nèi)容在于建立測試用例復(fù)用庫,其基本的技術(shù)思路為:挖掘不同系統(tǒng)的共性需求→建立共性需求的測試復(fù)用用例→對測試復(fù)用用例進行管理→測試復(fù)用用例應(yīng)用[4]。建立飛行記錄器軟件測試用例復(fù)用庫的具體思路如下所述。
a)挖掘可復(fù)用的共性需求
將第1節(jié)中分析提取的飛行記錄器軟件共性功能,進一步地細(xì)化成最小的功能顆粒,例如:數(shù)據(jù)接收功能可以分割為總線、串口、以太網(wǎng)和I/O等數(shù)據(jù)接收功能,并對需求進行簡短、準(zhǔn)確的描述,以提高需求檢索的有效性。
b) 建立共性需求的測試復(fù)用用例
設(shè)計測試用例的基本要素,包括:用例ID、版本號、測試需求、測試環(huán)境、測試類型、前提、約束條件、輸入?yún)?shù)、操作步驟和期望結(jié)果,以及評估標(biāo)準(zhǔn)等[5]??蓮?fù)用測試用例的設(shè)計原則是使生成的測試用例可供多次使用,具有可復(fù)用的特性,因此,設(shè)計測試用例時需規(guī)范地描述基本要素的詳細(xì)內(nèi)容,確保用例的通用性。為了增強測試用例的復(fù)用性,可以增添反映測試用例特性的關(guān)鍵字信息,例如:被測軟件的名稱、軟件所屬的領(lǐng)域、測試需求和輸入?yún)?shù)等,形成以關(guān)鍵信息為索引的層次化用例存儲和顯示體系結(jié)構(gòu)。
測試用例越多,并不代表測試效果越好,成功的軟件測試案例是通過運行較少的用例來發(fā)現(xiàn)盡可能多的軟件缺陷的,所以要求測試人員提高所設(shè)計的測試用例的質(zhì)量,避免無意義的冗余設(shè)計。例如:飛行記錄器軟件在接收處理串口、網(wǎng)口數(shù)據(jù)時,測試人員可將每個字段的正常值、異常值和邊界值進行等價類劃分,針對每個等價類輸入建立通用的數(shù)據(jù)處理測試用例,可同時覆蓋功能和接口層面的測試需求,有效地提升測試效率,降低測試成本。
c)測試復(fù)用用例的管理
可復(fù)用測試用例的管理應(yīng)指定專門的管理員負(fù)責(zé),對復(fù)用庫的訪問權(quán)限進行嚴(yán)格的限制,防止非授權(quán)的用戶對復(fù)用庫進行非法操作,隨意篡改、破壞用例。用例設(shè)計者將設(shè)計好的用例經(jīng)評審后提交至管理員,管理員將測試用例進行歸類,錄入保存到測試用例復(fù)用庫中,并對測試用例進行維護;在維護中不斷地添加新的測試用例,更新舊的可完善的測試用例,刪除不適應(yīng)的測試用例。例如:由于軟件需求發(fā)生變更,或是隨著測試的深入,發(fā)現(xiàn)原先設(shè)計的測試用例不能完全滿足測試需求,就需要完善測試用例或新增測試用例,甚至是刪除不再適用的測試用例,讓測試用例的測試效果更能貼近客戶的需求;若需求變更,原功能被取消了,相應(yīng)的測試用例暫時失去了作用,但考慮到將來可能被其他人在相似的測試中借鑒或修改復(fù)用,這時可將與該功能相對應(yīng)的測試用例標(biāo)記為無效。
d)測試復(fù)用用例的應(yīng)用
建立好測試用例復(fù)用庫后,測試人員可以通過軟件名稱、軟件需求和主要參數(shù)等關(guān)鍵信息來檢索測試用例復(fù)用庫,查找可以借鑒和復(fù)用的測試用例。
為了突破飛行記錄器軟件測試效率的瓶頸,實現(xiàn)高效、快速測試的目標(biāo),進行自動化測試平臺設(shè)計時應(yīng)考慮以下幾個方面的要求。
a)測試用例的可復(fù)用性
飛行記錄器軟件自動化測試平臺能夠建立測試用例復(fù)用庫,不同型號的同類型軟件測試用例能夠進行復(fù)用借鑒。
b)測試數(shù)據(jù)的自動生成功能
該平臺能夠模擬仿真通用的網(wǎng)口、串口和總線等接口數(shù)據(jù),當(dāng)接口傳輸協(xié)議、接口數(shù)據(jù)格式或數(shù)據(jù)內(nèi)容等發(fā)生改變時,只需修改配置信息即可完成新的測試數(shù)據(jù)仿真。
c)數(shù)據(jù)保存和文檔生成功能
該平臺能夠有效地保存測試過程記錄,進行測試數(shù)據(jù)統(tǒng)計;并可輔助生成各個階段的測試文檔,例如:軟件測試計劃、軟件測試說明、軟件測試記錄和軟件測試報告等。
d)操縱界面的簡易化
界面直觀、易操作,測試人員能夠根據(jù)軟件界面的工作向?qū)?,按照測試流程來完成各個階段的測試工作。
e)信息交互的便捷性
測試人員可以根據(jù)需要,通過平臺進行測試數(shù)據(jù)、文檔的導(dǎo)入與導(dǎo)出,實現(xiàn)信息的交互與共享。
根據(jù)自動化測試平臺的設(shè)計要求,可將該平臺劃分為3個大的功能模塊,即:測試用例管理模塊、測試數(shù)據(jù)管理模塊和測試項目管理模塊。其功能結(jié)構(gòu)如圖1所示。
圖1 自動化測試平臺的功能結(jié)構(gòu)圖
3.2.1 測試用例管理模塊
測試用例管理模塊主要實現(xiàn)用例復(fù)用庫的構(gòu)建、維護和使用,主要包括以下幾個方面的內(nèi)容。
a)測試用例的添加功能
可以新建測試用例,編輯輸入用例基本要素:用例ID、版本號、測試需求、測試環(huán)境、測試類型、前提和約束條件等;為了提高用例的維護性和復(fù)用性,可以增添能夠反映測試用例特性的關(guān)鍵字信息 (如被測軟件的名稱、軟件所屬的領(lǐng)域和輸入?yún)?shù)等);并可以進行用例的保存。
b)測試用例的維護功能
對原用例的修改完善,對冗余不適用的用例可以進行刪除或標(biāo)識無效。
c)測試用例的使用功能
可以通過不同的檢索條件 (如軟件名稱、測試需求、用例名稱和測試類型等) 進行用例的查詢,提取所需的測試用例進行復(fù)用。
d)測試用例操作權(quán)限設(shè)置
對測試用例的添加、刪除、查詢和提取權(quán)限進行嚴(yán)格的限制,例如:設(shè)置項目組長并讓其擁有用例操作的最高權(quán)限,而組員只有用例查詢和提取權(quán)限,防止各個組員對用例庫用例的隨意更改。
3.2.2 測試數(shù)據(jù)管理模塊
測試數(shù)據(jù)管理模塊主要負(fù)責(zé)機上常見飛行數(shù)據(jù)和地面維護控制命令的構(gòu)建,計算機配備必要的數(shù)字板卡,可以進行數(shù)據(jù)的構(gòu)造發(fā)送、接收顯示和記錄保存。
a)數(shù)據(jù)的構(gòu)造和發(fā)送功能
可以支持機上典型的接口傳輸協(xié)議,包括TCP、UDP、串口、GJB 289A和HB 6096等協(xié)議;接口數(shù)據(jù)格式、內(nèi)容和范圍可以靈活地配置;此外,還能夠設(shè)置數(shù)據(jù)發(fā)送頻率和發(fā)送次數(shù)等,可測試接口的邏輯、功能正確性、容錯性和吞吐能力等。例如:對于典型的串口、網(wǎng)口 (數(shù)據(jù)格式如表1-2所示),可對接口文件進行解析、設(shè)置數(shù)據(jù)域的長度和閾值范圍,設(shè)定數(shù)據(jù)域的初始值后,可通過復(fù)選自動累加、自動遞減和隨機生成等方式,平臺自動地遍歷與構(gòu)造數(shù)據(jù)域正常值、邊界值和非法值的接口數(shù)據(jù)并進行發(fā)送。
表1 典型的串口數(shù)據(jù)格式
表2 典型的以太網(wǎng)數(shù)據(jù)格式
b)數(shù)據(jù)的接收功能
可以支持包括TCP、UDP、串口、GJB 289A和HB 6096等多種接口傳輸協(xié)議數(shù)據(jù)的接收和顯示,根據(jù)預(yù)先對接口文件的解析,判斷是否滿足接口協(xié)議要求。
c)測試數(shù)據(jù)的保存功能
可對發(fā)送和接收到的接口數(shù)據(jù)以規(guī)范化格式進行記錄,記錄數(shù)據(jù)作為數(shù)據(jù)文件保存或直接導(dǎo)入測試用例的執(zhí)行記錄中,以用于后續(xù)結(jié)果的分析及統(tǒng)計中。
3.2.3 測試項目管理模塊
建立測試項目管理模塊,將軟件評測過程分為測試策劃、測試需求分析、測試設(shè)計、測試執(zhí)行、回歸測試和測試總結(jié)6個階段,幫助測試人員按照實驗室質(zhì)量管理體系要求,規(guī)范完成各個階段的測試工作,提升測試效率和文檔編制質(zhì)量。
a)測試項目的管理功能
每一個項目可通過唯一的項目標(biāo)識號進行區(qū)分,輸入表征項目特點的關(guān)鍵信息 (軟件名稱、版本號、研制單位和應(yīng)用領(lǐng)域等)建立項目工程。平臺自動地將該項目劃分為6個階段,生成各個階段必需的工作產(chǎn)品,建立起各個階段活動的強制內(nèi)聯(lián)關(guān)系,比如測試策劃前必須進行測試樣品的接收登記,測試設(shè)計前必須先進行需求分析。項目管理模塊還可鏈接訪問復(fù)用用例庫進行用例復(fù)用,進行測試數(shù)據(jù)統(tǒng)計、問題分類等,可以支持開展需求管理、配置管理、質(zhì)量保證和風(fēng)險分析等活動。
b)測試文檔的生成功能
選取實驗室規(guī)范制訂的各類測試文檔模板,通過平臺可生成模板化的軟件測試計劃、軟件測試說明、軟件測試記錄、軟件問題報告和軟件測試報告等測試技術(shù)文檔,各個文檔中需要的測試周期、測試環(huán)境、測試執(zhí)行、測試結(jié)果和問題統(tǒng)計等信息均來自于平臺,從而保證了文檔描述的正確性和一致性。另外,還可以生成項目樣品管理、配置管理和質(zhì)量保證等管理類表單,避免消耗額外的人工來手工填寫此類表單。
c)測試文件的交互功能
增加對測試文檔、測試記錄和結(jié)果的文件交付,如Word或Excel形式,可以提高項目的擴展性和共享性,方便項目組成員之間的工作交互。
基于測試復(fù)用技術(shù)的飛行記錄器軟件自動化測試平臺可以實現(xiàn)測試用例復(fù)用、測試過程管理和測試數(shù)據(jù)生成的一體化應(yīng)用,借助該測試平臺可以有效地幫助測試人員按照規(guī)范化測試流程完成各個階段的測試工作,有效地縮短測試設(shè)計、測試執(zhí)行和文檔編制的周期,提升測試質(zhì)量。同時,該平臺還可以繼續(xù)擴展應(yīng)用到其他專業(yè)領(lǐng)域軟件的測試中。因此,我們認(rèn)為平臺的建立具有非常長遠的工程應(yīng)用價值。