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