0引言
2005年11月1日,日本東京證券交易所股票系統(tǒng)發(fā)生大規(guī)模系統(tǒng)故障,導(dǎo)致所有股票交易全面告停,短短2個小時造成了上千億的損失。這次事故的原因是不久前為增強(qiáng)系統(tǒng)處理能力而更新的交易軟件程序存在缺陷。雖然在工程師的緊急搶救下系統(tǒng)得以恢復(fù),但這次事件已經(jīng)在整個金融界留下了揮之不去的陰影。
為了使金融信息系統(tǒng)中使用的軟件更加符合安全需求,對原有軟件程序進(jìn)行改造是常有的事。而通過上述案例就不難看出,金融信息系統(tǒng)軟件程序的改動牽一發(fā)而動全身,可以直接導(dǎo)致重大安全風(fēng)險(xiǎn)、事故的發(fā)生。
1金融信息系統(tǒng)軟件改造存在風(fēng)險(xiǎn)
耗費(fèi)巨資進(jìn)行信息系統(tǒng)的建設(shè)和改造,其原本目的是為了提高工作效率,更好地促進(jìn)業(yè)務(wù)發(fā)展,創(chuàng)造更多的利潤,然而“制勝的法寶”有時卻會變成“要命的魔鬼”,如果軟件質(zhì)量不過關(guān),有時甚至是“微不足道”的缺陷,都會給整個系統(tǒng)埋下嚴(yán)重隱患,特定條件下就會爆發(fā),造成不堪設(shè)想的后果。隨著我國金融信息化建設(shè)的逐步深入,尤其是“入世”后面臨與外資銀行同場競爭的挑戰(zhàn),如何依托先進(jìn)的計(jì)算機(jī)技術(shù)提升自己的綜合競爭實(shí)力,為客戶提供全方位的金融服務(wù)已成為我國各商業(yè)銀行的共識和競爭的焦點(diǎn)。在這個背景下,計(jì)算機(jī)在金融行業(yè)中應(yīng)用廣度和深度都空前提高,已經(jīng)滲透到了金融工作的各個方面,特別是金融行業(yè)實(shí)行數(shù)據(jù)大集中后,各種大規(guī)模的軟件開發(fā)項(xiàng)目也日益增多,隨之而來的問題就是如何保證軟件的可靠性,如何降低軟件開發(fā)的成本,如何提高軟件的開發(fā)質(zhì)量,這些都成為軟件開發(fā)時必須重點(diǎn)考慮的內(nèi)容,對那些大規(guī)模的軟件工程來說尤其顯得重要。
隨著信息化系統(tǒng)建設(shè)的集中度和復(fù)雜度的提高,軟件產(chǎn)品也愈發(fā)龐大,目前大多數(shù)軟件產(chǎn)品都由幾十萬、上百萬,甚至更多的程序代碼組成,而任意一行代碼,哪怕是一個字段都可能影響到整個程序進(jìn)而影響到整個系統(tǒng)的正常運(yùn)行,甚至造成系統(tǒng)的崩潰,這種情況在集中化程度越來越高的情況下是非常可怕的。俗話說“金無足赤,人無完’,在軟件開發(fā)這樣的系統(tǒng)工程中,通常有很多人及很多部門參與,一個人又可能要完成多項(xiàng)任務(wù),再完善的軟件計(jì)劃和再熟練的開發(fā)人員也難免會出現(xiàn)錯誤和疏漏,所謂絕對周密和天衣無縫只是理想化的目標(biāo),比如系統(tǒng)分析員錯誤地理解了用戶的要求,就會發(fā)生系統(tǒng)分析員與用戶之間的“信息偏差”,系統(tǒng)分析員在書寫需求規(guī)格說明書時不能正確表達(dá)自己的思維,發(fā)生了系統(tǒng)分析員思維到文檔之間的“信息偏差”,開發(fā)過程中個人的思路、風(fēng)格、水平各不相同,難免發(fā)生這樣那樣的“信息偏差”??傊?,用戶需求的不確定性、軟件設(shè)計(jì)的不可預(yù)測性、客觀條件的不確定性、開發(fā)人員的水平和個體差異、技術(shù)本身的缺陷(如曾經(jīng)困擾全球計(jì)算機(jī)行業(yè)的Y2K問題、系統(tǒng)本身的其他漏洞等)以及軟件開發(fā)項(xiàng)目管理等都會給軟件開發(fā)帶來不可預(yù)知的風(fēng)險(xiǎn)。
2測試是消除風(fēng)險(xiǎn)的有效手段
由于,金融信息系統(tǒng)的二次開發(fā)存在諸多風(fēng)險(xiǎn),因此對所開發(fā)的軟件系統(tǒng)的測試就必不可少。測試的一個目的是對軟件錯和修正,另一個目的是檢驗(yàn)軟件是否達(dá)到了用戶的要求。國外優(yōu)秀的軟件開發(fā)機(jī)構(gòu)的測試工作通常都占到整個開發(fā)工作量的40%,而測試費(fèi)用則占到了總費(fèi)用的30—50%,對一些要求高可靠性和高安全性的重要的軟件如資金劃撥、網(wǎng)絡(luò)通訊、安全監(jiān)控等軟件的測試力度更大。測試是對需求分析、程序設(shè)計(jì)、編碼的最后復(fù)審,從經(jīng)驗(yàn)上看,測試應(yīng)遵循下面一些基本原則:
1)設(shè)計(jì)測試用例時,不僅要給出輸入數(shù)據(jù),還要給出預(yù)期的結(jié)果,作到有的放矢。
2)開發(fā)組織和測試組織要分立。為保證測試的質(zhì)量,一定要有非開發(fā)人員(用戶方和第三方如管理人員、安全稽核人員等)參與測試,因?yàn)殚_發(fā)和測試二者在思想上和方法上