打破測試團隊無用錄的魔咒 3 - 如何規劃和製作自動化測試

打破測試團隊無用錄的魔咒 3 - 如何規劃和製作自動化測試

上一篇 提到測試團隊要設計出符合需求的測試項目,並且測試項目弄一個一個可以獨立運作。

為什麼要這麼麻煩??一樣我們拿吸塵器來看! 其最終的目的就是要用它吸家裡的灰塵!

動作

  1. 拿吸塵器出來
  2. 插電
  3. 拿起吸塵器柄,並按下電源開關「開」
  4. 更換吸頭
  5. 邊走邊吸地板  ( 依不同情況反覆 4 、5 的動作 )
  6. 按下電源開關「關」
  7. 取出吸塵袋 ( 盒 )
  8. 倒掉
  9. 收吸塵器

我們可以看到一般的使用者是依上述動作實作,但難到要從頭到尾都自動化嗎??

那應該只能請本田的ASIMO 出場了吧!不過一台都要價不便宜!而且沒有效率!

所以,把上述的動作全部「分解」並用「簡單的自動化機器人」來達到我們要的目的

一來!比較便宜、單純 且還可以收集測試過程

二來!若是要加測試項目 或是要改 都不用改其他的測試動作

再說!Asimo 並不能幫我們打電腦 Orz !請他 端端茶是不錯的選擇

 

而,我們大家最關心的是!什麼時候做自動化??

先說明一件事「自動化」是需要維護成本的,並不是說只要做一次後,後面就沒事了。

它有幾個條件是需要先達成的,和 任何一種流程無關 ( 也就是說 您的團隊用 CMMI , Agile , Scrum 都一樣 )

  1. 每一次的交付都必須是可運作的版本 ( 功能可以不完整,至於是要 完整的流程可以跑完 還是 功能式 則取決於 AP 型態 )
  2. 獨立的測試環境 ( 不是指 開發者的電腦上,也不是上線的機器 )
  3. 自動化前確定 該功能是經過「需求驗證過」 ( 簡單來說就是 客戶 or PM 想要的 )
  4. 自動化的可行性  ( 比如說拔掉電腦電源,要自動化請找 Asimo 謝謝! )

接下來看看有那些功能可以用

請開啟 Visual Studio 2010

image 
分別有

  • 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 為 驗證使用者登入後是否正常登入」  ( 錯誤測試要另外設計 )

    1. 使用者開啟 IE
    2. 輸入網址
    3. 按下登入
    4. 輸入帳號、密碼
    5. 按下確定
    6. 進入購物畫面
    7. 確認是否有

image
請選 Record Action 要開始錄製

image 
右下角就會有 Test Builder 出現,確定要開始錄請按「紅色」的錄製

image
開啟 IE , 輸入測試網址,都會出現每一個錄製的動作  ( Beta 2 的速度已經比 CTP 順非常多了 )

image
登入後,進入操作頁面確認

image
OK!錄到這裡為止,並按下 Generate Code 把剛剛所有的「操作動作」自動轉成程式碼 ( .NET 的 )

image
請給好一個名稱後,按下 Add …

image
完成後,這個圖案就會變亮了!接下來我們就可以驗證登入的資料是否正確

image
請直接托拉過去!可以看到會有一個「藍色」的框框  ( 請注意要框到正確的 「物件」 )

image 
選擇要驗證的資料 Welcome franma 後,在按上面的驗證 icon

image 
若是要 = (等於) 的話請用 AreEqual ! ( 下拉有各種選項可以協助判斷 )

image 
最後就會有一個 「打勾」的icon ,若還有其他的屬性要驗證的話!請依上述的步驟再做!若沒有的話!請按下「Add Generational… 」

image 
同上!給它一個名字吧!

到目前為止我們在不用寫 任何一行 code  的情況下就完成自動化測試的項目

ps.. 若一個測試中有多個驗證點,這時就可以再按下「紅色的錄製」icon ,一直把 Test Case 要做的項目做完為止 。

按下 x 後就會回到 Visual Studio 的畫面

image
看一下成果,熟 UT 的朋友們呀!看看是不是跟 UT 一模一樣的構造!

image 
要如何執行?請在「方案總管」中的 Solution Items 的 xxx.VSMDI   雙擊兩下,開啟 測試清單

image 
確定我們的測試項目出現了!就可以按下左上角的測試執行

image
接下來就可以看到測試被重複執行一遍了!
看到綠色勾勾就代表測試動作都沒問題,且驗證的資料也都 ok !  ( 和 Web Test 的驗證項目不同的地方 日後會提到 )

如此一來所有的自動化製作過程也告一個段落

是不是很簡單的?

不過做到這裡各位聰慧的看倌們一定發現,那個帳號密碼都是寫死的呀!若是有 100 個帳號豈不是要錄 100 遍?

放心!這個自然有解決方法!不用擔心!

……