1 解析自動化測試的困惑
在軟件工程
談到自動化測試,首先我們要明確什么情況下需要自動化。自動化測試的目的是通過自動執行測試腳本,使測試人員在更短的時間內能夠更快地完成更多的軟件測試,并提供以更高的頻率執行測試的能力,從而有效降低測試成本、提高測試效率。從軟件測試的成本來看,使用測試工具進行軟件自動化測試的成本可以以下公式表示:
自動化測試的成本=測試工具成本+測試腳本的創建成本+測試腳本的維護成本
既然自動化測試的目的在于降低測試成本、提高測試效率,因此,測試團隊在選擇自動化測試工具時,必須在提高測試效率的同時,盡量做到自動化測試的總體成本小于手工測試成本。因此,自動化測試工具的腳本自動化創建能力和可維護性,就成了衡量自動化測試工具的重要因素。
在實際的測試工作中,一般說來,我們選擇自動化的功能測試工具無外乎要解決以下三個問題:
自動化的功能回歸測試
大批量數據驅動的軟件測試
在選擇自動化測試工具解決這些問題的過程中,人們主要關心的問題是使用自動化測試工具創建測試腳本的能力、工具的易用性、測試腳本的編程和擴展能力、測試腳本的參數化技術以及作為軟件開發重要環節的測試工作和其它軟件生命周期管理工具的集成能力。
因此,擺脫自動化測試困惑的根本途徑,就是理解自動化測試的本質,明確自己的自動化測試需求,選擇合適的自動化測試工具,幫助測試團隊提高效率、降低成本,最終實現軟件開發過程的全過程質量保證。
2 IBM最新自動化功能測試解決方案:Rational Functional Tester
IBM Rational Functional Tester(簡稱RFT)是一款先進的、自動化的功能和回歸測試工具,它適用于測試人員和GUI開發人員。使用它,測試新手可以簡化復雜的測試任務,很快上手;測試專家能夠通過選擇工業標準
3 使用IBM RFT輕松完成自動化功能測試
3.1 基于與開發人員同一開發平臺的功能測試
IBM RFT的最大特色就是基于開發人員的同一開發平臺(Eclipse),為Java和Web測試人員提供了自動化測試能力。如圖一所示,使用RFT進行軟件測試時,我們只要在開發人員工作的Eclipse環境中打開Functional Test透視圖,就會馬上擁有專業的自動化功能測試工具所擁有的全部功能。
圖一、IBM Rational Functional Test工作界面
在RFT中實現測試腳本的過程和大部分的自動化測試工具一樣,是基于錄制的腳本生成技術。當我們完成測試用例后,只要在功能測試工具條上選擇測試腳本錄制按鈕,就會啟動測試用例的腳本實現過程。
圖二、"選擇腳本資產"對話框
圖三、測試腳本錄制窗口
完成腳本錄制過程以后,RFT會自動生成用工業標準語言Java描述的測試腳本,如下所示:
import resources.ThirdwithDatapoolHelper; import com.rational.test.ft.*; import com.rational.test.ft.object.interfaces.*; import com.rational.test.ft.script.*; import com.rational.test.ft.value.*; import com.rational.test.ft.vp.*; /** * Description : Functional Test Script * @author ndejun */ public class ThirdwithDatapool extends ThirdwithDatapoolHelper { /** * Script Name : ThirdwithDatapool * Generated : 2005-4-17 15:22:36 * Description : Functional Test Script * Original Host : WinNT Version 5.1 Build 2600 (S) * * @since 2005/04/17 * @author ndejun */ public void testMain(Object[] args) { startApp("ClassicsJavaB"); // Frame: ClassicsCD classicsJava(ANY,MAY_EXIT).close(); } }
基于Java的測試腳本,為高級測試軟員提高了更強大的編程和定制能力,測試員甚至可以通過在Helper類中加入各種客戶化腳本,實現各種高級測試功能。
3.2 使用RFT輕松實現數據驅動的軟件測試
RFT具有基于向導(Wizards)的數據驅動的功能測試能力。在功能測試腳本的錄制過程中,如圖四所示,我們可以方便選擇被測應用圖形界面上的各種被測對象,進行參數化,通過生成新的數據池字段或從數據池中選擇已存在數據字段,實現數據驅動的功能回歸測試。
圖四、數據驅動的功能測試
在生成測試腳本的同時,RFT還能夠幫助測試員在驗證點中使用正則表達式或使用數據驅動的方法建立動態驗證點。動態驗證點用來處理普通驗證點的期望值隨著輸入參數不同而發生變化的情況。在下面的例子中,如圖五所示,訂單總金額會隨著購買商品數量的不同而變化,通過數據驅動的功能測試方法,測試員首先要對購買的商品數量和訂單總金額進行參數化,然后編輯驗證點中的期望值,將其用數據池中的對應訂單總金額代替,這樣驗證點中的總金額就隨著購買商品數量的不同而得出正確的總金額。通過簡單操作、無需任何編程,測試員就可以很方便地實現動態驗證點的功能。
圖五、生成動態驗證點
原文轉自:http://www.anti-gravitydesign.com