劉艷萍 山東省城市商業(yè)銀行合作聯(lián)盟有限公司
軟件的建設(shè)和標(biāo)準(zhǔn)化進(jìn)程耗費(fèi)大量的資金和人力資源,然而軟件的風(fēng)險(xiǎn)又會(huì)影響使用者在現(xiàn)實(shí)世界中的信用和名譽(yù),近年來銀行業(yè)系統(tǒng)采用了大量的測(cè)試措施來應(yīng)對(duì)不同客戶的需求,采用共同的檢測(cè)方法,檢測(cè)不同客戶需求是不現(xiàn)實(shí)的,但是基于銀行系統(tǒng)的可靠性和穩(wěn)定性,開發(fā)人員和測(cè)試人員可以就不同領(lǐng)域內(nèi)銀行系統(tǒng)軟件測(cè)試的方法總結(jié)大的類別,從而能夠?yàn)椴煌瑘?chǎng)景應(yīng)用下的測(cè)試方法進(jìn)行歸類。
針對(duì)銀行系統(tǒng)軟件的測(cè)試主要是為了發(fā)現(xiàn)銀行系統(tǒng)運(yùn)營時(shí)的bug,也就是常見的程序執(zhí)行錯(cuò)誤,在軟件開發(fā)的初始階段,研究者發(fā)現(xiàn)了不同開發(fā)階段的組成部分,而對(duì)于軟件工程來說軟件測(cè)試是保證軟件質(zhì)量的關(guān)鍵環(huán)節(jié),也影響著軟件與社會(huì)需求之間的適應(yīng)關(guān)系。針對(duì)軟件的質(zhì)量評(píng)估,既要講究策略和方法,又要講究實(shí)效性。通常來說,對(duì)于銀行系統(tǒng)的軟件測(cè)試是驗(yàn)收的最后一個(gè)步驟,將直接影響到軟件的可交互性,是有組織、有步驟的工作活動(dòng)。
1.業(yè)務(wù)具有復(fù)雜性
對(duì)于銀行系統(tǒng)來說,由于其整個(gè)業(yè)務(wù)端均基于一個(gè)核心系統(tǒng)而存在,主要處理客戶的賬務(wù)、管理的各類系統(tǒng)都會(huì)直接或間接的與核心系統(tǒng)之間產(chǎn)生嚴(yán)密的交互性,核心系統(tǒng)將記錄客戶的賬務(wù)變化信息、各類大的資金往來,而銀行的業(yè)務(wù)比較復(fù)雜,既包括人民幣業(yè)務(wù),也有外幣業(yè)務(wù),業(yè)務(wù)涉及的支付款項(xiàng)和數(shù)目變動(dòng)比較頻繁,涉及的途徑有網(wǎng)上銀行、手機(jī)銀行、直銷銀行、微信銀行、柜面、ATM、呼叫中心、信貸中心、資產(chǎn)信托、資金風(fēng)險(xiǎn)評(píng)估系統(tǒng)等,另外還有一些新穎的中小企業(yè)金融業(yè)務(wù)和中間業(yè)務(wù),如外匯買賣業(yè)務(wù)、基金業(yè)務(wù)等,也與其核心系統(tǒng)緊密相關(guān)。
2.業(yè)務(wù)軟件具有復(fù)雜性
其業(yè)務(wù)相對(duì)比較復(fù)雜,因此軟件系統(tǒng)也具有復(fù)雜性,軟件系統(tǒng)與服務(wù)系統(tǒng)之間密切相關(guān),既要保證客戶的利益,同時(shí)又要進(jìn)行銀行自身的風(fēng)險(xiǎn)管控,而在賬務(wù)處理時(shí)有既定的規(guī)范賬務(wù)處理流程,也必須規(guī)范、精準(zhǔn),銀行的軟件系統(tǒng)開發(fā)使用的語言和技術(shù)也比較復(fù)雜,不同的系統(tǒng)甚至有不同的解決方案,擁有不同的語言和處理技術(shù),在銀行系統(tǒng)內(nèi)會(huì)有一些非常用的技術(shù)測(cè)試方式,多種多樣。
3.銀行系統(tǒng)所涉及的網(wǎng)絡(luò)和硬件環(huán)境相對(duì)復(fù)雜
銀行系統(tǒng)所面臨的性能考驗(yàn)比較嚴(yán)峻,因此大部分銀行系統(tǒng)都會(huì)采用集群技術(shù),這是測(cè)試的一個(gè)方面,同時(shí)也給測(cè)試帶來了難度。銀行的軟件系統(tǒng)部署到總行和分行要考慮二者之間的網(wǎng)絡(luò)互通關(guān)系,并涉及第三方的業(yè)務(wù)測(cè)試內(nèi)容,一般比較常見的問題是,銀聯(lián)和人民銀行在支付系統(tǒng)測(cè)試方面的關(guān)系,農(nóng)信系統(tǒng)以及清算系統(tǒng)普遍存在的代理業(yè)務(wù)關(guān)系等,銀行使用的中間服務(wù)器一般為CICS、MQ、Tuxdeo 等等,對(duì)于中間服務(wù)器的測(cè)試也是必不可少的實(shí)驗(yàn)環(huán)節(jié)。
銀行系統(tǒng)的特點(diǎn)決定了需要實(shí)現(xiàn)軟件的層次化測(cè)試,為了保證軟件的質(zhì)量和可靠性,應(yīng)該在軟件投入運(yùn)行之前,就針對(duì)其需求分析,設(shè)計(jì)規(guī)格說明和編碼進(jìn)行審查。軟件的層次化測(cè)試策略,是有規(guī)律的實(shí)現(xiàn)層次化測(cè)試模型,并圍繞軟件測(cè)試的基本步驟進(jìn)行其流程,主要包括單元測(cè)試、通用功能測(cè)試、業(yè)務(wù)流程測(cè)試、驗(yàn)收測(cè)試等。由于銀行系統(tǒng)內(nèi)針對(duì)于金融業(yè)務(wù)的分析,往往是數(shù)據(jù)處理的增加、變更、消除等,因此其多種多樣的操作,需要精準(zhǔn)的處理數(shù)據(jù),并且不能影響前臺(tái)的業(yè)務(wù)邏輯。實(shí)現(xiàn)軟件的層次化測(cè)試,可以根據(jù)以下原則,規(guī)范測(cè)試方法:
1.根據(jù)具體的銀行系統(tǒng)模塊進(jìn)行功能的抽象分層,實(shí)現(xiàn)各種功能的明確約定。
2.完善不同層次,功能靈活的標(biāo)準(zhǔn)化選擇。
3.不同的系統(tǒng)分類完成相應(yīng)層次的測(cè)試。
4.當(dāng)銀行系統(tǒng)高層為銀行系統(tǒng)下一層級(jí)提供服務(wù)時(shí),下層的服務(wù)實(shí)現(xiàn)應(yīng)該依據(jù)上層的測(cè)試結(jié)果。
5.針對(duì)于其層次的數(shù)目選擇要恰當(dāng),不必要設(shè)置太多的測(cè)試層次。
由于銀行系統(tǒng)幾乎全年在持續(xù)運(yùn)行,因此可以根據(jù)實(shí)際的系統(tǒng)運(yùn)行場(chǎng)景,展開不同時(shí)段的測(cè)試分類。比如在登錄場(chǎng)景之下模擬實(shí)際系統(tǒng)運(yùn)行,按照各個(gè)網(wǎng)點(diǎn)在集中時(shí)間段內(nèi)的簽到操作,計(jì)算其簽到數(shù)額、金額比數(shù),銀行系統(tǒng)CPU 的資源占用情況等。針對(duì)銀行系統(tǒng)的日高峰場(chǎng)景,分析業(yè)務(wù)比例組合情況,業(yè)務(wù)系統(tǒng)獲取情況。具體的測(cè)試方法大概有以下內(nèi)容:
1.發(fā)起服務(wù)器上使用gentest 命令,生成run 文件,使用檢測(cè)的參數(shù)并發(fā)度分析,針對(duì)不同情況進(jìn)行調(diào)整,該測(cè)試方法經(jīng)檢測(cè)優(yōu)于啟動(dòng)服務(wù)測(cè)試。
2.運(yùn)行run 文件,登陸使用nmon 或者topas 監(jiān)控應(yīng)用服務(wù)器對(duì)于其數(shù)據(jù)庫的交易發(fā)起數(shù)量進(jìn)行監(jiān)控,run 命令運(yùn)行100 秒,一般可以完成一次測(cè)試。
3.使用run 命令完成之后的系統(tǒng)程序報(bào)告分析數(shù)據(jù)。
4.篩選和剔除交易失敗場(chǎng)景比較多的次數(shù),反復(fù)測(cè)試服務(wù)器和SMT 指數(shù)及并發(fā)數(shù)最終得到最理想的TPS 和系統(tǒng)響應(yīng)時(shí)間優(yōu)化,系統(tǒng)內(nèi)的程序配置。
在銀行的實(shí)際工作中,由于多個(gè)完整的軟件測(cè)試項(xiàng)目有可能同時(shí)進(jìn)行,在工作之前一定要了解設(shè)計(jì)的需求,選擇不同的銀行系統(tǒng)軟件測(cè)試方法。這就要求系統(tǒng)的測(cè)試和研究人員必須透徹的分析及理解銀行系統(tǒng)不同場(chǎng)景的測(cè)試需求,首先設(shè)置測(cè)試目標(biāo),并在測(cè)試中不斷完善分析報(bào)告。針對(duì)于不同的銀行工作內(nèi)容和外包項(xiàng)目等有可能在出現(xiàn)測(cè)試bug 時(shí)難以馬上優(yōu)化,測(cè)試人員不能迫于壓力進(jìn)行強(qiáng)行修正,而是應(yīng)該發(fā)現(xiàn)軟件測(cè)試的實(shí)際反饋問題,找到不易暴露的錯(cuò)誤,并進(jìn)行多次測(cè)試實(shí)例后予以根本糾正,只有這樣的銀行系統(tǒng)測(cè)試才是真正有意義的測(cè)試。