從上世紀90年開始,產業界開始意識到被動的以監測和發現錯誤為目的的軟件測試無法避免軟件開發過程中由于軟件需求和設計等方面的缺陷所帶來的巨大風險,所以在整個產業界開始從軟件質量控制(SQC, Software Quality Control)開始轉移到軟件質量保證(SQA, Software Quality Assurance),從而使軟件測試從單純的缺陷檢測和發現覆蓋到整個軟件開發過程,同時軟件測試的流程和軟件測試技術也成為了獨立研究的方向。我們已經了解到一個典型的軟件過程可以分為測試需求分析,測試設計,測試執行,缺陷和配置管理過程等許多個不同的階段。在軟件測試技術方面也已經被細化為單元測試,集成測試,系統測試,用戶驗收測試等不同的測試技術。
隨軟件測試技術的發展和測試流程管理的需求,實現軟件測試自動化的趨勢已經不可逆轉了。目前,軟件測試自動化主要集中在軟件測試流程的管理自動化,和動態測試的自動化,如功能測試自動化和性能測試自動化方面,還有是少部分的靜態測試,如代碼走查,它們常常比較容易從開發過程剝離出來。
相比于手工測試,測試自動化的優勢是明顯的。
首先自動化測試可以提高測試效率,使測試人員更加專注于新的測試模塊的建立和開發,從而提高測試覆蓋率;其次,自動化測試使測試資產的管理數字化,并使測試資產得以在整個測試生命周期內得到復用,這個特點在功能測試和回歸測試中尤其具有意義;此外,通過測試流程的自動化管理使機構可以通過流程的關鍵績效指標(KPI, Key Performance Indicator)來衡量測試過程的有效性,從而實現了從軟件質量保證向軟件質量管理(SQM, Software Quality Management)的進化。
根據Oppenheimer Funds的調查,在2001年前后的3年中,全球范圍內由于采用了測試自動化手段所實現的投資回報率(ROI, Return Of Investment)更高達1500%。
那么,對于一個企業用戶來說,什么樣的軟件測試自動化方案將是他們所最需要的呢?在回答這個問題之前,首先我們必須注意到,作為企業用戶,在企業內部通常存在許多不同種類的應用平臺,應用開發技術也不盡相同,甚至在一個應用中可能就跨越了多種平臺;或由于開發時期的不同,可能導致同一應用的不同版本之間也存在技術差異。同時對于開發工作本身也可能多種形式,由內部團隊開發或是開發外包等等。所以軟件測試本身對于這些企業的QA和測試部門來說無疑是一個巨大的挑戰,他們考慮選擇軟件測試自動化的最根本出發點就是為了降低這些挑戰可能帶來的軟件產品質量和上線周期等方面的風險。根據筆者和不同企業用戶的溝通和交流,他們的自動化需求往往更多的集中在:
自動化軟件測試管理流程,以達到始終一致的軟件質量和可量化的,可衡量的測試過程管理。
通過實現測試自動化,以提高測試案例的復用和實現內部標準化,從而提高測試效率。
但同時,企業用戶也將綜合考慮測試自動化給當前的企業部門與部門間的合作以及現有的工作流程所帶來的沖擊,在軟件測試自動化過程中也往往選擇“進化”(Evolution)方式,而不是“革命”的(Revolution)方式。
企業在實現測試自動化過程中,一個有趣的現象是絕大多數的中國企業用戶會選擇在企業內部(In-House)實現測試自動化,他們希望參與這個自動化的過程,并且更加在乎自己來建立并管理這個自動化流程;他們不僅限于通過軟件測試自動化來滿足上述需求,而且希望通過自動化過程的實施也到達學習和提高團隊測試技能的目的。與此相比,不在少數的歐美企業用戶他們可能會選擇測試自動化平臺托管服務(Hosted Service),或者外包(OutSourcing),離岸(Off-Shore)和派遣(Staffing)等多種方式相結合來實現,對他們來說,更加注重的是軟件測試自動化所帶來的結果,而非自動化過程本身。
文章來源于領測軟件測試網 http://www.kjueaiud.com/