論壇文章
TestPartner實務技術探討 錄製與播放篇 如何建立功能測試

大多數的程式開發人員整日埋頭苦幹工作的理由,大致可分為兩種,一是撰寫新程式,其二是修改程式的Bug。程式員每日被專案時程追著跑,趕進度、修改錯誤不算,還要騰出時間作測試,所以,在時間的壓力下,往往會選擇犧牲掉測試,或隨便測試一些程式功能讓它通過就算交差了事。反正一切就等測試報告出爐後再來解決,將專案時程表轉換成問題的功能列表(Bug List)。如此不僅耽誤整個專案的時程,也浪費人力與成本。

在輔導客戶的過程中,我們常會聽到類似的抱怨,如程式員缺乏經驗,對於程式品質沒有概念,只在意正確邏輯的功能測試,反而忽略錯誤發生時的控制。換言之,就是程式員只做『Happy path』的測試。那麼究竟該如何建立正確的程式測試呢?並保持每次測試功能的一致性與相同的涵蓋度?要保證程式的測試不會因為程式員的不同或測試員的不同,讓測試的結果也呈現不同。

那究竟什麼是功能測試與回歸測試?簡單說明這兩者的不同之處:
*功能測試:為一能協助程式員決定系統功能是否符合預期設計的測試。程式員可以使用此功能可以測試操作和圖形用戶介面物件的外觀。比如,一個命令按鈕的功能測試即包括了對按下按鈕時的動作的測試,也包括了對按鈕的大小,位置和顏色的測試。
*回歸測試:在自動化的環境中,回歸測試指的是執行以前已開發的測試腳本,把最新編譯的被測試應用程式與早先建立的基準一起進行比較。此功能揭示了從上次編譯以來被引入到應用程式的不同之處。這樣一來,程式員就可以評估這些差異,並決定它們實際是缺陷還是經過考慮的變化。

接下來,我們要用TestPartner來進行功能測試,過程如下:

第一步:建立第一個測試專案
1. 開啟TestPartner
2. 建立一個測試專案
3. 建立測試使用者

第二步:建立第一個測試腳本
我們將使用Microsoft所提供的CommerceStartKit來做示範,並錄製購物車的功能,以及購物的功能。操作方式如下:
1. 開啟一個空白測試腳本

2.按下TestPartner上方的工具列中的Record Script,按下後TestPartner會隱藏起來,此時就可開始錄製。

3.開啟瀏覽器,並輸入URL為http://localhost/CommerceStartKit,選擇「Home and Office Gear」,出現產品之後再選擇「eBay Mug」,然後加入購物車中。

4.進入購物車中,查看所選擇的購物資料
點選隱藏在Program Bar的TestPartner,測試員即可看見TestPartner又到桌面並且停止錄製,此時TestPartner已經錄製產生許多測試腳本,這些測試腳本都是標準的VBA語言所構成。

第三步:建立檢核點
此時,我們希望對購物車內容作檢核,查看所選擇的購物資料是否與所購入的產品一致,因此,必須要在購物車這個畫面做檢核。步驟如下:

1. 新增一個Check型態為Content

2. 選擇驗證資料
  A. 按下「Identify」按鈕,並將滑鼠停留在購物車上,按下滑鼠後,就可以抓取購物車裡的內容。
  B.儲存驗證點,修改驗證點名稱為ShoppingCar。

3. 加入檢核點
在加入檢核點後,再重新開啟剛才已錄製的測試腳本,插入驗證點資料「InsertCheckContentShoppingCar」。將可看見測試腳本多出一行指令『ExecuteCheck 』,這意味著測試進行到這裡時,TestPartner會主動對應用程式進行檢查,同時比對是否與預期值相符。

第四步:完成並執行測試腳本
在完成上述步驟後,就可以利用TestPartner進行第一次的回歸測試。操作步驟如下:
1. 按下工具列中的「Playback Script」按鈕,接下來就可交給TestPartner執行測試了。測試員就能看見先前操作的過程會透過TestPartner重新再做一次。
2. 結果將如下圖所呈現。

在這裡要特別提出來說明的是,由於在執行第一次錄製時,事先已加入一筆資料到購物車中,並沒有清除,因此在做回歸測試時,購物車裡的數量會自動加上一筆,這樣做會導致測試員在做檢核點比對時容易產生失敗,並會出現比對視窗。事實上,筆者並沒有忘記在執行測試前須先清除購物車裡的資料,目的是為了讓讀者能清楚了解檢核點比對失敗時,TestPartner會有比對的差異視窗出現,以供測試人員查詢。而這也讓我們更深體會到當要執行回歸測試時,測試的資料需要回歸到原來的初始資料,並且需要小心檢查才行,否則該測試將無法進行。

第五步:執行回歸測試
錄製完成了上述步驟後,自動化測試工具以記錄測試動作與檢核資料了,接下來就是一找不同的時機或者里程碑去執行回歸測試。Compuware TestPartner執行回歸測試的動作是十分簡單,只需按下Playback的按鈕,即可以進行。

總結

在看完了上述關於功能測試與回歸測試的流程及操作步驟後,相信您已經可以從中了解程式在測試時的所有過程,並了解測試結果如何,同時,我們也可以對測試紀錄做篩選及客製化格式。到這裡,相信您已經有能力作出第一個測試案例腳本與執行回歸測試。

當然,TestPartner的功能還不僅限於此,面對複雜的商業系統,測試員為執行回歸測試就必須選擇自動化測試系統,但如果測試的程序或者執行測試太過困難與複雜的話,往往會導致測試程序的失敗,因此,測試既是一門學問,更是一門藝術,為了能有效進行測試,您也可以遵從一些簡單的指導原則並使用一些常識輔助,但大多數情況仍仰賴直覺,建議您花費時間學習一些竅門及策略是重要且值得的,這些都能協助您累積經驗,必要時可以迅速針對情況做直覺的反應與判斷。