分解TestCase
長的,進行調試是很麻煩的事情,此外如果今后某一部分的程序進行了修改的話,修改和重
因此我們可以將一個TestCase 進行分解,分解TestCase 可以采用以下幾種方式
1、將任務分段,比如Log、Logout、公共窗口的打開、關閉
2、錯誤處理的分類,比如將某一輸入項目的各中錯誤輸入分開錄制
3、公共界面的操作函數化統一處理,這種方式主要可以象移動BOSS 的業務受理等不
同窗口使用同一子界面的情況,如DELPHI/C++ Builder 中的Frame。
將不同任務(TestCASE)的分解之后,我們可以使用call 函數及自定義函數機制來調
用不同的子Script、函數來完成一個的TestCase
通過隨機組合實現大規模路徑覆蓋
有時候我們需要將一組數據隨機組合來進行大量數據測試,如填寫某些表單。那么我們
有兩種辦法:一是使用外邊工具隨機生成大量數據,也可用使用先將各個數據按測試要求生
成一小組數據,然后使用rand 方法隨機抽取數據來測試
偽代碼如下
data a[];
date b[];
for (i=0;i<要測試的次數;i++){
ca=a[rand()]
cb=b[rand()]
dosomething;
}
使用這種代碼的好處是隨意調整測試力度,缺點是數據單一,不想外邊工具一樣生產的
而不應采用這種辦法。
動態修改chk 文件實行參數化的動態Check
單號,而我們又往往需要根據這個單號進行一些判斷,比如數據庫中對應的數據是否完整。
還有,當我們需要根據輸入的某些條件來判斷輸出的條件是否正確,這個時候WINRUNNER
但是我們可用使用WINRUNNER 的函數及WINNRUNNER 的錄制功能,先錄制一個使
用ULTRAEDIT(或類似工具)手工修改chk 文件的函數。然后將要修改的內容參數化,在
主SCRIPT 執行Check 以前先調用該函數。
在Script 里面管理GUI
文件,整個測試使用同一個/系列GUI 文件。但實際我覺得這很困難的,特別是程序比較的
話,光是找出所有的窗口就已經是很痛苦的一件事情。我認為應該首先應該將GUI 與SCRIPT
同時存儲在同一目錄下。
然后使用GUI_load 在SCRIPT 開始以前就裝載GUI,在SCRIPT 開始增加:
if (GUI_load(".\\login.gui")!=0)
{
pause ("Can't load login.gui");
texit;
}
使用Winner 做過復雜測試的可能會問,如果不同GUI 文件中的對象名稱相同的話,運
行時候就會出問題。因此我們應該在SCRIPT 完畢的時候加入
GUI_close(".\\login.gui");
注意恢復測試前的狀態
此外,如果我們要連續運行多個測試CASE、就必須考慮將被測試程序恢復測試前的狀
態,比如我們在測試SCRIPT A 中打開了窗口A,如果下一個TESTCASE 不需要用到窗口A,
那么在SCRIPT A 窗口A。這樣下一個TESTCASE 才能正常運行。
如果我們采用采用批處理及CALL 的方式來組織SCRIPT 的話,就應該堅持這樣一個原
此外如果對數據庫的操作也要根據具體要求考慮恢復。這些操作可以考慮通過錄制通過
數據庫客戶端的操作來實現。
WinRunner 腳本標準格式
目錄結構
存放目錄要求:
1、根目錄與項目名稱相同,如江西移動BOSS 測試目錄為JXBOSS
2、根目錄下應該是按子項目存放,如SALES、ACCOUNT。如果有公共腳本,存
放在Share 目錄下面
3、子項目下面應該根據功能/TestCase 來存放,如果有公共腳本也應該存放在
Share 目錄下
4、為存取及備份方便,目錄不能使用中文。使用的名稱應該盡量與開發保持一致
5、GUI 文件應該存放在腳本的同一目錄,并且名稱相同
6、正確性測試(使用完全正確數據來檢查程序功能是否完成)目錄名稱規定為
validity
以下是一個目錄例子
JxBoss
-Sales
--ChangeSimCard
--validity
--CheckSimNoExistAnIdError
--Share
--Share
-Aclearcase/" target="_blank" >ccount
腳本要求
注釋要求
每個腳本的開頭注釋格式如下:
#腳本名稱:文件名稱
#創建人:創建人
#創建日期:格式為YYYY/MM/DD
#功能:腳本完成的功能描述
#運行前要求:運行前的要打開的窗口及狀態要求、數據庫中的數據要求、被測試
程序運行目錄等
#修改歷史:
# 修改人:
# 修改 http://www.csai.cn 格式為YYYY/MM/DD
# 主要修改內容:
注意創建人及修改人必須是中文完整姓名,不允許使用其它任何名稱。運行前的要求一
定要描述清楚
子功能注釋
原文轉自:http://www.anti-gravitydesign.com