摘要:當今的企業需要掌控其關鍵業務應用的所有功能測試,以確保所有業務流程工作符合預期。通過實施自動化的功能測試,企業可以極大提高測試速度和精度,從挼間項目中得到更高的投資回報并且顯著地降低風險。
本文簡要描述了自動化功能測試的優勢和挑戰,幫助企業考慮實施最佳測試自動化的方法。
1.介紹
毫無疑問,嚴格的功能測試是成功開發應用的關鍵。開發人員,測試小組和管理人員所面臨的挑戰是,如何加速測試流程和提高測試的精確性和完備性,同時還不能增加已然很緊張的預算。
通過將功能測試的關鍵環節自動化,可以滿足有挑戰性的發布時間安排,測試得更加全面和可靠,檢驗業務過程功能的正確性,從而從上線的運營中,獲得極高的產值和客戶滿意度。然而,功能測試的自動化會產生一些新的顧慮:
測試過程自動化的成本是多少?其投資回報率(ROI)是什么?
哪些應用/過程適合做自動化測試,哪些不合適?
是否需要新的培訓,這將對當前的開發計劃安排產生怎樣的影響?
自動化測試得正確地方法論是什么?
自動化測試時涉及到哪些情況?
當比較自動化測試產品時,哪些功能最重要?
在自動化測試項目開始之前,以上和其他一些問題應該得到全面地調查和了解。
2.功能測試與單元測試
功能測試是指確保應用按期望運行,也就是按照用戶的期望運行。功能測試以一種有效的方式捕獲用戶的需求,讓用戶和開發人員對業務過程滿足需求充滿信心,同時使得QA團隊可以檢驗軟件已發布就緒。
功能測試是單元測試的補充,但有很大不同。簡言之,單元測試說明了代碼執行是否正確;功能測試說明了完成的應用是否做正確的事情。單元測試往往是從代碼開發人員的角度來看,而功能測試是從最終用戶和業務過程角度來看。
3.為什么將功能測試過程的自動化?
現在,IT部門的壓力越來越大。管理部門希望IT部門通過軟件可以交付新功能,抓住新的商業機會和提供有競爭力的優勢。這就意味著需要完成更多的業務應用開發項目,而時間會很緊迫,并不是都有更多的預算或資源。
同時,管理部門越來越意識到軟件和銷售額的重要關系。Web Services,聯機事務處理和ERP應用不僅是非常關鍵的,而且,它們直接關系到公司的產值能力?,F在企業非常依賴非常復雜的計算機基礎設施。如圖,一個典型的企業可能依靠多個應用,運行在不同的系統上,使用幾種不同的前端客戶端,涉及到大量的業務過程并且與很多種數據集交互。
當軟件出現故障時,其代價是非常大的,包括銷售額下降,員工的低效率,客戶的不滿和開發和QA人員的士氣低落。在軟件開發周期中,缺欠發現的越晚其代價越高。上線后發現的缺欠的改正成本可能比在設計階段發現的高出100倍。自動化是提高軟件測試過程的速度,精確度和靈活性的關鍵,使公司可以更早發現和改正缺欠。
4.手工功能測試的挑戰
手工功能測試過程本身存在很多挑戰:
時間過長。有限的IT資源和緊張的交付時間使得手工測試對于滿足業務目標來說過于耗時。采用手工測試,測試和開發人員不得不計劃冗長的每步測試過程,然后手工執行,再現問題,快速消耗了有價值的時間和資源。根據Aberdeen Group,一個獨立行業分析公司,90%的IT項目交付出現延遲,手工測試是其中一個因素。
覆蓋不完全。平臺,操作系統,客戶端設備,業務過程和數據集等的組合對于手工測試過程來說,工作量非常大。需要驗證功能的測試用例數量非常巨大。所以當修改完成后手工回歸測試花費的時間過長,以至于不能做全面的回歸測試。
風險更高。手工測試過程比計算機過程的錯誤和疏忽更多。人們會變得疲倦,輸入數據錯誤,不能總是正確執行測試,并不是總有時間測試所有應該測試的內容。
5.自動化測試的好處
自動化測試有很多好處,包括:
快速執行。計算機在執行功能測試腳本的時候比人快得多,因此在有限的時間里能測試的更多,在給定的時間里更多的應用可以被測試,可以按時完成更多的工程。并且和人不同,計算機一天工作24小時,還包括晚上,周末和假期;他們不會感到無聊或者疲倦;而且他們從不對該作的事情和不該作的事情自作主張。
原文轉自:http://www.uml.org.cn/Test/200701105.htm