打破測試團隊無用錄的魔咒 3 - 如何規劃和製作自動化測試
上一篇 提到測試團隊要設計出符合需求的測試項目,並且測試項目弄一個一個可以獨立運作。
為什麼要這麼麻煩??一樣我們拿吸塵器來看! 其最終的目的就是要用它吸家裡的灰塵!
動作
- 拿吸塵器出來
- 插電
- 拿起吸塵器柄,並按下電源開關「開」
- 更換吸頭
- 邊走邊吸地板 ( 依不同情況反覆 4 、5 的動作 )
- 按下電源開關「關」
- 取出吸塵袋 ( 盒 )
- 倒掉
- 收吸塵器
我們可以看到一般的使用者是依上述動作實作,但難到要從頭到尾都自動化嗎??
那應該只能請本田的ASIMO 出場了吧!不過一台都要價不便宜!而且沒有效率!
所以,把上述的動作全部「分解」並用「簡單的自動化機器人」來達到我們要的目的
一來!比較便宜、單純 且還可以收集測試過程
二來!若是要加測試項目 或是要改 都不用改其他的測試動作
再說!Asimo 並不能幫我們打電腦 Orz !請他 端端茶是不錯的選擇
而,我們大家最關心的是!什麼時候做自動化??
先說明一件事「自動化」是需要維護成本的,並不是說只要做一次後,後面就沒事了。
它有幾個條件是需要先達成的,和 任何一種流程無關 ( 也就是說 您的團隊用 CMMI , Agile , Scrum 都一樣 )
- 每一次的交付都必須是可運作的版本 ( 功能可以不完整,至於是要 完整的流程可以跑完 還是 功能式 則取決於 AP 型態 )
- 獨立的測試環境 ( 不是指 開發者的電腦上,也不是上線的機器 )
- 自動化前確定 該功能是經過「需求驗證過」 ( 簡單來說就是 客戶 or PM 想要的 )
- 自動化的可行性 ( 比如說拔掉電腦電源,要自動化請找 Asimo 謝謝! )
- …
接下來看看有那些功能可以用
請開啟 Visual Studio 2010
- Unit Test ( 給開發人員 寫測試程式用的 )
- Load Test
( 壓力測試用,可以製作 1000 使用者同時上線操作的情節
但要先有 Load Test , Web Test 等等…… ) - Web Performance Test
( 網頁的自動化錄製 ,只針對網站所有項目都會做記錄,不受網站型態影響,但無法錄 Silverlight , Flash 等 Client 端程式 ) - CodeUI Test
( 可錄製 WinForm , Web 等應用程式,並且可以很簡單地製作出「驗證」功能 ) - Ordered Test
( 若是 上述三種測試有「規定」順序的話!可以用 此項目定義 ) - Generic Test
( 手動測試文件,若有 TFS 請用 Test Professional 的 Test Case 取代 )
這次我們先針對 CodeUI Test 如何做錄製 且 驗證的動作
之前有 PO 文是針對 Win form 的 所以這次我們就改用 Web 吧! ( 之前的是 CTP ,操作介面有些不同 )
拿之前 設計好的 「Test Case 為 驗證使用者登入後是否正常登入」 ( 錯誤測試要另外設計 )
- 使用者開啟 IE
- 輸入網址
- 按下登入
- 輸入帳號、密碼
- 按下確定
- 進入購物畫面
- 確認是否有
右下角就會有 Test Builder 出現,確定要開始錄請按「紅色」的錄製
開啟 IE , 輸入測試網址,都會出現每一個錄製的動作 ( Beta 2 的速度已經比 CTP 順非常多了 )
OK!錄到這裡為止,並按下 Generate Code 把剛剛所有的「操作動作」自動轉成程式碼 ( .NET 的 )
完成後,這個圖案就會變亮了!接下來我們就可以驗證登入的資料是否正確
請直接托拉過去!可以看到會有一個「藍色」的框框 ( 請注意要框到正確的 「物件」 )
選擇要驗證的資料 Welcome franma 後,在按上面的驗證 icon
若是要 = (等於) 的話請用 AreEqual ! ( 下拉有各種選項可以協助判斷 )
最後就會有一個 「打勾」的icon ,若還有其他的屬性要驗證的話!請依上述的步驟再做!若沒有的話!請按下「Add Generational… 」
到目前為止我們在不用寫 任何一行 code 的情況下就完成自動化測試的項目
ps.. 若一個測試中有多個驗證點,這時就可以再按下「紅色的錄製」icon ,一直把 Test Case 要做的項目做完為止 。
按下 x 後就會回到 Visual Studio 的畫面
看一下成果,熟 UT 的朋友們呀!看看是不是跟 UT 一模一樣的構造!
要如何執行?請在「方案總管」中的 Solution Items 的 xxx.VSMDI 雙擊兩下,開啟 測試清單
接下來就可以看到測試被重複執行一遍了!
看到綠色勾勾就代表測試動作都沒問題,且驗證的資料也都 ok ! ( 和 Web Test 的驗證項目不同的地方 日後會提到 )
如此一來所有的自動化製作過程也告一個段落
是不是很簡單的?
不過做到這裡各位聰慧的看倌們一定發現,那個帳號密碼都是寫死的呀!若是有 100 個帳號豈不是要錄 100 遍?
放心!這個自然有解決方法!不用擔心!
……