[摘 要]隨著上海地鐵線網規模的擴大,上海測試中心需要承接的測試任務越來越重,使用原來的人工測試和測試管理模式,導致測試中心的人力成本和運營成本不斷加大。文章以測試中心平臺管理軟件的設計方案為例,通過管理軟件對測試工作進行全生命周期管理,增加自動測試腳本和自動測試報告生成,減輕測試人員的工作壓力,提高測試工作的效率,以供參考和借鑒。
[關鍵詞]人工測試;全生命周期管理;自動測試
中圖分類號:TP3;U28 文獻標識碼:A 文章編號:1674-1722(2024)11-0010-03
截至2023年底,上海市已開通地鐵線路18條,自動售檢票系統已開通終端設備共計15163臺,其中包括自動售票機3464臺、自動檢票機10236臺、半自動售票機1463臺,另有車站計算機461臺,線網規模巨大。在新線入網時,需要對新制造的系統和設備以及將接入網絡化運營的系統和設備進行功能測試和性能測試,對待接入系統進行兼容性測試。測試中心的功能、性能測試以及兼容性測試內容包括設備硬件技術規格,設備功能、設備性能指標是否滿足用戶需求。同時,測試中心需要測試設備和系統的軟件接口,檢驗設備和系統軟件是否依據《上海城市軌道交通自動售檢票系統專用技術說明》的要求,確保設備和系統能夠正確地接入原有的自動售檢票系統。在傳統的測試模式下,相關的測試工作由測試中心派遣專業測試人員編制測試案例,按照測試案例逐項測試,手工記錄測試結果。對于接口測試,測試人員需要借助多種專用的測試工具,如門機構測試工具、車票發售回收機構測試工具和讀寫器測試工具等。測試人員操作測試工具,向上下級節點發送通信報文,人工檢查設備或系統的響應報文是否正確。往往完整地測試一個終端設備就需要2周或者更長的時間。測試完成后還需花費大約一周時間整理、統計和分析測試數據,編制測試報告。因此,一套設備功能性能測試及接口測試需要花費的時間基本上為1個月左右。新線上線時,一般會有5—7套新設備外加車站計算機需要測試。在傳統模式下,測試一套設備一般需要兩位測試人員。因此,新線上線之前的測試工作壓力極大。同時,測試工具一般為部件廠商提供,測試工具的輸入輸出都不是按照測試的要求設計和開發的,給操作帶來諸多不便。
為了解決上述問題,文章提出了測試中心管理軟件的設計方案,該軟件集成了從終端設備到SC的各類模擬器,支持自定義測試方案,系統根據測試方案內的各個測試案例按順序執行,支持導入測試報告模板,在測試結束后自動生成測試報告,形成測試方案庫。
文章研究的測試中心平臺軟件采用B/S架構,在邏輯上軟件采用分層結構設計,軟件分為數據層、基礎應用層和應用層。軟件的邏輯架構圖如圖1所示。

(一)數據層
數據層部署SQLite數據庫管理軟件,管理測試中心平臺軟件的各類數據。數據可分為測試用例庫、測試案例庫、測試執行日志、通信報文、測試報告模板和測試報告等。其中,測試用例庫保存系統內使用的所有測試用例。測試用例是系統中測試案例的最小可執行單位。測試用例數據包括了測試用例的名稱、測試用例的描述、測試用例的類型、所屬的設備類型、測試用例的輸入和輸出信息[ 1 ]。測試用例的輸入和輸出信息是該測試用例需要發送和接收的通信報文。該項數據包括通信報文的傳輸節點、通信報文的格式、通信報文應答判定條件等。測試案例由一個或者多個測試用例組成。測試案例數據包括測試案例的名稱、測試案例所屬的設備類型、測試案例的功能描述和測試案例的執行序列(隊列,保存測試案例中的各個測試用例)。同時,測試案例保存了待測試的系統的配置信息,包括系統內有哪些模擬器、模擬器的配置信息、模擬器和待測試部件/系統的通信配置等。測試案例、測試用例及測試方案的關系如圖2所示。

同時,測試中心平臺管理軟件在執行測試案例的過程中,系統會保存執行過程中的通信報文和執行日志,方便用戶在測試案例執行失敗時追溯問題。測試中心平臺軟件還支持用戶定制測試報告模板,系統按模板自動生成測試報告。系統在數據庫中保存測試報告模板數據和生成過的測試報告。
(二)基礎應用層
基礎應用層為測試中心平臺軟件提供基礎服務,包括各類模擬器、系統權限管理、系統配置、測試系統圖形化管理界面、測試報告模板和測試數據統計等。為方便用戶測試各類接口,測試中心平臺管理軟件包含了一系列的模擬器。模擬器的種類包括自動檢票機模擬器、自動售票機模擬器、半自動售票機模擬器、讀寫器、車站計算機模擬器和多線路中心模擬器等[ 2 ]。
當用戶需要測試自動售檢票系統中的任意設備或者任意模塊時,可以在圖形界面對模擬器進行配置,完成測試環境的配置。測試中心平臺軟件使用RBAC模型管理系統用戶的權限,對于不同的用戶角色配置不同的系統使用權限,然后給用戶分配一個或多個角色,完成權限配置。系統提供了圖形化管理界面,使用組態軟件的模式使得用戶方便地在圖形界面上通過拖拉就能構建起一個測試系統,通過對各個組件屬性的編輯,設定測試環境的一系列參數。
為了方便用戶,系統還提供了測試報告的定制功能,由用戶導入測試報告的模板,系統在測試完成后,依據測試報告模板生成相應的測試報告。
(三)應用層
應用層為測試中心平臺軟件的頂層管理應用,為用戶提供各類測試功能,包括測試系統構建、測試案例管理、測試用例管理、測試報告管理和測試數據分析等。
以下以用戶執行一個完整的測試案例的場景,描述測試平臺軟件的功能設計。
(一)建立測試系統模型
當用戶需要對某個部件、設備或者系統進行測試時,需對本次測試進行系統建模,構建要測試的系統。設定要測試的部件、設備或者系統的設備類型及其上下級節點的設備類型,設定要測試的部件、設備或者系統和上下級節點的配置參數[ 3 ]。為了方便用戶操作,測試中心平臺軟件以組態軟件的方式,給用戶提供了圖形界面操作方式,用戶通過拖拉系統預定義的模擬器圖標到界面上,將虛擬設備添加到測試系統中。由于需要測試待測試的部件、設備和系統與上下級節點的通信,因此,用戶需要在測試系統模型中定義待測試的部件、設備和系統與上下級節點的通信配置參數。用戶選擇連接線圖表將要測試的模塊和新建的模擬設備相連,定義被測試的系統和模擬設備之間的通信連接方式和通信參數。通信連接方式包括網絡通信、USB、串口通信連接等。由于目前上海市地鐵已經對門機構、車票發售/回收機構等設備的通信協議進行了標準化,因此,系統判斷被測試的系統的類型和與之連接的虛擬設備的類型后,自動匹配通信參數。對于還未標準化的部件、設備或者系統,用戶需自定義被測試系統和模擬設備之間的通信參數。如果使用串行通信,那么用戶需定義通信的波特率、起始字節、結束字節、轉義符、各個數據段的名稱和長度以及數據格式。以進行讀寫器測試為例,測試系統的模型如圖3所示。

(二)測試案例管理
在完成對測試系統的建模以后,用戶可以新建或者選擇已有的測試案例,將測試模型與測試案例綁定。測試中心平臺軟件根據《上海城市軌道交通自動售檢票系統專用技術說明》的規定預置了接口測試案例等多個案例。當用戶需要新增測試案例時,可以修改已有的測試案例,生成新的測試案例,或者從測試用例庫中選取系統預設的測試用例,重新建立新的測試案例。例如,當對自動檢票機進行測試時,用戶可以通過組合系統預置的自動檢票機接口測試案例和自動檢票機功能測試案例,組成一個新的測試案例。測試平臺軟件將自動檢票機接口測試案例和自動檢票機功能測試案例,按順序添加到新的測試案例中。同時,測試平臺軟件可以通過查詢條件,方便查找已有的或者預設的測試案例,用戶可對測試案例進行基本數據操作,包括新增、刪除、編輯和查找。
(三)測試用例管理
為了方便用戶操作和管理,測試平臺管理軟件將測試用例作為測試案例的最小組成單位,即一個測試案例由一個或者多個測試用例組成。系統最小的測試執行單元為測試用例。測試用例使用與測試案例相同的管理機制,用戶可對測試用例進行增刪改查等操作。為了減少用戶的操作不便,新建測試用例時,可以基于系統現有的預設測試用例或者從頭新建一個測試用例。一個測試用例包括以下的基本信息:測試用例的名稱、選擇測試用例所屬的設備/系統的類型、測試用例的描述信息、測試用例的輸入和輸出、測試用例通過的條件等。測試用例的輸入和輸出,指的是測試用例執行過程中需要進行的通信交互。其中,輸入為模擬設備發送給被測試設備的報文,輸出則為被測試的設備發送給與被測試設備相連接的模擬設備的報文。
在定義輸入和輸出的同時,還需定義輸入和輸出的節點信息,即為虛擬設備的IP地址。測試用例通過的條件是指,判定該測試用例執行成功的條件。以測試讀寫器初始化命令的測試用例為例,在這個測試用例中,要測試的設備是讀寫器,虛擬設備為上位機(可以是自動檢票機、自動售票機或者半自動售票機中的一種)。測試用例的輸入是由上位機發送給讀寫器的初始化命令,輸出則為讀寫器返回給上位機的響應數據。所有的設置設定完成后,系統執行該測試用例。在執行中,模擬上位機(終端設備的一種)給被測試的讀寫器發送初始化命令,收到數據后檢查相關的字段判斷讀寫器是否正確地執行了初始化命令。
(四)測試報告管理
作為一套全自動的測試管理軟件,測試中心平臺管理軟件應盡量減少用戶的操作和表單錄入工作。測試報告是測試案例執行中的最后一個步驟,作為測試數據展示和測試結果的證明文件,測試報告可能因為測試的項目的不同,或者委托客戶的需求而需要有不同的格式。因此,測試中心平臺管理軟件需提供測試報告模板功能,使用戶能夠自定義測試報告的格式和內容。同時,應提供測試報告模板工具,提供圖形化界面,使用戶通過拖拉等簡單的操作,就可以將要顯示的內容添加到測試報告中。在添加完內容后,用戶可以點擊要顯示的內容,在詳細信息中設定要顯示的數據的格式。在設置完以后,用戶可以點擊預覽按鈕,預覽要生成的測試報告,查看測試報告的格式是否滿足需求。
(五)測試數據分析
測試中心平臺管理軟件根據管理的需要,將需要統計測試案例的通過率和測試工作量等數據。在執行測試案例時,系統保存所有測試數據,以便統計測試數據,生成統計報表。可出具的報表包括測試通過率和按測試人員統計其進行的測試工作量等。其中,系統從測試人員登錄系統后,監測和統計測試人員的各類行為。當測試人員進入測試案例編輯功能或測試用例編輯功能后,開始統計該測試人員的工時。因此,統計得出測試人員的總工時,即:總工時=新建/編輯測試案例的時間+新建/編輯測試用例的時間(屬于前述測試案例的測試用例)+新建編輯測試報告模板的時間(屬于前述測試案例的測試報告)。
文章通過對現有的測試中心設備和系統功能測試、性能測試和系統兼容性測試的需求的詳細分析,設計了一套全新的測試中心平臺管理軟件。將原有的需要大量人力的可重復性測試工作升級為由系統自動執行的測試案例,減少了測試人員進行測試和記錄的時間,加快了測試進度。同時,這一研究對促進系統標準化有著積極意義,對測試工作的減員增效有很好的效果,能夠產生一定的社會效益。
[1]劉加森.軟件測試方法研究[J].中國科技投資,2016(32):279.
[2]袁海根,李紅麗.云計算下的軟件測試系統探討[J].佳木斯職業學院學報,2018(04):439.
[3]趙曉嵐.規范化軟件測試過程淺析[J].航天控制,2010(01):96-98.