測試計劃與手動測試

測試計劃與手動測試

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元件

clip_image002

圖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連結、以及儲存測試資料的資料庫實體。

clip_image004

圖2 Team Test Controller Configuration Tool

接著是安裝Team Agent,完成後請執行Team Test Agent Configuration Tool,設定執行的帳號、以及關連的Test Controller,名稱預設為Test Controller安裝主機名稱加上預設Port:6901

clip_image006

圖3 Team Test Agent Configuration Tool

若一切設定無誤,在測試主機上會有Test Agent Status常駐程式,點選它會出現以下畫面,顯示Test Controller與Test Agnet之狀態。

clip_image008

圖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)。

clip_image009

圖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,您可以依實際環境新增、修改這些變數。

clip_image011

圖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設定。

clip_image013

圖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”區塊可以輸入參數值,可供測試人員直接複製這些參數值進行測試。

clip_image015

圖8 Test Case維䕶畫面

最後完整的Test Plan階層會如下圖:

clip_image017

圖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]儲存測試結果。

clip_image019

圖10 Test Runner畫面

若測試過程式有發現問題,我們可以按[Capture rectangular screenshot]鈕擷取實際畫面,按[Create bug]鈕產生Bug Work Item,在Bug Work Item明細中會記錄當時的操作步驟狀態、測試人員實際操作行為、以及系統資訊,後兩者即前面介紹的Diagnostic Data Adapter所蒐集的資訊。

clip_image021

圖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 參考資料