曹詠春,劉小君
摘要:該文主要針對(duì)金融行業(yè)軟件的測試現(xiàn)狀、測試方法及范圍、測試工具、以及測試模式進(jìn)行了分析,提出了適用于金融行業(yè)軟件測試的具體方案及實(shí)用技術(shù)。
關(guān)鍵詞:金融行業(yè)軟件測試;測試方法;測試技術(shù);測試模式
中圖分類號(hào):F831文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012) 02-0309-05
Software Testing Analysis Based on Financial Industry
CAO Yong-chun1, LIU Xiao-jun2
(1.Shenzhen YLINK Computing System Co., LTD, Shenzhen 518040, China; 2.College of Information and Communication Engineering, Guangzhou Maritime College, Guangzhou 510725, China)
Abstract: The article analyze on financial industry software test method and technology. and put forward specific solutions and practical technology in financial industry software testing.
Key words: financial industry software testing; test method; test technology; test pattern
隨著金融行業(yè)的業(yè)務(wù)不斷增加,金融交易模式的不斷變化,金融機(jī)構(gòu)對(duì)信息化的要求也越來越高,高質(zhì)量的金融軟件對(duì)于金融機(jī)構(gòu)來說顯得尤為重要。如何保證金融行業(yè)軟件的質(zhì)量,對(duì)金融行業(yè)軟件的測試人員來說,也提出了更高的要求[1][2]。以下針對(duì)金融行業(yè)軟件的測試做出了具體的分析:
1金融行業(yè)軟件特征分析
金融行業(yè)軟件系統(tǒng)具有集中度高、規(guī)模龐大、數(shù)量多、系統(tǒng)之間關(guān)聯(lián)性強(qiáng)、業(yè)務(wù)復(fù)雜、需求變化快等特點(diǎn),如何有效可行的實(shí)現(xiàn)軟件測試和軟件質(zhì)量控制,是對(duì)金融行業(yè)軟件測試人員提出的基本要求。
1.1金融行業(yè)軟件的業(yè)務(wù)特點(diǎn)
以金融行業(yè)軟件的典型代表銀行系統(tǒng)軟件為例:一般的銀行系統(tǒng)軟件都有一個(gè)核心系統(tǒng),核心系統(tǒng)主要涉及賬務(wù)的處理、清算、計(jì)息等。銀行的其它業(yè)務(wù)系統(tǒng)都會(huì)直接或間接的與核心系統(tǒng)進(jìn)行交互,主要處理一些涉及業(yè)務(wù)的流程以及系統(tǒng)管理、用戶管理等輔助功能。
此外,銀行的業(yè)務(wù)系統(tǒng)也種類繁多。比如:ACE/柜面、網(wǎng)上銀行、電話銀行、呼叫中心、信貸、資產(chǎn)托管、資金風(fēng)險(xiǎn)分析及風(fēng)險(xiǎn)控制系統(tǒng)、外匯買賣、基金、期貨、黃金、匯票、信用卡業(yè)務(wù)以及其它衍生業(yè)務(wù)等等。各個(gè)系統(tǒng)之間都可能有著密切的聯(lián)系,之間也會(huì)涉及到不同系統(tǒng)之間的接口。
因此,在測試過程中,除了對(duì)銀行的核心系統(tǒng)、業(yè)務(wù)系統(tǒng)進(jìn)行測試之外,還會(huì)涉及對(duì)接口的測試,而接口測試往往需要測試人員構(gòu)造一定的測試環(huán)境與測試數(shù)據(jù)來模擬各系統(tǒng)之間的交互。
1.2金融行業(yè)軟件的復(fù)雜性特點(diǎn)
就銀行系統(tǒng)軟件來說,本身就具有復(fù)雜性的特點(diǎn)。首先,銀行軟件具有不同的客戶群,如個(gè)人用戶、企業(yè)用戶、銀行內(nèi)部管理人員、業(yè)務(wù)人員等,因此,銀行軟件會(huì)有針對(duì)不同客戶所使用的版本或權(quán)限控制。此外,對(duì)于不同的服務(wù)方式,如柜臺(tái)、電話銀行、網(wǎng)上銀行等,都必須開發(fā)出不同的軟件。其次,銀行業(yè)務(wù)種類繁多,業(yè)務(wù)邏輯也非常復(fù)雜,對(duì)業(yè)務(wù)處理要求有很高的安全性和實(shí)時(shí)性,這些都要借助復(fù)雜的技術(shù)才能實(shí)現(xiàn)。因此,對(duì)于測試而言,軟件的復(fù)雜性也增加了測試的復(fù)雜性,對(duì)測試者來說要求有相當(dāng)?shù)慕?jīng)驗(yàn)和測試技術(shù)的支持。
另外,由于銀行業(yè)務(wù)的快速發(fā)展,當(dāng)舊的銀行軟件系統(tǒng)無法滿足業(yè)務(wù)處理的要求時(shí),就必須開發(fā)新的系統(tǒng),對(duì)于重新開發(fā)的新系統(tǒng)來說,舊系統(tǒng)的用戶數(shù)據(jù)必須保證能在新系統(tǒng)中正常使用,這就涉及到了新舊版本的數(shù)據(jù)移植問題,由于新舊系統(tǒng)之間數(shù)據(jù)字典存在差異,數(shù)據(jù)移植后能否正常,就需要對(duì)新舊數(shù)據(jù)進(jìn)行比對(duì)性測試。比對(duì)測試過程往往會(huì)涉及數(shù)據(jù)庫的應(yīng)用及比對(duì)工具的開發(fā)使用。
2金融行業(yè)軟件測試的現(xiàn)狀
根據(jù)某項(xiàng)調(diào)查,金融企業(yè)應(yīng)用系統(tǒng)的數(shù)量,中小銀行應(yīng)用系統(tǒng)數(shù)量普遍在100個(gè)左右,有一半銀行超過100個(gè)應(yīng)用系統(tǒng);雖然保險(xiǎn)行業(yè)應(yīng)用系統(tǒng)數(shù)量相對(duì)較少,但大部分保險(xiǎn)公司擁有10—50個(gè)應(yīng)用系統(tǒng);而且這些數(shù)量還有進(jìn)一步上漲的趨勢。調(diào)查數(shù)據(jù)也表明,金融行業(yè)IT部門的測試能力目前遠(yuǎn)遠(yuǎn)低于金融機(jī)構(gòu)對(duì)測試的要求[3]。即使是IT成熟度比較高的企業(yè),也難以覆蓋所有應(yīng)用系統(tǒng)的測試需求。金融企業(yè)的測試需要和信息科技部門的測試能力之間存在一定的差距。
3金融行業(yè)軟件測試方法及范圍分析
以下主要從功能測試、接口測試、數(shù)據(jù)移植測試、性能測試、安全性測試、風(fēng)險(xiǎn)監(jiān)控測試、文檔審核幾個(gè)方面來闡述金融行業(yè)軟件的測試方法及范圍[4]。以下劃分主要為了更清晰了解金融行業(yè)軟件測試所包含的范圍,本次分析不涉及白盒測試的內(nèi)容,主要針對(duì)涉及金融行業(yè)軟件業(yè)務(wù)特性的測試方法及范圍進(jìn)行闡述。
3.1功能測試
功能測試,主要是對(duì)軟件的功能進(jìn)行的驗(yàn)證,對(duì)于金融行業(yè)軟件來說,功能測試主要進(jìn)行以下功能的驗(yàn)證:
3.1.1業(yè)務(wù)驗(yàn)證測試
驗(yàn)證業(yè)務(wù)系統(tǒng)的功能是否正確實(shí)現(xiàn),測試其業(yè)務(wù)處理的準(zhǔn)確性。
1)業(yè)務(wù)流程測試
金融行業(yè)軟件測試首先關(guān)注的是業(yè)務(wù)的正確性,業(yè)務(wù)流程要合理、業(yè)務(wù)處理正確無誤,這些往往需要測試人員具備一定的金融軟件測試經(jīng)驗(yàn),才能更好的判斷業(yè)務(wù)流程設(shè)計(jì)是否合理,是否滿足客戶實(shí)際需求,以及業(yè)務(wù)流程處理過程中可能會(huì)涉及到的異常,通常通過正常案例和異常案例來驗(yàn)證業(yè)務(wù)流程的完整性和正確性。業(yè)務(wù)流程除了驗(yàn)證流程的正確性,通常對(duì)于涉及金額、資金、庫存等數(shù)據(jù)及業(yè)務(wù)流程中生成的記錄是否正確性也是測試的重點(diǎn)。
2)賬務(wù)處理
對(duì)于銀行來說,賬務(wù)處理為核心系統(tǒng)功能,也是這類軟件測試的重點(diǎn),賬務(wù)處理不僅涉及到資金,還與交易過程相關(guān),在測試系統(tǒng)對(duì)賬時(shí),必須對(duì)賬務(wù)處理流程有清晰的認(rèn)識(shí),對(duì)于賬務(wù)處理過程中賬務(wù)是否處理正確、是否出現(xiàn)錯(cuò)賬、是否需要進(jìn)行調(diào)賬等案例都要能進(jìn)行完整的案例設(shè)計(jì)來覆蓋測試點(diǎn),這一塊的測試一般需要有經(jīng)驗(yàn)的測試人員來進(jìn)行測試。
3)清算
銀行系統(tǒng)清算過程涉及的東西較多,如資金清算、庫存清算、計(jì)費(fèi)、計(jì)息、對(duì)賬、登帳、報(bào)表生成等復(fù)雜的過程,同時(shí)涉及的數(shù)據(jù)量也是非常的大,對(duì)于大型系統(tǒng)來說更是如此數(shù)據(jù)檢查的工作量也很大,同樣測試人員需要對(duì)清算的全過程有清晰的了解。
4)報(bào)表
對(duì)于銀行系統(tǒng)來說,報(bào)表是直接呈現(xiàn)給用戶最直接的結(jié)果,而對(duì)一個(gè)銀行系統(tǒng)來說,報(bào)表的數(shù)量一般都較龐大,很可能涉及到幾十張報(bào)表,因此對(duì)報(bào)表的檢查也是測試的重點(diǎn),這需要測試人員對(duì)銀行系統(tǒng)涉及的業(yè)務(wù)非常熟悉,能判斷報(bào)表的設(shè)計(jì)是否合理,報(bào)表數(shù)據(jù)是否正確等。
3.1.2客戶端測試
客戶端主要針對(duì)的是軟件界面功能的測試,根據(jù)功能劃分一般涉及以下幾類:
1)系統(tǒng)管理類
系統(tǒng)管理主要包括系統(tǒng)參數(shù)管理、用戶管理、角色管理、權(quán)限分配等,測試也包含相應(yīng)的業(yè)務(wù)邏輯及頁面測試,如查詢功能的測試、顯示風(fēng)格、驗(yàn)證客戶端頁面顯示數(shù)據(jù)是否正確等。
2)數(shù)據(jù)查詢類
主要驗(yàn)證數(shù)據(jù)查詢結(jié)果客戶端顯示是否正確。
3)其它涉及業(yè)務(wù)操作的功能界面
主要針對(duì)客戶端界面的錄入、查詢等功能進(jìn)行測試。
客戶端測試還會(huì)對(duì)界面的友好性、提示信息的合理性等進(jìn)行測試。
圖1是一個(gè)典型的功能測試的流程(一般功能測試覆蓋2-3輪測試及回歸測試):
圖1功能測試業(yè)務(wù)流程
3.2接口測試
對(duì)于銀行來說,通常行內(nèi)系統(tǒng)和與銀行外對(duì)接的系統(tǒng)是獨(dú)立開發(fā)的,行內(nèi)與行外系統(tǒng)采用的數(shù)據(jù)庫、通訊協(xié)議等都可能存在差異;并且對(duì)于銀行來說,還可能存在多個(gè)系統(tǒng),如:網(wǎng)上銀行、ACE/柜面、電話銀行、呼叫中心、信貸、資產(chǎn)托管、資金風(fēng)險(xiǎn)監(jiān)控分析系統(tǒng)等,并且各個(gè)系統(tǒng)之間可能關(guān)聯(lián)特別緊密,存在許多交互;因此,在測試中會(huì)涉及到相關(guān)系統(tǒng)接口的測試,這時(shí)通常需要構(gòu)造對(duì)接系統(tǒng)的測試環(huán)境、數(shù)據(jù)、業(yè)務(wù)等來模擬對(duì)接系統(tǒng)。
接口測試中,由于一方系統(tǒng)在測試過程中不可見,因此通常需要進(jìn)行環(huán)境的模擬,比如開發(fā)模擬軟件來模擬被測試系統(tǒng)與所交互的系統(tǒng)之間的通訊,并且在測試過程中通常需要測試人員自己組報(bào)文,通過模擬發(fā)送器收發(fā)發(fā)送報(bào)文來進(jìn)行測試,并通過后臺(tái)檢查報(bào)文轉(zhuǎn)換是否正確,通過數(shù)據(jù)庫來驗(yàn)證數(shù)據(jù)是否正確。通常來說,接口的測試測試人員主要跟后臺(tái)和數(shù)據(jù)庫打交道,而很少通過客戶端來操作,因此要求測試人員對(duì)數(shù)據(jù)庫知識(shí)、對(duì)應(yīng)的操作系統(tǒng)命令以及一些中間件具有一定的熟悉程度才能更好的進(jìn)行測試。
接口測試一般在功能測試階段完成,功能測試計(jì)劃中應(yīng)包含接口測試。
3.3數(shù)據(jù)移植測試
對(duì)于銀行來說,軟件產(chǎn)品經(jīng)常存在更新?lián)Q代或升級(jí)的情況,新系統(tǒng)的運(yùn)行環(huán)境和舊系統(tǒng)可能不一致。因此,為了保證系統(tǒng)的順利運(yùn)行,在新系統(tǒng)研發(fā)出來,準(zhǔn)備上線之前,需要把原來舊系統(tǒng)的客戶歷史數(shù)據(jù)移植過來,這就涉及到了數(shù)據(jù)移植問題。數(shù)據(jù)移植并不是簡單的數(shù)據(jù)遷移,因?yàn)樾屡f系統(tǒng)之間數(shù)據(jù)字典是不同的,為了保證移植結(jié)果的正確性,需要對(duì)新舊數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行比對(duì),通常可以通過人工方法或開發(fā)比對(duì)工具進(jìn)行比對(duì)。
舉例來說,舊系統(tǒng)采用的SQL SERVER的數(shù)據(jù)庫,而新系統(tǒng)采用ORACLE的數(shù)據(jù)庫;并且就系統(tǒng)可能存在50張數(shù)據(jù)表,新系統(tǒng)可能有200張數(shù)據(jù)表,而且,新系統(tǒng)的數(shù)據(jù)表結(jié)構(gòu)與舊系統(tǒng)可能完全不一樣,或者新舊系統(tǒng)的某張表可能對(duì)應(yīng)另一個(gè)系統(tǒng)的幾張表,這樣在數(shù)據(jù)移植測試中就要進(jìn)行幾方面的測試。比如,兩個(gè)數(shù)據(jù)庫可能存在有差異的地方,如數(shù)據(jù)類型不同,位數(shù)不同,在數(shù)據(jù)移植過程中對(duì)這部分就應(yīng)該做詳細(xì)的檢查。此外,表結(jié)構(gòu)的不同,在做數(shù)據(jù)移植檢查時(shí),需要獲得新舊版本的數(shù)據(jù)字典,并且對(duì)移植過來對(duì)應(yīng)的所有字段數(shù)據(jù)是否移植正確做檢查。
數(shù)據(jù)移植測試往往需要測試人員有足夠的耐心,能仔細(xì)進(jìn)行比對(duì),發(fā)現(xiàn)存在的問題。數(shù)據(jù)移植測試一般在功能測試階段完成,功能測試計(jì)劃中應(yīng)包含數(shù)據(jù)移植的測試。
3.4性能測試
性能測試的目的主要是驗(yàn)證業(yè)務(wù)系統(tǒng)是否滿足業(yè)務(wù)需求的多用戶并發(fā)操作,是否滿足業(yè)務(wù)性能需求,評(píng)估壓力解除后的自恢復(fù)能力,測試系統(tǒng)性能極限。
隨著金融行業(yè)軟件的規(guī)模越來越大、處理能力要求越來越高,進(jìn)行性能測試成為金融軟件測試中必不可少的一個(gè)環(huán)節(jié)。金融行業(yè)軟件一般在投入使用時(shí),需要接受大批量的業(yè)務(wù),并且對(duì)于業(yè)務(wù)的響應(yīng)處理時(shí)間也有很高的要求,這對(duì)于應(yīng)用程序本身、操作系統(tǒng)、中心數(shù)據(jù)庫服務(wù)器、中間件服務(wù)器以及網(wǎng)絡(luò)設(shè)備的承受力都是一個(gè)嚴(yán)峻的考驗(yàn)。任一個(gè)環(huán)節(jié)的問題都可能給用戶帶來巨大的商業(yè)損失。因此,如何保證在壓力情況下系統(tǒng)能正常運(yùn)行是金融行業(yè)軟件質(zhì)量保證的關(guān)鍵,同時(shí)也是測試人員最需關(guān)注的重點(diǎn)。
在性能測試過程中,通過性能測試工具來模擬與真實(shí)環(huán)境接近的情況,如通過測試程序在同一時(shí)間內(nèi)或某一段時(shí)間內(nèi),向系統(tǒng)發(fā)送預(yù)期數(shù)量的交易請(qǐng)求、測試系統(tǒng)在不同壓力情況下的效率,獲得一定的參數(shù)(如:(如內(nèi)存、CPU、緩存、系統(tǒng)響應(yīng)時(shí)間、最大吞吐率、事務(wù)平均處理時(shí)間),以及系統(tǒng)可以承受的壓力情況,進(jìn)行針對(duì)性的測試與結(jié)果分析,找到影響系統(tǒng)性能的瓶頸,以便對(duì)系統(tǒng)進(jìn)行優(yōu)化。
圖2是一個(gè)典型的性能測試的流程:
圖2性能測試業(yè)務(wù)流程
3.5安全性測試
安全性測試的目的主要是評(píng)估業(yè)務(wù)系統(tǒng)在網(wǎng)絡(luò)安全、主機(jī)安全、應(yīng)用安全、數(shù)據(jù)安全、運(yùn)行維護(hù)安全、電子認(rèn)證安全、業(yè)務(wù)連續(xù)性等方面的能力及管理措施,評(píng)價(jià)其業(yè)務(wù)系統(tǒng)的安全防控和安全管理水平。
對(duì)于金融行業(yè)軟件來說,安全性有著重大的意思,尤其對(duì)于網(wǎng)絡(luò)日益發(fā)達(dá)的今天,大量的金融類交易都是通過網(wǎng)絡(luò)來實(shí)現(xiàn),確保信息的安全,對(duì)安全性測試提出了更高的要求。如客戶數(shù)據(jù)的安全、資金的安全;銀行主機(jī)的安全,應(yīng)用程序的安全以及網(wǎng)絡(luò)安全,某一個(gè)環(huán)節(jié)出現(xiàn)問題都會(huì)給系統(tǒng)帶來巨大的風(fēng)險(xiǎn)。安全性測試主要檢查出軟件存在的安全隱患,確定安全等級(jí),以期得到整改。
通常用的安全性檢查手段及檢查點(diǎn)如:跨站攻擊、弱點(diǎn)攻擊、管理界面泄露、敏感信息泄露、跨站點(diǎn)請(qǐng)求偽造、惡意上傳等。
對(duì)于安全性測試來說,一般需要專業(yè)的工具作為支持,因?yàn)?,大多?shù)的安全性測試都會(huì)交給具有一定資質(zhì)的第三方評(píng)測機(jī)構(gòu)來進(jìn)行。
3.6風(fēng)險(xiǎn)監(jiān)控測試
主要目的是評(píng)估業(yè)務(wù)系統(tǒng)的風(fēng)險(xiǎn)監(jiān)控、預(yù)警和管理措施,測試其業(yè)務(wù)系統(tǒng)異常交易、大額交易、非法卡號(hào)交易、密碼錯(cuò)誤交易等風(fēng)險(xiǎn)的監(jiān)測和防范能力以及系統(tǒng)資源占用的監(jiān)控。
對(duì)于銀行的較大型系統(tǒng)來說,一般都會(huì)專門開發(fā)對(duì)應(yīng)的風(fēng)險(xiǎn)監(jiān)控系統(tǒng),一類風(fēng)險(xiǎn)監(jiān)控主要是對(duì)系統(tǒng)的交易、資金、等情況進(jìn)行監(jiān)控;另一類則是對(duì)主機(jī)資源情況進(jìn)行監(jiān)控,對(duì)于交易、資金類的風(fēng)險(xiǎn)監(jiān)控測試時(shí)主要是根據(jù)風(fēng)險(xiǎn)監(jiān)控需求來驗(yàn)證監(jiān)控結(jié)果是否符合需求描述;對(duì)于系統(tǒng)資源類的測試主要關(guān)注被監(jiān)控主機(jī)的資源占用情況是否合理。
風(fēng)險(xiǎn)監(jiān)控測試一般在功能測試階段或性能測試階段完成,功能測試或性能測試計(jì)劃中應(yīng)包含風(fēng)險(xiǎn)監(jiān)控的測試。
3.7文檔審核
目的主要是驗(yàn)證業(yè)務(wù)系統(tǒng)的用戶文檔、開發(fā)文檔、管理文檔等是否完整、有效、一致,是否符合相關(guān)標(biāo)準(zhǔn)并遵從更新控制和配置管理的要求。
文檔審核最基本的原則是軟件實(shí)現(xiàn)必須按照用戶需求文檔來進(jìn)行設(shè)計(jì)和實(shí)現(xiàn)。對(duì)于需求文檔審核來說,文檔必須覆蓋用戶所有需求點(diǎn)的描述;對(duì)于開發(fā)文檔,如概要設(shè)計(jì)文檔、數(shù)據(jù)庫設(shè)計(jì)文檔,設(shè)計(jì)和實(shí)現(xiàn)原則應(yīng)根據(jù)需求而定;此外各類管理文檔審核包括對(duì)項(xiàng)目工期的定義、項(xiàng)目人員的安排與任務(wù)分配、項(xiàng)目具體執(zhí)行的定義等等。在實(shí)際應(yīng)用中,由于用戶需求存在經(jīng)常性的變動(dòng)已經(jīng)增加,文檔也會(huì)存在相應(yīng)的變更,審核部分也包括對(duì)變更部分內(nèi)容的審核。但是目前金融行業(yè)軟件沒有一個(gè)嚴(yán)格的規(guī)范來進(jìn)行約束,因此,在文檔審核和實(shí)際的開發(fā)、測試操作環(huán)節(jié)都不能得到真正的落實(shí),對(duì)測試質(zhì)量環(huán)節(jié)也造成了相應(yīng)的影響。
3.8自動(dòng)化測試
現(xiàn)階段實(shí)施的自動(dòng)化測試與手工測試相比較,就是采用程序模擬手工測試的過程。在自動(dòng)化測試過程中,原來由手工控制的操作,現(xiàn)在由程序來控制,不再進(jìn)行手工干預(yù)[5]。自動(dòng)化測試主要用于功能測試,測試過程包括腳本的錄制、編寫及回放。
4金融行業(yè)軟件測試工具分析
金融行業(yè)軟件測試與其它應(yīng)用軟件測試流程基本一致,測試過程也涉及到一定的測試工具的使用,以下是金融行業(yè)軟件常用的軟件測試工具:
4.1黑盒測試工具
黑盒測試工具較多應(yīng)用的是自動(dòng)化測試工具QARun、QTP。
4.2性能測試工具
常用于金融系統(tǒng)軟件,適用于各種體系架構(gòu)的自動(dòng)負(fù)載測試工具Load Runner,它能預(yù)測系統(tǒng)行為并優(yōu)化系統(tǒng)性能。
對(duì)于性能測試來說,很多情況下,商業(yè)化的軟件不一定能滿足性能測試的需求,因此很多時(shí)候,需要開發(fā)一定的性能測試軟件來進(jìn)行針對(duì)性的測試。
4.3測試管理(測試流程管理、缺陷跟蹤管理、測試用例管理)工具
常用測試管理工具有:QC、TD、Clear Quest等,主要對(duì)測試計(jì)劃、測試用例、測試實(shí)施進(jìn)行管理,并進(jìn)行缺陷跟蹤管理。
5金融軟件測試模式分析
在金融機(jī)構(gòu)內(nèi)部組織業(yè)務(wù)測試之前,軟件必須經(jīng)過完整的系統(tǒng)測試、性能測試及安全性測試等才能交付金融機(jī)構(gòu)的業(yè)務(wù)部門進(jìn)行業(yè)務(wù)測試,測試模式可以有以下幾種模式:
5.1軟件開發(fā)方進(jìn)行的內(nèi)部系統(tǒng)測試、性能測試和安全性測試
開發(fā)方內(nèi)部進(jìn)行的測試與本文第三部分描述的軟件測試方法與范圍分析基本一致,下面主要就第三方測試的模式進(jìn)行分析。
5.2第三方測試機(jī)構(gòu)進(jìn)行的系統(tǒng)測試、性能測試和安全性測試
5.2.1第三方測試的優(yōu)點(diǎn)
第三方測試是指由獨(dú)立的軟件評(píng)測機(jī)構(gòu),根據(jù)項(xiàng)目管理方或用戶的委托,對(duì)被測軟件所進(jìn)行的科學(xué)、公正、客觀的綜合測試及評(píng)測活動(dòng)。在軟件工程的整個(gè)流程中,用戶對(duì)于軟件的質(zhì)量非常關(guān)注,但用戶本身沒有足夠的能力對(duì)軟件進(jìn)行測量的評(píng)估,這時(shí),就需要引入一個(gè)專業(yè)的評(píng)測機(jī)構(gòu),來對(duì)軟件的質(zhì)量進(jìn)行客觀的評(píng)測。第三方測試不同于軟件開發(fā)方的內(nèi)部測試或用戶的業(yè)務(wù)測試,強(qiáng)調(diào)由獨(dú)立于用戶和開發(fā)方的軟件評(píng)測機(jī)構(gòu)來承擔(dān)測試任務(wù),其目的在于保證測試的公正性與客觀性。第三方測試主要適用于對(duì)行業(yè)應(yīng)用軟件的測試及評(píng)估?;谝陨系谌綔y試的優(yōu)點(diǎn)及目前金融機(jī)構(gòu)測試人員與金融系統(tǒng)測試需求的不平衡性,目前,在金融行業(yè),專業(yè)評(píng)測機(jī)構(gòu)的第三方測試已經(jīng)顯示出諸多的優(yōu)勢,并得到越來越多的應(yīng)用,如在人行支付系統(tǒng)、商業(yè)銀行的一些應(yīng)用系統(tǒng),都曾引入第三方測試,并獲得了很好的效果。
相對(duì)于內(nèi)部測試來說,第三方測試具體有以下幾個(gè)優(yōu)點(diǎn):
1)隨著系統(tǒng)規(guī)模的日益龐大,軟件開發(fā)方很難投入足夠的人力、物力來參與測試工作。同時(shí),開發(fā)方也缺乏專業(yè)的測試工具以及經(jīng)驗(yàn)豐富的測試人員;只有第三方機(jī)構(gòu)才具有這樣的實(shí)力來完成測試任務(wù)。
2)第三方測試以合同的形式制約了測試方,保證了測試工作在一開始就具有客觀性。
3)第三方能夠通過系統(tǒng)需求來理解整個(gè)系統(tǒng),并從軟件工程的角度把握系統(tǒng),能專業(yè)、公正的評(píng)價(jià)系統(tǒng)中出現(xiàn)的問題。4)第三方機(jī)構(gòu)的權(quán)威性能更好的協(xié)調(diào)第三方、用戶以及開發(fā)方三者之間的關(guān)系。
5.2.2第三方測試的應(yīng)用
第三方測試機(jī)構(gòu)在測試技術(shù)方面一般具有行業(yè)內(nèi)較為專業(yè)的測試技術(shù)以及較為領(lǐng)先的測試技術(shù)、對(duì)于被測試項(xiàng)目來說具有技術(shù)測試層面的優(yōu)越性。但是另一方面,第三方測試的管理具有一定的復(fù)雜性,整個(gè)測試活動(dòng)的實(shí)施,不但需要較強(qiáng)能力的軟件測試人員,更需要得到用戶及軟件開發(fā)方的支持,才能確保測試人員對(duì)被測軟件有較深的認(rèn)識(shí),確保軟件測試的最終質(zhì)量。
此外第三方測試在整個(gè)測試活動(dòng)中,需要判斷開發(fā)方的軟件是否滿足用戶的需求,提交最終的測試報(bào)告,對(duì)所測試軟件給出公正、客觀的評(píng)測結(jié)果。
圖3是一個(gè)典型的金融軟件第三方測試的流程。
5.2.3第三方測試常用的測試工具
無論作為內(nèi)部測試或第三方測試,都必須采用一些自動(dòng)化的測試工具來進(jìn)行測試的管理和執(zhí)行。常用的第三方測試的測試工具主要包含以下幾類:
1)測試管理工具
如:Test Director、Quality Center、Clear Quest。
2)性能測試工具
如:Load Runner及第三方自己開發(fā)的性能測試工具。
3)自動(dòng)化測試工具
如:QARun、QTP
5.2.4第三方測試目前存在問題及發(fā)展前景
首先,第三方測試作為用戶和開發(fā)方都放心的測試或評(píng)測機(jī)構(gòu),在客戶需求日益增加的情況下,具有良好的發(fā)展前景。但是,第三方測試機(jī)構(gòu)所提供的是測試服務(wù),只涉及人工費(fèi)用,在競爭壓力比較大的環(huán)境下,價(jià)格戰(zhàn)不可避免。
6結(jié)束語
本文針對(duì)金融行業(yè)軟件的測試現(xiàn)狀、測試方法及范圍、測試工具、以及測試模式進(jìn)行了分析,提出了適用于金融行業(yè)軟件測試的具體方案及實(shí)用技術(shù)。但隨著新的設(shè)計(jì)模式及開發(fā)方法的不斷涌現(xiàn),現(xiàn)有的測試?yán)碚摷凹夹g(shù)必須做出與之相對(duì)應(yīng)的改進(jìn)才能滿足不斷變化的用戶需求。
參考文獻(xiàn):
[1]劉涌.提高金融軟件產(chǎn)品質(zhì)量催生獨(dú)立軟件測試隊(duì)伍[J].中國金融電腦,2006(12).
[2]林勇,侯曉勇,劉涌.國際一流金融軟件測試中心的內(nèi)涵和標(biāo)準(zhǔn)[J].中國金融電腦,2010(1).
[3]王曉燕.提升和規(guī)范金融行業(yè)軟件測試[J].金融電子化,2007(10).
[4]蔡立晶,李寬.金融軟件測試特性分析[J].中國金融電腦,2009(11).
[5]石紅霞,羅省賢.金融行業(yè)軟件測試交易鏈自動(dòng)化生成方法[J].電腦與電信,2011(2).
圖3金融軟件第三方測試業(yè)務(wù)流程