成熟的軟件測試是確保軟件質量的一種重要手段,自動化測試技術的出現,對于提高測試單位績效比起了重要作用,被廣泛應用于回歸測試中,但是由于被測試系統的不確定性和復雜性,使得軟件自動化測試變得異常困難。本文基于商業工具結合實際項目,分析自動化測試實施期間出現的各種問題,以提高大家對自動化測試項目的真正認識與理解。
現在自動化測試工具很多,商業的或者開源的,以對象識別為基礎的或者以語言特性為基礎的等等。在挑選的時候,首先我們要明確被操作軟件的范疇和特性,可預知風險,培訓潛在成本及是否具備被虛擬化等一系列問題,這些問題可制成標準檢查列表,以便確定一個解決一個。在本次自動化測試實施中,首先可知的是被測試軟件屬于行業金融軟件,使用Borland C Builder語言開發,測試范疇鎖定在軟件前臺需配對后臺數據驗證,前臺由RedHat Linux服務端、自研發中間件和Oracle數據庫支撐。一般來說,這種軟件應用架構比較清晰,但是GUI層使用了大量的非標準第三方控件,有可能會導致部分對象無法捕獲造成實施困難,所以在進入真正的實施前作充分、快速的實驗性評估是非常重要的。
職業化的自動化測試團隊,應當非常熟悉當前主流的商業或者開源測試工具,這種團隊的定義是:技術讓位與成本控制,快速實施且能快速遞交,控制每12周為一周期,項目延時誤差小于2天。考慮到腳本會被移交給其他團隊執行,所以我們選擇了目前在國內應用范圍比較廣、相關技術資料比較豐富的HP Winrunner和HP QuickTestPro。個被評估的是QuickTestPro 9.5版本不帶任何插件,結果大量的GUI對象無法被捕捉,不能捕捉意味著不能被操作,所以團隊快速轉換到Winrunner 9.2版本不帶任何插件,實驗結果是基本可以正確識別和捕獲我們所要操作的GUI對象,滿足了對工具的需求。其實QuickTestPro 9.5版本帶Delphi插件也可大大增加捕獲率,但是使用插件違反了團隊定義的工具應用管理規范,也不符合“有對象即可操作”的強硬編程作風。
在工具定義后,需要立刻選擇2組典型業務進行試驗性測試,這時需要業務專家和腳本專家一起工作。帶GUI界面軟件測試用例的設計核心問題是:需要區分正常測試用例和異常測試用例,按照先異常后正常的實際執行方式,組織終的測試數據存放關系,一般合適的比例控制在異常75%—正常25%范圍內。腳本專家需要快速處理對象識別庫,如果涉及到重定義則需要在指定文件中加以注明,因為這部分工作可被復用到后續的項目實施中,避免造成人力成本重復投入。通常實驗性階段主要產生的問題是:
該階段是否會產生腳本框架?答案是否定的,首先自動化測試不一定要有框架,框架產生的目的就是犧牲一部分腳本性能,而對測試數據進行、有序的管理。不過在試驗性階段可以考慮這個問題,如果框架是個平臺,那么我們可以在這個平臺上放置一些我們需要的單位腳本性能監視器或者其他一些東西。由于 Winrunner的描述性編程機能不夠,那么在后續正常項目實施中,框架更多被定位于為可測量、可伸縮、可動態、可智能解析測試數據的執行管理。
該階段是否需要考慮測試數據存放問題?答案是否定的,沒有必要浪費太多的時間在這種地方,一個文本文件或者干脆不要文件的數據存放形式都可以,關鍵是成本。
該階段對于人員的要求是什么?答案是人員需要精干,一個業務專家,一個腳本專家,一個統計專家足夠,自動化測試實施非常注重績效比,績效比不夠根本沒必要執行后續的項目,你必須通過實驗性測試得出一個準確的結論,就是重復執行多少次腳本,總績效才可以由負轉正。
該階段是否需要考慮環境的問題?答案是的,在這之前就應該安裝好虛擬系統了,如果腳本專家的一邊開著即時通訊工具一邊錄制腳本,我們認為這是非常不專業的。系統環境的清潔程度如同醫院的手術室,需要提前對各種必須的軟件(例如殺毒軟件,網管軟件等)做好適應性選擇,有干擾的,或者影響系統機能的堅決卸載掉。
該階段的硬件是怎么規劃的?前端的測試主機需要有同時承受開2—3個虛擬系統的準備,不能產生明顯的切換和操作停頓甚至系統假死。雖然 32位的 Windows XP系統不支持4G物理內存,但是經驗告訴我們內存容量多多益善,至于CPU和顯卡處于正常水平即可。后端使用的硬件需要穩定,因為不是性能測試所以不作太多要求,一切為了成本。
該階段的管理模式和輸出是什么?答案是沒有太復雜的管理模式,實驗性評估一般都會在1周內被關閉,重要的就是實施評估報告,報告內容大致包含:周期定義、工具定型描述、應用軟件描述、系統框架描述、可能采用的框架描述、可能遞交工件描述、可加入業務列表、預測腳本規模、可實施技術分析、評估人/時分析、預測實際人/時分析、評估腳本價值、預測實際腳本價值、可能遇到的問題警告等,這些條目都必須一一做出詳實而且準確的描述。
實驗性評估結束后,需要確定自動化測試實施項目的時間及周期里程碑,我們采用12周為一個周期里程碑,快速發布快速遞交的方式以確保整個測試項目的實施成功。在開始的1周內,管理專家需要快速定義對象控制表、項目跟蹤表、需求跟蹤表、周/發布項目進度、日/問題跟蹤表、配置管理須知,腳本專家需要快速定義代碼規范、腳本設計維護手冊、數據作用說明及填寫規范,環境專家需要快速定義虛擬環境配置手冊、維護與復制手冊,培訓專家需要制定實施階段課程培訓體系等,專家都是角色可復用,工作都是實打實的,需要認真對待,缺一不可。