摘 要 在過去的兩年中,金融機構和專業的測試組織進行了大量的研究和工作實踐,人們普遍認為應用測試自動化技術測試自動化可以提高測試效率,節省人工成本,但從實際出發,效果似乎并不符合所有人的期望,我們不得不重新檢查自動化測試,基于不同的開發模型進行思考和認知。
關鍵詞 軟件測試;思考;探討
1 金融行業主要軟件研發模式
當前,金融行業的軟件開發模型主要有兩種,分別對應于不同的組織形式。一種是傳統商業銀行代表的標準,穩定,質量保證的瀑布式或類瀑布式研發模式,它對應于需求,研發和測試角色的獨立和獨立的組織形式。另一個是以互聯網公司為代表的靈活,迭代和效率至上的敏捷研發模型,它對應于需求、研發和測試角色以及團隊合作的相互集成的組織形式。兩種研發模式各有千秋。傳統的研發模式注重質量,需要嚴格控制風險以確保安全生產。敏捷的研發模型更重視效率,并且對在線問題有一定的容忍度。
在整個IT行業敏捷轉型的大趨勢下,傳統金融行業也在核心穩定性的基礎上探索了自己的敏捷研究與開發模型。大型商業銀行通常采用“雙模式IT”研發管理模式。一方面,傳統的研發模式確保了核心基礎業務的穩定性;另一方面,敏捷的研發模式滿足了互聯網創新業務的需求[1]。
2 不同軟件研發模式下的自動化測試實踐
不同的軟件開發模式對應于不同的自動化測試技術系統和工作實踐。自動化測試技術只有與組織模式,環境條件和測試階段相匹配,并且它們在缺陷發現(質量),風險覆蓋范圍(范圍),效率提高(時間)和資源節省(成本)方面的各自作用才有效。
2.1 傳統瀑布式研發模式
最佳實踐:在傳統的瀑布式研發模式下,開發部門人員和金融行業軟件自動化測試實踐和思考都將完成單元測試和系統集成測試(SIT)。版本交付后,獨立的測試部門團隊將進行用戶驗收測試(UAT)。自動化測試分兩個階段進行,其中UAT作為質量保證的最終級別,并基于用戶的角度對真實業務流程進行端到端模擬。 UAT主要使用UI頁面自動化測試工具來執行自動化測試。當前版本修改內容的驗收測試,由于腳本開發投資成本不合理,因此通常不考慮自動化測試。
前提條件:用于識別技術困難的UAT測試自動化控件位于首頁上,而用于檢查和測試自動化實現的業務邏輯取決于頁面控件開發的標準化,標準化的過程和界面設計可以顯著降低開發和維護自動化測試的成本腳本以及被測系統具有良好的可伸縮性是有效開發UAT測試自動化的前提。此外,高可用性測試環境,完整的數據庫,成熟的平臺工具,豐富的業務資產以及標準化的案例步驟也是有效實施UAT自動化測試的必要條件。盡管UAT不需要測試人員具備高水平的測試自動化技能,但對于R&D標準化,環境可用性,數據完整性,資產成熟度和行業也很重要。
效果:重復執行和煩瑣的測試內容是UAT自動化測試實施的重點,腳本維護和新鮮度保存是自動化測試實施的難點。通過選擇成熟穩定的業務交易流程來進行例行和自動執行回歸測試,可以提高測試工作的綜合性,可以擴大當前版本轉換內容以外的測試范圍,可以穩定核心業務和交易流程保證,并且可以整體上提高版本啟動的信心。從發現的缺陷,風險覆蓋率,效率提高和資源四個方面來看,UAT測試對項目貢獻的自動化測試是通過擴大覆蓋范圍,達到質量保證的作用,對于回歸測試的例行和執行效率以及節省人力的風險方面也已經實現了提升的優化,但對于測試主要關注的當期版本改造內容缺陷發現、測試效率提升和人力成本節約方面并未發揮明顯作用[2]。
2.2 敏捷研發模式
最佳實踐:在敏捷開發模式下,研發和測試都在同一團隊中完成。研發和測試人員一起工作,可以實現高效的人員溝通和高度的資源共享。測試集中于接口級別的功能和系統集成測試(SIT),而用戶接受測試(UAT)通常由業務部門執行,而不負責質量控制。該行業的成熟實踐是通過界面自動化測試工具來進行自動化測試。界面自動化測試腳本的穩定性和可重用性優于UI自動化測試腳本。金融機構的許多測試部門都基于接口進行自動化測試,并建立了自動化測試流水線,以實現持續集成和持續建設。被測系統集成新接口后,它將自動運行所有接口測試用例,以確保新接口不會影響庫存功能。
前提條件:敏捷開發模式下的測試對象是一個單獨的接口,測試人員的驗證可以實現接口功能的準確性,需要考慮業務本身的穩定性,直接根據接口定義配置測試數據,進行接口測試環境可以滿足普通聯通開發的自動化測試,測試自動化對外部條件的依賴程度低。敏捷研究和開發模式下自動測試實現的前提是明確接口定義和接口暴露程度。同時,接口自動化測試要求測試人員具有更高的技能水平和工具框架的靈活性,這些測試人員需要具有編碼能力并且能夠設計出良好的接口測試用例。自動化測試工具框架應靈活支持持續集成,持續構建的接口組裝和批處理過程,這些都應進行測試。使用系統接口應該能夠容易地被自動化測試工具集成和調用。商用工具通常很難滿足要求,因此要求自動化測試工具的研發團隊具有強大的研發能力,以支持敏捷研發模式下自動化測試工具的靈活需求。
效果:在敏捷開發模式下,可以繼承和重用自動化測試用例,并在后續版本中重復執行,這為自動化測試提供了便利條件。從缺陷發現,風險覆蓋范圍,效率提高和資源節省的四個方面來看,這種自動化測試實踐可以發現當前版本功能測試中的缺陷[3]。
3 結束語
科學地看待自動化測試,就是要了解自動化測試技術的優勢和局限性。開展自動化測試可以帶來收益,但也要認識到現階段的自動化測試技術并不是萬能的,不能解決全部問題,有一些在認識上的誤區需要被澄清。
參考文獻
[1] 陳孟婕,劉慧媛,王振洲,等.基于LoadRunner的Web考試系統性能測試與優化[J].中國農學通報,2014,30(34):250-256.
[2] 林一,陳靖,劉越,等.基于心智模型的虛擬現實與增強現實混合式移動導覽系統的用戶體驗設計[J].計算機學報,2015,38(2):408-422.
[3] 榮國平,劉天宇,謝明娟,等.嵌入式系統開發中敏捷方法的應用研究綜述[J].軟件學報,2014,25(2):267-283.
作者簡介
謝華(1977-),女,廣西貴港人;學歷:本科,現就職單位:廣西軟件管理中心,研究方向:軟件工程/軟件測試。