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

圖1 自動化測試平臺的功能結構圖
3.2.1 測試用例管理模塊
測試用例管理模塊主要實現用例復用庫的構建、維護和使用,主要包括以下幾個方面的內容。
a)測試用例的添加功能
可以新建測試用例,編輯輸入用例基本要素:用例ID、版本號、測試需求、測試環境、測試類型、前提和約束條件等;為了提高用例的維護性和復用性,可以增添能夠反映測試用例特性的關鍵字信息 (如被測軟件的名稱、軟件所屬的領域和輸入參數等);并可以進行用例的保存。
b)測試用例的維護功能
對原用例的修改完善,對冗余不適用的用例可以進行刪除或標識無效。
c)測試用例的使用功能
可以通過不同的檢索條件 (如軟件名稱、測試需求、用例名稱和測試類型等) 進行用例的查詢,提取所需的測試用例進行復用。
d)測試用例操作權限設置
對測試用例的添加、刪除、查詢和提取權限進行嚴格的限制,例如:設置項目組長并讓其擁有用例操作的最高權限,而組員只有用例查詢和提取權限,防止各個組員對用例庫用例的隨意更改。
3.2.2 測試數據管理模塊
測試數據管理模塊主要負責機上常見飛行數據和地面維護控制命令的構建,計算機配備必要的數字板卡,可以進行數據的構造發送、接收顯示和記錄保存。
a)數據的構造和發送功能
可以支持機上典型的接口傳輸協議,包括TCP、UDP、串口、GJB 289A和HB 6096等協議;接口數據格式、內容和范圍可以靈活地配置;此外,還能夠設置數據發送頻率和發送次數等,可測試接口的邏輯、功能正確性、容錯性和吞吐能力等。例如:對于典型的串口、網口 (數據格式如表1-2所示),可對接口文件進行解析、設置數據域的長度和閾值范圍,設定數據域的初始值后,可通過復選自動累加、自動遞減和隨機生成等方式,平臺自動地遍歷與構造數據域正常值、邊界值和非法值的接口數據并進行發送。

表1 典型的串口數據格式

表2 典型的以太網數據格式
b)數據的接收功能
可以支持包括TCP、UDP、串口、GJB 289A和HB 6096等多種接口傳輸協議數據的接收和顯示,根據預先對接口文件的解析,判斷是否滿足接口協議要求。
c)測試數據的保存功能
可對發送和接收到的接口數據以規范化格式進行記錄,記錄數據作為數據文件保存或直接導入測試用例的執行記錄中,以用于后續結果的分析及統計中。
3.2.3 測試項目管理模塊
建立測試項目管理模塊,將軟件評測過程分為測試策劃、測試需求分析、測試設計、測試執行、回歸測試和測試總結6個階段,幫助測試人員按照實驗室質量管理體系要求,規范完成各個階段的測試工作,提升測試效率和文檔編制質量。
a)測試項目的管理功能
每一個項目可通過唯一的項目標識號進行區分,輸入表征項目特點的關鍵信息 (軟件名稱、版本號、研制單位和應用領域等)建立項目工程。平臺自動地將該項目劃分為6個階段,生成各個階段必需的工作產品,建立起各個階段活動的強制內聯關系,比如測試策劃前必須進行測試樣品的接收登記,測試設計前必須先進行需求分析。項目管理模塊還可鏈接訪問復用用例庫進行用例復用,進行測試數據統計、問題分類等,可以支持開展需求管理、配置管理、質量保證和風險分析等活動。
b)測試文檔的生成功能
選取實驗室規范制訂的各類測試文檔模板,通過平臺可生成模板化的軟件測試計劃、軟件測試說明、軟件測試記錄、軟件問題報告和軟件測試報告等測試技術文檔,各個文檔中需要的測試周期、測試環境、測試執行、測試結果和問題統計等信息均來自于平臺,從而保證了文檔描述的正確性和一致性。另外,還可以生成項目樣品管理、配置管理和質量保證等管理類表單,避免消耗額外的人工來手工填寫此類表單。
c)測試文件的交互功能
增加對測試文檔、測試記錄和結果的文件交付,如Word或Excel形式,可以提高項目的擴展性和共享性,方便項目組成員之間的工作交互。
基于測試復用技術的飛行記錄器軟件自動化測試平臺可以實現測試用例復用、測試過程管理和測試數據生成的一體化應用,借助該測試平臺可以有效地幫助測試人員按照規范化測試流程完成各個階段的測試工作,有效地縮短測試設計、測試執行和文檔編制的周期,提升測試質量。同時,該平臺還可以繼續擴展應用到其他專業領域軟件的測試中。因此,我們認為平臺的建立具有非常長遠的工程應用價值。