陳群 王懷杰
摘要:論文介紹了WOSA/XFS標(biāo)準(zhǔn)的概念,WOSA/XFS標(biāo)準(zhǔn)的體系結(jié)構(gòu),為測試平臺的設(shè)計(jì)與實(shí)現(xiàn)奠定了技術(shù)基礎(chǔ);在對平臺進(jìn)行了詳細(xì)的需求分析的基礎(chǔ)上,確定了平臺的整體框架,完成了用戶界面的設(shè)計(jì),解決了數(shù)據(jù)傳輸?shù)膯栴}。最后實(shí)現(xiàn)了測試平臺,在真實(shí)的測試環(huán)境下表明,該文設(shè)計(jì)的基于WOSA_XFS標(biāo)準(zhǔn)的金融設(shè)備自動化測試平臺的可用性,有效性達(dá)到了設(shè)計(jì)時的要求。
關(guān)鍵詞:WOSA/XFS標(biāo)準(zhǔn);自動化測試平臺;金融設(shè)備;測試軟件
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)06-0059-03
The Design and Implementation of the Test Platform of Financial Equipment Based on WOSA_XFS
CHEN Qun1, WANG Huai-jie2
(1.College of Computer Science and Technology, University of South China,Hengyang 421001, China; 2.Hunan Sunny Technology Engineering Co.,Ltd,Hengyang 421001, China)
Abstract: This paper introduces the concept of WOSA/XFS standard, the system structure of WOSA/XFS standard, the design and implementation of the testing platform. On the basis of a detailed analysis of the platform, the whole frame of the platform is defined, and the design of the user interface is finished. Finally, the test platform is implemented in the real test environment. The paper designs the availability of the WOSA_XFS standard.
Key words: WOSA_XFS standard;test platform;financial equipment;software testing
隨著我國金融電子化建設(shè)的發(fā)展,有越來越多的銀行機(jī)構(gòu)希望在購買金融外設(shè)(VTM)的時候能夠購買各個廠商的硬件,然后自己組裝成一臺完整的VTM機(jī),這樣就可以避免對單一廠商的依賴,而且有更多的選擇。為了實(shí)現(xiàn)不同供應(yīng)廠商提供的設(shè)備之間的兼容,從而定制了一套適用于銀行系統(tǒng)的擴(kuò)展標(biāo)準(zhǔn)--WOSA/XFS標(biāo)準(zhǔn)。因此,設(shè)計(jì)一套金融設(shè)備自動化測試平臺是非常必要的。
1 相關(guān)技術(shù)介紹
1.1 WOSA概述
WOSA(全稱是Windows開放式系統(tǒng)體系結(jié)構(gòu) Windows Open System Architecture),是微軟公司提出的一種在Windows操作系統(tǒng)下的軟件架構(gòu) WOSA/XFS是基于WOSA的擴(kuò)展金融服務(wù)(Windows Open System Architecture/ Extensions for Financial Services),是微軟公司為全球金融行業(yè)軟件提出的一種軟件架構(gòu),它在WOSA軟件架構(gòu)的基礎(chǔ)上針對全球金融行業(yè)進(jìn)行了一些相應(yīng)的修改。
1.2 WOSA/XFS
XFS(Extensions for Financial Services)是1991年由Microsoft公司在WOSA軟件架構(gòu)的基礎(chǔ)上針對全球金融行業(yè)進(jìn)行的一些相應(yīng)擴(kuò)展修改的體系結(jié)構(gòu),是一個允許不同硬件供應(yīng)商的金融自助外圍設(shè)備連通性的標(biāo)準(zhǔn)。XFS是開發(fā)獨(dú)立硬件程序的開放式標(biāo)準(zhǔn)。XFS的要素包括,一套的API函數(shù)的定義,與之對應(yīng)的SPI函數(shù)定義,可以支持的服務(wù),和基于Win32的金融服務(wù)程序提供的通道。它定義一套標(biāo)準(zhǔn)的接口,可以使程序通過調(diào)用API函數(shù)與不同廠商提供的設(shè)備進(jìn)行通信。二者結(jié)合就稱之為WOSA/XFS。
2 平臺的設(shè)計(jì)與實(shí)現(xiàn)
2.1 平臺的設(shè)計(jì)
為了方便而透徹的描述平臺的設(shè)計(jì),將以邏輯架構(gòu)和物理架構(gòu)兩個維度來展開論述平臺的設(shè)計(jì)理念。
2.1.1 邏輯架構(gòu)
測試平臺邏輯架構(gòu)如下圖1所示。整個測試平臺是基于Windows操作系統(tǒng),邏輯上主要分為五大功能部分:測試用例管理、自動化測試總控、測試結(jié)果分析和評價、測試用例輔助開發(fā)、測試配套模擬服務(wù)。這五大功能部分各司其職,組成整個測試平臺解決方案。
從邏輯層次上看,測試平臺向測試用例提供服務(wù)。測試平臺統(tǒng)一管理測試用例,調(diào)度執(zhí)行測試用例,并提供測試用例所需要的資源。
自動化測試總控的軟件實(shí)體是測試執(zhí)行系統(tǒng)TestRunner,負(fù)責(zé)調(diào)度管理測試用例,向測試用例提供所需資源或接口。測試結(jié)果分析和評價的軟件實(shí)體是測試專家系統(tǒng)TestExpert,負(fù)責(zé)測試結(jié)果的展示、統(tǒng)計(jì)分析和評價;測試用例輔助開發(fā)預(yù)留到后期開發(fā),主要是輔助二次開發(fā)者更快速地開發(fā)測試用例;測試配套模擬服務(wù)的軟件實(shí)體在目前來說是模擬P和模擬SP。
2.1.2 物理架構(gòu)(或網(wǎng)絡(luò)架構(gòu))
如下圖2所示,7×24小時服務(wù)器中部署的有模擬P、測試專家系統(tǒng)TestExpert(測試資源管理和測試結(jié)果存儲分析等);測試虛擬機(jī)中部署的有測試執(zhí)行器TestRunner、模擬SP、測試腳本還有被測對象(例如:ATMC);而測試者工作站主要是查看測試報告和編寫自動化測試用例;
1)首先測試者開發(fā)自動化測試用例,將測試用例打包到7×24小時服務(wù)器;
2)當(dāng)需要測試時,測試者將測試包、被測對象(例如ATMC)、模擬SP、測試執(zhí)行系統(tǒng)TestRunner一同加載到測試虛擬機(jī);
3)在虛擬機(jī)上啟動執(zhí)行測試包,TestRunner被啟動運(yùn)行,當(dāng)需要銀行P端介入的測試由服務(wù)器端的模擬P替代;
4)TestRunner將正在測試用例產(chǎn)生的測試結(jié)果提交到TestExpert服務(wù)器系統(tǒng)中;
5)TestExpert服務(wù)器存儲測試結(jié)果并分析測試結(jié)果產(chǎn)生測試報告;
6)測試者、QA或其他用戶可以在自己的工作臺上通過瀏覽器查看測試報告和測試統(tǒng)計(jì)分析報告等數(shù)據(jù);
2.2 平臺的實(shí)現(xiàn)
平臺的核心實(shí)現(xiàn)基于兩個個領(lǐng)域的開發(fā),分別是自動化測試用例開發(fā),設(shè)備插件開發(fā)。
2.2.1 自動化測試用例開發(fā)
自動化測試用例就是自動化測試執(zhí)行的測試用例,其實(shí)體就是基于測試平臺中的TestRunner系統(tǒng)運(yùn)行的Python腳本,統(tǒng)稱為測試用例包。
自動化測試用例通過在被測對象(系統(tǒng))上模擬各類操作,同時對操作流程中的節(jié)點(diǎn)進(jìn)行監(jiān)控,對相關(guān)參數(shù)進(jìn)行讀取設(shè)定和判斷,從而實(shí)現(xiàn)對被測對象(系統(tǒng))進(jìn)行自動化檢查測試,并對測試結(jié)果進(jìn)行判斷、記錄保存。自動化測試用例的開發(fā)是根據(jù)測試用例對被測對象(系統(tǒng))整體流程的具體操作要求,選取操作過程中需要檢查和監(jiān)控的檢查點(diǎn),進(jìn)而實(shí)現(xiàn)對系統(tǒng)功能的測試。
測試用例的功能特點(diǎn):正常、異常測試全面覆蓋;可對各類命令(XFS)輸入、輸出參數(shù)做精確地設(shè)定和檢查;測試過程無人員干預(yù),排除人為因素測試結(jié)果真實(shí)可靠
以下這些接口函數(shù)是測試腳本的實(shí)現(xiàn)測試功能的基本:
1)TestPlugins.WaitForRequest('設(shè)備名', '命令名', 時間):此函數(shù)設(shè)置當(dāng)前等待(監(jiān)控)的響應(yīng)命令,設(shè)定時間內(nèi)成功命中后返回 0。
2)TestPlugins.WaitForResponse('設(shè)備名', '命令名', 時間):此函數(shù)設(shè)置當(dāng)前等待(監(jiān)控)的返回命令,設(shè)定時間內(nèi)成功命中后返回 0。
3)TestPlugins.GetValue('設(shè)備名', '命令名','輸入/出參數(shù)名'):此函數(shù)設(shè)置獲取命令的輸入/出參數(shù)值,獲取成功后返回 命令參數(shù)字符串。
4)TestPlugins.SetValue('設(shè)備名', '命令名','輸入/出參數(shù)名'):此函數(shù)設(shè)置設(shè)置命令的輸入/出參數(shù)值,設(shè)置成功后返回 0。
5)TestPlugins.AllowResponse('設(shè)備名', '命令名',True):此函數(shù)用在WaitForRequest后面時,代表允許設(shè)備響應(yīng)命令;用在WaitForResponse后面時,代表允許設(shè)備回應(yīng)命令(一般會有輸出參數(shù)返回)。
6)設(shè)備插件開發(fā)
設(shè)備插件是基于TestRunner系統(tǒng)的,為完成自動化測試用例與設(shè)備之間的數(shù)據(jù)交互而設(shè)計(jì)的。
7)設(shè)備插件
如下圖3所示,測試用例(Test Case)如果需要控制被測對象(Under Unit Test,UUT),并監(jiān)控被測對象(UUT)的輸入和輸出,則需要通過與被測對象交互的設(shè)備或模擬設(shè)備(Device/Sim Device)建立聯(lián)系。其中Plugins表示的就是設(shè)備插件,它幫助測試用例(Test Case)與被測對象(UUT)之間建立測試控制和測試數(shù)據(jù)傳輸,從而達(dá)到不修改被測對象就可以測試到被測對象的目的(黑盒測試)。TestRunner負(fù)責(zé)管理0至多個設(shè)備插件。
8)測試控制和測試數(shù)據(jù)傳輸
測試控制:同步測試時機(jī),修改、獲取測試數(shù)據(jù)或執(zhí)行測試所需的命令。例如:當(dāng)被測對象ATMC向SP讀卡設(shè)備讀取卡數(shù)據(jù)時(也就是設(shè)備接收數(shù)據(jù)時),測試用例希望獲得該時機(jī),以便作修改卡數(shù)據(jù)等其它測試控制操作。
測試數(shù)據(jù)傳輸:將測試時被測對象與設(shè)備之間產(chǎn)生的交互數(shù)據(jù)根據(jù)測試用例所需傳輸給測試用例。
9)插件工作原理
我們需要測試某個被測對象時(黑盒測試),一方面是檢測被測對象的輸出數(shù)據(jù)是否符合預(yù)期,另一方面是注入相應(yīng)的被測對象輸入數(shù)據(jù)檢查被測對象的響應(yīng)是否符合預(yù)期。那么測試用例在判斷輸出數(shù)據(jù)和注入輸入數(shù)據(jù)時如何與被測對象同步?測試用例又如何拿到輸出數(shù)據(jù)和注入輸入數(shù)據(jù)?這就需要插件與設(shè)備之間配合完成了。
TestRunner在開始測試之前將會調(diào)用插件的Init接口初始化插件,將在TestRunner主程序退出時調(diào)用插件的Exit接口?;谠摍C(jī)制,請作好插件的資源的管理。在開始測試之前,初始化插件之后,TestRunner需要通過GetDeviceName接口來獲取插件管理的設(shè)備名稱(設(shè)備名稱必須唯一)。
在測試執(zhí)行時,測試用例將通過TestRunner使用以下幾個接口:
1)WaitForRequest:測試用例等待被測對象(Under Unit Test)向設(shè)備請求時機(jī)(同步機(jī)制)
2)WaitForResponse:測試用例等待設(shè)備響應(yīng)被測對象(Under Unit Test)時機(jī)(同步機(jī)制)
3)AllowResponse:測試用例允許設(shè)備向被測對象回應(yīng)數(shù)據(jù)
4)SetValue:測試用例需要修改設(shè)備與被測對象之間的請求/響應(yīng)值
5)GetValue:測試用例需要獲取設(shè)備與被測對象之間的請求/響應(yīng)值
6)ExecuteCmd:測試用例執(zhí)行設(shè)備某條命令
3 平臺的運(yùn)行與測試
3.1 平臺的運(yùn)行
平臺的運(yùn)行主要分為三步: 提交或下載測試用例包;執(zhí)行自動化測試;生成或查看測試報告。其中第二步最為關(guān)鍵,我們把自動化測試平臺起名為蝴蝶(butterfly),旨在將所有蟲子(bug)變?yōu)槊利惖暮?。整個蝴蝶軟件由界面,后臺應(yīng)用兩部分組成。
3.1.1 蝴蝶界面
首先蝴蝶軟件的啟動必須驗(yàn)證測試人員的權(quán)限,方便日后管理與記錄,測試人員必須輸入賬號與密碼驗(yàn)證權(quán)限無誤后方可登錄蝴蝶軟件,而這條登錄操作也會上傳到專家系統(tǒng),與登錄者綁定的還有測試生成的錯誤日志,日志產(chǎn)生的時間等等,這些記錄也會一并上傳到專家系統(tǒng),為日后的錯誤分析,硬件分析打下了堅(jiān)實(shí)的基礎(chǔ)。權(quán)限通過后便可以進(jìn)入蝴蝶軟件,軟件具體樣式如圖4所示:
首先展示在頁面兩邊的為一邊四個對稱的按鈕,每個按鈕都具有不同的不可替代的功能,從測試操作順序上講:
1)選擇:選擇你要測試機(jī)型的測試用例。
2)啟動:啟動整個蝴蝶軟件進(jìn)行測試,代表一次測試的開始。
3)暫停:此按鈕是非必要按鈕,測試人員可以中途暫停/恢復(fù)測試,顯得更加人性化。
4)重測:當(dāng)一次測試檢測出硬件的錯誤而停止(NG)后,可以點(diǎn)擊重測按鈕進(jìn)行重新測試。
5)停止:測試人員可以手動停止(NG)測試。
6)提交:一次測試停止(NG)后,測試人員可以點(diǎn)擊提交按鈕將錯誤原因,日志等信息上傳到專家系統(tǒng)。
7)退出:退出蝴蝶軟件。
8)關(guān)于:蝴蝶開發(fā)人員和版本信息。
3.1.2 后臺應(yīng)用
蝴蝶軟件運(yùn)行的核心就是后臺應(yīng)用,主要后臺應(yīng)用有兩個:TestRunner,PackUpLoad。
1)TestRunner
TestRunner整合了所有測試所要用到的部分,包含了測試用例模塊管理和加載測試用例、初始化python環(huán)境、連接數(shù)據(jù)庫、定義測試記錄對象、初始化插件管理器、啟動執(zhí)行服務(wù)模塊、加載測試計(jì)劃、啟動測試用例包的測試,總共8個步驟。
2)PackUpLoad
PackUpLoad中文譯作日志打包上傳,主要在執(zhí)行TestRunner之后并檢測到了硬件的錯誤的情況下,蝴蝶軟件會調(diào)用PackUpLoad,將sp,TestRunner,Plugin的日志一并打包上傳到專家系統(tǒng)(TestExpert)。
3.2 平臺的測試
平臺的測試重要側(cè)重于四個方面:exception,fail,pass。Exception表示硬件有異常情況,但不妨礙測試,不代表測試失敗;fail表示硬件有故障直接導(dǎo)致測試結(jié)束;pass表示測試通過。
平臺在測試過程中發(fā)生的三種場景和相對應(yīng)的測試結(jié)果,其中詳細(xì)記錄了唯一確定一臺金融設(shè)備的SN序列號、測試場景(老化前,老化中,老化后)、開始時間、耗時、測試人、通過率、結(jié)果這七大信息。
關(guān)于測試平臺在去年(2014年)十一月初到十二月初大概一整個月的測試結(jié)果如下圖5所示:
4 結(jié)束語
隨著金融業(yè)務(wù)的電子化向更高,更深層次的發(fā)展,硬件設(shè)備日益發(fā)揮著重要的作用,同時計(jì)算機(jī)技術(shù)也在飛速的發(fā)展,各種技術(shù)推陳出新,也為金融設(shè)備的應(yīng)用提供了很好的平臺,WOSA/XFS標(biāo)準(zhǔn)的出現(xiàn)實(shí)現(xiàn)了多種硬件產(chǎn)品能夠兼容,更加迅速地適應(yīng)了金融市場的需求與變化。為了保證硬件設(shè)備良好 的運(yùn)行,解決模塊測試分散,測試力度不夠的問題。設(shè)計(jì)并實(shí)現(xiàn)這一測試平臺,為提高效率,降低測試成本,持續(xù)提升產(chǎn)品質(zhì)量保駕護(hù)航。
參考文獻(xiàn):
[1] WOSA/XFS的介紹[EB/OL].http://www.zahui.com/html/1/3403.html.
[2] 信懷義. 基于WOSA/XFS標(biāo)準(zhǔn)的ATMC軟件應(yīng)用[J]. 中國金融點(diǎn)腦, 2007(5): 64-65.
[3] 2004年中國銀行業(yè)信息化建設(shè)與IT應(yīng)用趨勢研究報告[M]. 北京: 中國計(jì)算機(jī)世界出版社, 2005: 3-7.
[4] Dela Rue, DIEBOL,IBM,NCR,SUN,WINCOR,NIXDORF.Financial Device interface for J/XFS Administrator Guide[Z], 2002: 20-154
[5] CEN Workgroup Agreement[Z]. Extensions for Financial Services (XFS)interface specification, 1998.
[6] 普拉達(dá). C++ Primer Plus[M]. 張海龍, 袁國忠, 譯.6版.北京: 人民郵電出版社, 2015.