截然不同,前者是建設性的而后者是破壞性的,就一般人的心理而言,要破壞自己親手建立的東西是比較困難的。測試人員要有‘雞蛋里面挑骨頭”的精神
3)要設計非法輸入的測試用例,要特別注意一個程序不僅能在合法輸入時正確執(zhí)行,而且在非法輸入時能給出提示并拒絕執(zhí)行,更不能潛伏其他隱患。
4)對程序修改之后要進行回歸測試,對程序的任何修改都可能引入新的錯誤,所以必須用以前測試的用例進行回歸測試,這有助于發(fā)現由于修改程序而帶來新的錯誤。
5)在進行深入測試時,要集中測試容易出錯的模塊,例如,筆者在對DACI系統Y2K問題測試中發(fā)現,幾乎所有的日期問題都與系統底層的H期函數有關。
6)設計測試用例時要注意科學合理選擇數據,盡量保證程序中所有的語句至少要執(zhí)行一次,每個判斷至少要獲得一次“真”和“假”的值,每個條件能獲得各種不同的結果,各種判斷中的各種條件的各種不同的組合都至少能出現一次,要特別注意對臨界值的測試。
7)測試應包括單項測試(逐個模塊分調)、整體測試(各功能模塊組合在一起聯調)、有效性測試(軟件的功能與用戶的需求是否一致)、系統測試(軟件在與其他系統元素如硬件、網絡、其他業(yè)務系統等結合在一起綜合測試)。
8)基本測試完成后應加大程序的負載,進行壓力測試,檢測系統的承載能力??刹扇≡囘\行或試點的辦法,試運行期間一定要作好“人機并行”或“雙機并行”,并注意收集試運行中出現的各種問題。特別需要指出的是大型軟件必須要經過壓力測試才能正式投產,而現在有些軟件開發(fā)項目為了趕進度,往往把這一步給忽略.『‘其實這一步是很重要的,尤其是對一些跨區(qū)域、采用大集中方式處理的軟件系統來說更是如此。在實際工作中可以將‘白盒法”和‘黑盒法”結合運用,選取測試一些數量有限的重要邏輯路徑,并對一些重要的數據結構的正確性進行完全檢查,以保證程序接口和內部邏輯的正確性。測試是一項非常復雜的、創(chuàng)造性的、需要高度智慧和豐富經驗的工作,一個好的測試用例有可能發(fā)現至今尚未發(fā)現的錯誤,而一次成功的測試是發(fā)現了至今尚未發(fā)現的錯誤的測試。經過嚴格測試的軟件系統要填寫詳細的測試報告,并經上級領導授權后方可交付使用。
3結語
需要指出的是,所有的測試并不可能是完全測試,通常只能證明程序有錯,而不能證明程序無錯。金融系統中,很多軟件系統都是在實際生產中不斷發(fā)現問題而得到逐步完善的,這也是軟件有不同版本和補丁的原因。另外,我國的軟件測試業(yè)還存在著測試手段和測試工具匱乏、專業(yè)測試隊伍特別是行業(yè)人才奇缺的問題,因此,對于已投人生產的軟件系統,仍要進行版本跟蹤,并結合業(yè)務的變更和技術的發(fā)展不斷修改、排錯、升級、擴充、完善,只有這樣,我們的軟件系統才經得起時間的考驗,才能提高我國金融行業(yè)的信息安全保護水平。