測試計劃與手動測試
1 前言
本次主題在測試部份,這一部份有著大幅度的強化,全新Team Agent架構能夠完整模擬N-Tiers環境進行測試。新增的測試工具Microsoft Test and Lab Manager(簡稱MTLM)是專為測試人員量身打造的工具,測試人員不再需要使用Visual Studio,畢竟Visual Studio的主要使用者是開發人員。在本期,筆者會從安裝Team Agent講起,接著是如何運用MTLM建立測試計劃,並依據計劃執行手動測試。
2 安裝Team Agent
除了Team Foundation Server與Visual Studio Ultimate Edition以組成Visual Studio Team System,在VSTS2010,針對測試部份增加了Visual Studio Team Agents 2010,透過它可以協助我們進行自動與手動測試。Team Agent主要包含下列三個元件:
元件名稱 | 說明 |
Test Controller | 管理Test Agent,驅使Test Agent執行。 |
Test Agent | 用於執行實際測試工作、蒐集測試資訊與模擬網路頻寬,裝於實體機器(環境)。 |
Lab Management Agent | 用於執行實際測試工作、蒐集測試資訊與模擬網路頻寬,裝於虛擬機器(環境)。 |
表1 Team Agent元件
圖1 Team Agent部署環境
我們至少需要安裝一個Test Controller,作為測試工作主控站,在測試環境裡所有相關機器都需要安裝Test Agent,如此才能在Client端進行測試動作,並可以模擬實際網路頻寬,在所有機器都可以蒐集得到完整的測試資訊。要蒐集測試資訊,須透過Diagnostic Data Adapter,您必須決定要使用那些Data Adapter,如下表:
Diagnostic Data Adapter | 說明 |
Action log and action recording | 用於錄製測試操作動作與Log。 |
IntelliTrace | 新功能,它可以將應用程式整個執行過程中所有變數變化過程與Calling Stack都記錄下來,讓我們之後能在Visual Studio中用Step by Step Debug方式去找問題。 |
Test Impact | Test Impact可以協助找出本次程式碼異動會與那些測試個案相關。 |
ASP.NET Client Proxy for IntelliTrace and Test Impact | 將IntelliTrace與Test Impact套用於蒐集Web應用程式。 |
ASP.NET profiler | 用於效能剖析,此功能VSTS2008已有,之前專欄介紹過。 |
Code coverage | 測試執行所涵蓋路徑。 |
Event log | 蒐集執行測試產生的相關事件。 |
Network emulation | 模擬網路頻寬,當然只能模擬比實際頻寬少的情況。 |
System information | 蒐集測試機器的系統相關資訊,如作業系統版本、CPU、RAM等等。 |
Video Recorder | 錄製測試執行時的實際畫面。 |
表2 Diagnostic Data Adapter元件
接下來要進行實際安裝,首先需另外下載Team Agent光碟,因為筆者想將測試環境單純化,所以會將Test Controller與Test Agent安裝在同一台機器,限於篇幅Lab Management Agent則先略過。第一個要安裝的元件是Test Controller,完成後進入Team Test Controller Configuration Tool,須設定執行測試的帳號(請註冊實體帳號,後續可用於執行使用者介面測試)、與Team Project Collection連結、以及儲存測試資料的資料庫實體。
圖2 Team Test Controller Configuration Tool
接著是安裝Team Agent,完成後請執行Team Test Agent Configuration Tool,設定執行的帳號、以及關連的Test Controller,名稱預設為Test Controller安裝主機名稱加上預設Port:6901
圖3 Team Test Agent Configuration Tool
若一切設定無誤,在測試主機上會有Test Agent Status常駐程式,點選它會出現以下畫面,顯示Test Controller與Test Agnet之狀態。
圖4 Test Agent Status
3 測試計劃
Test Plan(測試計劃)也是新功能,測試工作由Test Plan展開,Test Plan可以包含很多Test Suite,Test Suite包含很多Test Case,Test Case包含很多Action,Action用於描述測試的操作動作與預期結果,Test Suite可對應Requirement(需求)、功能(Feature)等等Work Item,以及測試的環境,透過Test Plan我們能夠依據客戶的需求、功能、以及環境去建立測試個案(Test Case)。
圖5 測試計劃結構
接下來我們從Test Plan開始,請啓動MTLM,在Testing Center畫面下,按[Add]鈕以新增Test Plan,按著選擇右下方的”Select plan”,以開啓Test Plan。
Menu切換至Testing Center -> Organize -> Test Configuration Manager,在此我們可設定環境相關變數(Configuration Variables),預設項目有Operation System、Browser,您可以依實際環境新增、修改這些變數。
圖6 管理Configuration Variables
點選上方的”Properties”,您可以設定此Test Plan相關資訊,如開始、結束日期,對應的環境變數(Configuration Variables)、Test settings(決定蒐集那些資訊)、Test environment(決定執行的機器以及使用的帳號權限)。
接下來要設定我們要蒐集那些測試資訊,因為筆者所使用的是最簡單的單機環境,所以會有預設的Diagnostic Data Adapter,若要修改可從Lab Center -> Testing Settings,會有一個”Local Test Run”項目,開啟它點選”Data and Diagnostics”頁即可看到相關Diagnostic Data Adapter設定。
圖7 Data and Diagnostics設定
接下來在”Content”頁面,按[New]鈕以新增Test Suite。針對Test Suite,我們可以新增需求,按上方[Add requirements]鈕以進行連結相關需求Work Item。接著從需求的Work Item,往下新增Test Case,在Test Case畫面下方之”Steps”頁,我們可以輸入測試操作步驟,在每個操作步驟中,若有需要儲存參數,請按[Insert parameter]鈕,在”Parameter Values”區塊可以輸入參數值,可供測試人員直接複製這些參數值進行測試。
圖8 Test Case維䕶畫面
最後完整的Test Plan階層會如下圖:
圖9 Test Plan階層
4 執行手動測試
Test Plan完成後,按上方”Test”連結,在左下方區塊會出現與Test Plan一樣的階層,在右下方區塊選擇欲執行的Test Case,然後按[Run]鈕,即啓動Test Runner開始手動測試工作。
接下來按[Start Test]鈕,Test Runner會出現此Test Case所有的操作步驟,測試人員可以依據指令進行測試,並且可以直接複製上面的參數值,減少人為操作失誤,若此步驟操作結果正常,選擇右邊的下拉選單,將其標示成”Pass”;否則標示成”Fail”,所有步驟完成後,按[End Iteration]鈕,再按上方的[Save]儲存測試結果。
圖10 Test Runner畫面
若測試過程式有發現問題,我們可以按[Capture rectangular screenshot]鈕擷取實際畫面,按[Create bug]鈕產生Bug Work Item,在Bug Work Item明細中會記錄當時的操作步驟狀態、測試人員實際操作行為、以及系統資訊,後兩者即前面介紹的Diagnostic Data Adapter所蒐集的資訊。
圖11 從Test Runner產生Bug Work Item
Action Log內容
Start testing
Parent window changed to 'Home Page –
Windows Internet Explorer'
Type '3' in 'ctl00$MainContent$TextBox1' text
box
Step Completed : Input number @TextBox1
Select '-' in 'ctl00$MainContent
$DropDownList1' combo box
Step Completed : Select operator
@DropDownList1
Move 'ctl00$MainContent$TextBox2' text box
from (32, 16) to 'ctl00$MainContent
$DropDownList1' combo box (12, 10)
Type '2' in 'ctl00$MainContent$TextBox2' text
box
Step Completed : Input number @TextBox2
Click '=' button
5 結語
筆者剛開始接觸MTLM的使用者介面,真是有點不習慣,不過筆者認同將測試工具與開發工具分離的想法,至少對於不會寫程式的測試人員看到MTLM不會像看到Visual Studio覺得壓力這麼大。
6 參考資料
- MSDN Testing the Application:http://msdn.microsoft.com/en-us/library/ms182409(VS.100).aspx
- An Introduction to Manual Testing:http://channel9.msdn.com/shows/10-4/10-4-Episode-23-An-Introduction-to-Manual-Testing/