淺談 HP QTP 在自動化功能測試的應用

作者/張竣皓

緣起 雖然人工的手動測試,可以為應用軟體中找到許多缺陷,但其過程卻十分費力且耗費時間。因此,為了節省人力與時間,來提高測試的效率與成本,便有了自動化測試這個概念。 『自動化測試』,是執行用程式語言所編寫出的程序,來得到實際與期望值之比較,而不用人工去分析過程中的數據或結果。若一旦設定成全自動測試,則可以不斷重複迅速地跑測試程序,不再需要人工來逐筆的個案進行測試。 自動化測試的適用性 雖然自動化測試的好處不少,但不代表所有的系統都適合做自動化測試。自動化測試並不是為了取代測試人員的位置,而是將人力從繁瑣的項目中釋放出來,去完成更有價值的工作。 例如功能測試、回歸測試,這類個案需重複的輸入資料或點選按鈕的測試操作,不但耗費不少時間也造成人力的浪費。利用自動化測試,不但能瞬間提高了測試效率,更容易發現系統的變動,也較能確保軟體系統的質量。 但若系統生命週期短且業務邏輯繁複,將會導致開發腳本的時間遠大於人工的手動測試。而系統頻繁的異動,不穩定的系統常常導致自動化測試失敗,也會讓測試結果變得不可信。 HP QuickTest Professional介紹 QuickTest Professional是一款自動化測試工具,經由辨識與學習介面上的物件,來完成與測試人員相同的動作。讓不同使用者介面,如:Native GUI或Web Interface,實現功能測試與回歸測試。其流程大約分成四大步驟,如下圖。

《圖一》
一、訂定測試計畫 (planning) 在開始自動化測試之前,應該先計制訂好測試計畫以及準備好測試的需求對象,例如︰決定測試哪些功能、其操作步驟與預期結果、哪些輸入內容可以參數化,確認應用程式以及HP QuickTest是否符合你的測試需求的,在準備充分之後,才開始錄製測試個案。 二、建立測試腳本 (creating tests) 你可以使用HP QuickTest介面上錄製(record)的方式,自動產生測試腳本的操作步驟,會在Keyword View會以表格的方式,顯示每一步操作的內容,如:點選網頁上的超連結或視窗上的按鈕。若是比較習慣直接地撰寫程式碼,也可以手動地建立好物件庫(object repository),再於Expert View使用VBScript加入每一步操作步驟。 在基本的腳本錄製完以後,你可以根據需求增加一些擴展功能,如在測試腳本中加入檢核點(check point)或輸出值(output value),以驗證應用程式的功能是否正確。將錄製時輸入的固定值參數化,如:參數表(data table)、環境變數(environment variables)、腳本參數(action parameters),使測試腳本更加地活用。並使用邏輯及條件判斷式,讓腳本能夠進行較複雜的測試流程。 三、執行測試腳本 (running tests) 透過執行測試腳本,HP QuickTest將會進入你的應用程式進行每一個操作動作與檢核點。你可以藉著增加參數表的筆數來重複測試不同的來源資料。若在修改測試腳本之後,你可能需要對測試腳本進行除錯的動作,以確保測試能夠正常且流暢的執行。 四、分析測試結果(analyzing results) 在執行完測試腳本後,分析測試執行的結果檔,找出應用程式的問題所在。如果你也安裝了Quality Center,則可以將發現之問題(defect)回報至Quality Center。 結語 自動化測試雖然無法完全取代測試人員的操作動作,但在某些時候卻可以幫測試人員省了很多功夫。對於一些基本、邏輯不強的操作,如功能測試、壓力測試,自動化測試有著不可替代之優勢。 自動化的功能測試,可以用一個簡單的腳本,實現大量的重複操作,只需對測試結果的分析即可得到結論。這樣不僅節省了大量人力與時間,其測試結果也更加準確。人工操作的回歸測試,不但代價昂貴,也很容易就不小心出錯。雖然自動化測試無法完全消耗此類的工作量,但卻可以讓測試人員有更多時間處理更多的測試個案。如何選擇正確的測試方法,了解使用自動化測試的原因,從根本上解決問題,測試自動化也不是那麼遙不可及。 參考資料 Mercury QuickTest Professional User’s Guide Test automation - Wikipedia HP QuickTest Professional - Wikipedia 自動化測試 - 百度百科 IT職業經理人 - 自動化測試基本策略