選擇測試自動化框架

發表于:2007-05-05來源:作者:點擊數: 標簽:自動化框架自動測試測試選擇
選擇測試 自動化框架 --- 原著 Mike Kelly 《 Choosing a test automation framework 》 ---Kiki 翻譯于 2005/6/16 一種測試自動化框架( test automation framework )是由一些假設,概念和為自動化 軟件測試 提供支持的實踐組成的一個集合。這篇文章描述并
 
clearcase/" target="_blank" >cc99ff>--- 原著Mike KellyChoosing a test automation framework
---Kiki翻譯于2005/6/16
 
一種測試自動化框架(test automation framework)是由一些假設,概念和為自動化軟件測試提供支持的實踐組成的一個集合。這篇文章描述并演示了5種基本的框架。
 
基于只使用一種捕獲工具例如IBM Rational® Robot來錄制并且回放測試用例而得出自動化測試工作量是有缺陷的。只使用一種捕獲工具來運行復雜且巨大的測試是非常耗費時間和昂貴的。因為這些測試是隨機創建的,他們的功能性是很難追蹤和重現,而且維護成本也是非常昂貴的。
對于一個剛剛起步的自動化測試小組,更好的選擇是使用一種測試自動化框架,它已經定義好了由一些假設,概念和制定工作平臺或為自動化測試提供支持的實踐組成的集合。在這篇文章中我試著將一些我熟悉的測試自動化框架-特別是測試腳本模塊化,測試庫構架,關鍵字驅動/表格驅動測試,數據驅動測試和混合的測試自動化。我并不會評價哪一個框架更好或更差,而只是提供了一些關于他們的描述和演示,所適用的地方和如何使用IBM Rational工具集實現的一些技巧。
 
測試腳本模塊化框架(The Test Script Modularity Framework
測試腳本模塊化框架需要創建能夠代表測試下應用程序(application-under-test)的模塊,零件(Section)和函數的小的,獨立的腳本。然后用一種分級的方式將這些小腳本組成更大的測試,實現一個特定的測試用例。
在我將提及的所有的框架中,這種框架應該是最容易精通且掌握的。就在一個部件前面構建一個抽象層以掩藏應用程序其他的部件方面,它是一個很著名的編程策略。它把應用程序從在部件的修改中隔離開來并規定了在應用程序設計中的模塊性。為了提高自動化測試套件(test suite)的可維護性和可測量性,測試腳本模塊化框架應用了抽象或封裝的原則。
為了演示這種框架的應用,我以自動化Windows計算器程序中的測試其基本功能(加,減,乘和除)的一個簡單測試用例(如圖)為例。
腳本層次結構的最下層是獨立的加減乘除的腳本。下面的第一個腳本是加法,第二個是減法。
 
 
然后在層次結構中下一級的兩個腳本用來代表視圖菜單中的標準視圖和科學視圖。就像下面的關于標準視圖的腳本中表現的一樣,這些腳本調用了我們在之前創建的腳本。
 
最后,在層次結構中最頂層的腳本應該是用來測試應用程序不同視圖的測試用例。
 
 
從這個簡單的例子中你可以了解到這種框架是如何產生高度的模塊化并且增加測試套件的全面的可維護性。如果以后計算器上的某一個控制鍵被移動了,你所需要改變的只是底層調用這個控制鍵的腳本,而不是測試這個控制鍵的所有測試用例。
 
測試庫構架框架(The Test Library Architecture Framework
測試庫構架框架和測試腳本模塊化框架非常相似,有著同樣的優勢,但是它把測試下的應用程序分成過程和函數,而不是腳本。這種框架要求創建代表測試下應用程序模塊,零件和函數的庫文件(SQABasic libraries, APIs, DLLs等等)。然后這些庫文件被測試用例腳本直接調用。
為了演示這種框架的應用,我將自動化同上的測試用例,但使用了一個SQABasic的庫文件。這個庫文件包括執行操作的一個函數。以下是頭文件(header file (.sbh))和庫文件(library source file (.sbl))。
 
使用這個庫文件,產生以下測試用例腳本。
 
從這個例子中,你能夠看到這種框架也產生了高度的模塊化,同樣增加了測試套件的全面可維護性。就像在測試腳本模塊化一樣里,如果計算器中的一個控制鍵移動了,你所要做的只是更改庫文件,這樣同時也更新了所有調用控制鍵的腳本。
 
關鍵字驅動或表驅動測試框架The Keyword-Driven or Table-Driven Testing Framework
關鍵字驅動和表格驅動測試是一種獨立于應用程序的自動化框架,它們是可以互相替換的術語。這種框架要求開發于用來運行的自動化工具,驅動測試下應用程序和數據的測試腳本代碼相獨立的數據表和關鍵字。關鍵字驅動測試看上去非常象手工測試。在關鍵字測試里,應用程序的功能特性被寫在表格和每個測試的詳細指引里了。
如果要映射出手工測試Windows計算器功能過程中用鼠標執行的操作,我們可以創建如下的表格?!?Window”一列包含了我們執行鼠標操作的應用程序窗口的名字(在這個例子中,他們都發生在計算器窗口里)?!?Control”一列指出了鼠標點擊的控制鍵的類型?!?Action” 一列列出了鼠標的操作(或是測試人員的)?!盇rguments”列指出了特定的控制鍵(1, 2, 3, 5, +, -等)

Window
Control
Action
Arguments
Calculator
Menu
View, Standard
Calculator
Pushbutton
Click
1
Calculator
Pushbutton
Click
+
Calculator
Pushbutton
Click
3
Calculator
Pushbutton
Click
=
Calculator
Verify Result
4
Calculator
Clear
Calculator
Pushbutton
Click
6
Calculator
Pushbutton
Click
-
Calculator
Pushbutton
Click
3
Calculator
Pushbutton
Click
=
Calculator
Verify Result
3

 這個表格代表了一個完整的測試,為了表示一系列測試可以根據需要增加。一旦你創建了數據表,你就可以簡單地編寫用來讀取每一個步驟的程序或腳本集,基于Action字段中的關鍵字執行步驟,完成錯誤檢查,然后記錄任何相關的信息。這種程序或腳本集看上去象下面的偽代碼:
 
Main Script / Program
Connect to data tables.
Read in row and parse out values.
Pass values to appropriate functions.
Close connection to data tables.
Menu Module
Set focus to window.
Select the menu pad option.
Return.
Pushbutton Module
Set focus to window.
Push the button based on argument.
Return.
Verify Result Module
Set focus to window.
Get contents from label.
Compare contents with argument value.
Log results.
Return.

從這個例子里你可以看到為了生成許多的測試用例,這種框架只要求非常少的代碼。用數據表生成不同的測試用例卻可以重用相同的代碼。IBM Rational工具集可以通過使用交互式的文件讀取,查詢或數據池延伸開來,或者你可以連同IBM Rational一起使用其他的工具(免費,其他的開發工具等)來構建這種類型的框架。
 
數據驅動測試框架(The Data-Driven Testing Framework
數據驅動測試是測試從數據文件(數據池,ODBC源,cvs文件,Excel文件,DAO對象等)中讀取輸入和輸出數值并載入到捕獲的或手工編碼的腳本中變量里的一種框架。在這種框架里,輸入數值和輸出驗證數值都使用變量。在測試腳本中編寫貫穿程序的導航,數據文件的讀取,記錄測試狀態和信息的日志的代碼。
測試用例包含在數據文件里而不是在腳本里的方面上,這種框架和表格驅動測試有些相似;腳本只是一種“驅動器”(driver)或傳送數據的機制。盡管導航的數據不包含在表結構中,但和表格驅動測試還是不同的。在數據驅動測試里,只有測試數據包含在數據文件中。
如果使用SQABasic語言和IBM Rational的數據池功能,IBM Rational工具集里有自帶的數據驅動功能。為了演示這種框架的使用,我們將測試一個簡單應用程序中的訂單表格。
 
 
如果我們錄制這個窗口中的數據輸入,得到以下腳本:
 
 
我們可以使用數據池來設置測試有效和無效信用卡號和過期日期的測試用例。例如,下圖中是用于測試數據字段的測試用例中的數據池,
 
 
為了接收這些數據,我們修改腳本如下:
 
 
為了使用數據池,我增加了SQABasic命令,還增加了“While”循環來處理在數據池中每一行數據。我必須說明一下在“If…Then”語句中的Ucase(SQABasic命令)函數。Ucase用于將參數(在這個例子里是指數據池返回的數值)全部轉換成大寫。這種方法不是大小寫敏感的,所以代碼更強壯。
這個框架趨向于減少你為了實現所有測試用例而需要的全部的腳本數量,并且在開發繞開錯誤的辦法(Workaround)和維護方面提供了最好的靈活性。和表格驅動測試非常相似的是,表格驅動測試只需要非常少的代碼就可以產生大量的測試用例。用IBM Rational工具集實現這種框架是非常容易,并且它也提供了大量的關于指引和例子的詳細文檔。
 
混合的測試自動化框架(The Hybrid Test Automation Framework
最常見的已實現的框架是上述技術的組合,抽取它們的優點,剔除其弱點。這種混合的測試自動化框架是發展時間較長且應用項目最多的框架。下圖可以讓你對如何用IBM Rational工具集組合不同的框架有初步的認識。
 
總結
我描述了自動化測試小組可以考慮使用的5種測試自動化框架,而不是依賴某一種捕獲工具。你可以使用一種或它們之間的組合。你可以通過嵌套測試腳本實現模塊化并使用SQABasic庫文件來實現功能和過程。不管你選擇哪一種數據驅動技術,你都可以使用數據池,或者你還可以擴展Robot來處理其他數據存貯類型。應用最好的框架的竅門和解決他們的唯一方法是投入進去并開始使用它們。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97