魏冬冬 李芳芳 葉竹 胡逸琳 劉葉盛
(上海航天電子技術研究所,上海 201109)
全數(shù)字仿真測試系統(tǒng)在軟件測評[1]工作中被廣泛應用,常見的全數(shù)字仿真測試系統(tǒng)包含被測件的仿真運行軟件、數(shù)據(jù)控制軟件、數(shù)據(jù)顯示軟件、外設仿真軟件等多個子軟件。全數(shù)字測試系統(tǒng)中各個子軟件之間通常以網(wǎng)絡通信、共享內存[2]等方式交互數(shù)據(jù),系統(tǒng)結構圖如圖1所示。
全數(shù)字測試系統(tǒng)執(zhí)行測試用例有一些共同特點,如都是在特定的時間與特定的軟件交互數(shù)據(jù),這為測試用例自動執(zhí)行軟件的研制提供了一些技術基礎。為了減少軟件測評人員執(zhí)行測試用例時的工作量,并能在被測件執(zhí)行異常時精確回放測試用例執(zhí)行過程,保證測評人員高效完成測試用例執(zhí)行,本課題開展了對測試用例自動執(zhí)行軟件的研制工作。
本課題設計的測試用例自動執(zhí)行軟件主要用于執(zhí)行和記錄全數(shù)字測試系統(tǒng)各個軟件之間的過程數(shù)據(jù)。該軟件與測試系統(tǒng)中包含的各個軟件都有數(shù)據(jù)交互,測評人員可以通過界面編輯統(tǒng)一格式的測試過程數(shù)據(jù),其中測試過程數(shù)據(jù)既包括各軟件間通用接口交互的數(shù)據(jù),也包括測評人員通過界面完成的操作數(shù)據(jù)。
測評人員在使用全數(shù)字測試系統(tǒng)執(zhí)行測試用例時,測試用例自動執(zhí)行軟件將當前執(zhí)行過程保存為測試過程數(shù)據(jù)文件,可以進行精確地完成測試過程回放。

圖1 全數(shù)字測試系統(tǒng)結構圖

圖2 自動執(zhí)行的全數(shù)字測試系統(tǒng)結構圖
將全數(shù)字測試系統(tǒng)中各軟件之間的通用接口交互數(shù)據(jù)和用戶操作數(shù)據(jù)抽象表示為統(tǒng)一格式的測試過程數(shù)據(jù)[3],對測試執(zhí)行過程進行定制執(zhí)行和記錄,是本課題的創(chuàng)新點和難點。設計完成后,全數(shù)字測試系統(tǒng)的系統(tǒng)結構如圖2所示。
為方便測試過程數(shù)據(jù)的傳送和編輯,本課題的測試過程數(shù)據(jù)格式設計如表1所示。其中數(shù)據(jù)幀時間記錄了當前測試過程數(shù)據(jù)的產生時刻,該時間沒有使用真實的物理時鐘,而是全數(shù)字測試系統(tǒng)的相對仿真時間。
課題對全數(shù)字測試系統(tǒng)各軟件進行修改,當測試系統(tǒng)各軟件產生測試過程數(shù)據(jù)時,數(shù)據(jù)源也會發(fā)送測試過程數(shù)據(jù)到測試用例自動執(zhí)行軟件。測試用例自動執(zhí)行軟件完成測試過程數(shù)據(jù)的記錄和保存。
全數(shù)字測試系統(tǒng)各測試過程數(shù)據(jù)主要包括通用接口交互數(shù)據(jù)和用戶操作數(shù)據(jù)。
全數(shù)字測試系統(tǒng)的通用接口交互數(shù)據(jù)主要包括數(shù)據(jù)控制軟件發(fā)送的控制數(shù)據(jù)、數(shù)據(jù)顯示軟件接收的顯示數(shù)據(jù)、外設仿真軟件的外設數(shù)據(jù)信息等。通用接口交互數(shù)據(jù)幀的數(shù)據(jù)區(qū)格式如表2所示。

表2 通用接口交互數(shù)據(jù)格式

表3 測試過程操作數(shù)據(jù)格式

表4 測試用例自動執(zhí)行軟件單個測試用例應用效果對比
全數(shù)字測試系統(tǒng)的用戶操作數(shù)據(jù)包括測評人員正常使用測試系統(tǒng)的動作,主要有:數(shù)據(jù)顯示軟件定制數(shù)據(jù)界面的操作、數(shù)據(jù)控制軟件加載配置文件的操作等。操作數(shù)據(jù)幀數(shù)據(jù)區(qū)格式如表3所示。
測評人員在測試用例自動執(zhí)行軟件將測試過程數(shù)據(jù)配置完成后,測試用例自動執(zhí)行軟件按照時間先后順序,將測試過程數(shù)據(jù)文件分別發(fā)送給相應的功能軟件。測試系統(tǒng)各軟件接收測試過程數(shù)據(jù),按照協(xié)議進行解析,完成測試過程數(shù)據(jù)中的指定操作。
本課題在Windows 7操作系統(tǒng)上,使用Visual Studio 2010作為開發(fā)工具,使用C#語言開發(fā)完成測試用例自動執(zhí)行軟件。軟件完成后,在某軟件配置項測試中應用,實際執(zhí)行單個測試用例的平均用時對比如表4所示。
使用測試用例自動執(zhí)行軟件后,測試過程執(zhí)行只需要用戶配置數(shù)據(jù),不必等待測試的中間結果;在測試用例運行結束后觀測測試結果,測試用例自動執(zhí)行軟件會比較預期輸出與實際輸出得到測試結果,測評人員不必手動驗證測試結果。測試用例自動執(zhí)行軟件將測試人員從測試用例執(zhí)行過程中解放了出來,測評人員工作時間節(jié)省了40%。
測試用例自動執(zhí)行軟件將原本需要測評人員進行的操作,抽象為通用的測試過程數(shù)據(jù)格式,并以軟件方式實現(xiàn)了測試用例的自動執(zhí)行和測試過程回放。測評人員在測試用例執(zhí)行過程中只需要配置測試過程數(shù)據(jù),無需全程參與到測試用例的執(zhí)行過程。測試用例自動執(zhí)行軟件的研制大大節(jié)約了測評人員的工作時間,對測試效率的提升具有重要意義。
[1]楊海成,喬永強,許勝,石柱.航天型號軟件工程[M].北京:中國宇航出版社,2009.
[2]Thomas H. Cormen,Charles E. Leiserson,Ronald L. Rivest,Clifford Stein著.潘金貴,顧鐵成,李成法等譯.算法導論[M].北京:機械工業(yè)出版社,2011.
[3]吳永輝,王建德.數(shù)據(jù)結構編程實驗[M].北京:機械工業(yè)出版社,2012.