實際應用:
開發部最近提出對現有軟件系統的登陸功能進行測試。測試工程師設計測試用例,在實際工作中發現登陸系統版本基本穩定,而且功能孤立,界面在將來的版本中變化的可能性不大,所以決定測試自動化,減少人工重復勞動,提高測試效率。
測試工程師開始利用黑盒測試方法等價類法,因果分析法,邊界值法等方法設計測試用例,開發功能測試腳本,用 datapool (數據池中的數據是設計測試用例的時候用到的輸入值)保存測試數據。 登陸界面需要輸入用戶名,密碼,在數據池中建立兩個字段 username,password 。 Datapool 中的數據和測試用例中輸入數據相一致。
第一步:創建名字為 dp 的 datapool, 假如字段 name,password 并自動生成數據,然后把測試用例中各種數據輸入 dp 中
第二步:錄制功能測試腳本,腳本如下:
Sub Main
Dim Result As Integer
'Initially Recorded: 2004-4-24 10:59:24
'Script Name: Five
StartApplication "xxx"
Window SetContext, "Caption= 登陸 ", ""
InputKeys "sa"
EditBox Click, "ObjectIndex=1", "Coords=34,9"
InputKeys "sa"
PushButton Click, "Text= 登陸 "
Window SetContext, "Caption= 登陸 ;Class=#32770", ""
PushButton Click, "Text= 確定 "
End Sub
第三步:循環讀出 datapool 數據,進行自動化測試,腳本如下
'$Include "sqautil.sbh"
Sub Main
Dim Result As Integer
Dim dp_id as Long
Dim dp_Result as Long
Dim strName as String
Dim strPassWord as String
'Initially Recorded: 2004-4-24 10:30:51
'Script Name: Four
StartApplication "xxx"
Window SetContext, "Caption= 登陸 ", ""
dp_id = SQADatapoolOpen ("dp", FALSE, SQA_DP_SEQUENTIAL, FALSE)
dp_Result = SQADatapoolFetch (dp_id)
while dp_Result <> sqaDpEOF
dp_Result = SQADatapoolValue (dp_id, "name", strName)
dp_Result = SQADatapoolValue (dp_id, "password", strPassWord)
dp_Result = SQADatapoolFetch (dp_id)
InputKeys strName
EditBox Click, "ObjectIndex=1", "Coords=34,9"
InputKeys strPassWord
PushButton Click, "Text= 登陸 "
Window SetContext, "Caption= 登陸 ;Class=#32770", ""
PushButton Click, "Text= 確定 "
wend
dp_Result = SQADatapoolClose (dp_id)
End Sub
第四步: 加入執行成功和失敗的 result 信息并寫入 Result report 中,和必要的除錯處理。對腳本進行優化。加入 BASELINE 設置(對于測試基線有兩種思路,一種是文件處理,采用文件類型為文本文件或者 EXCEL 或者 WORD ,讀取 DATAPOOL 測試數據和文件內容對比,檢測測試數據是否在文件中存在,當然這里的測試基線考慮的不夠周全,你可以定制規則,逐步完善,一種是直接從數據庫中讀取數據進行對比 , 用數據庫作為 baseline 來避免以后增加測試用例后改動 baseline 文件,當然這么做跟測試理論不合,應該把預期輸出保存到特定文件中作為 baseline, 這個留給你自己動手來改進)。
腳本如下:
'$Include "sqautil.sbh"
Sub Main
Dim Result As Integer
Dim dp_id as Long
Dim dp_Result as Long
Dim strMessage as String
Dim vSText as string
Dim cnn As object
Dim Rst As object
Dim strLink As String
Dim strSql As String
Dim strName as String
Dim strPassWord as String
'Initially Recorded: 2004-4-24 10:30:51
'Script Name: Four
strLink = " 連接字符串 "
Set cnn = CreateObject("ADODB.Connection")
Set Rst = CreateObject("ADODB.Recordset")
cnn.Open strLink
Rst.CursorLocation = 0
Rst.LockType = 1
Rst.CursorType = 2
On Error Goto Last
StartApplication "xxx"
Window SetContext, "Caption= 登陸 ", ""
dp_id = SQADatapoolOpen ("dp", FALSE, SQA_DP_SEQUENTIAL, FALSE)
dp_Result = SQADatapoolFetch (dp_id)
if (dp_Result = 0) then
while dp_Result <> sqaDpEOF
dp_Result = SQADatapoolValue (dp_id, "name", strName)
dp_Result = SQADatapoolValue (dp_id, "password", strPassWord)
dp_Result = SQADatapoolFetch (dp_id)
InputKeys strName
EditBox Click, "ObjectIndex=1", "Coords=34,9"
InputKeys strPassWord
PushButton Click, "Text= 登陸 "
strMessage = " 用戶名: " + strName + "; 密碼: " + strPassWord
strSql = "select * from login where name = "" " + strName + " "" and password = """ + strPassWord + """"
Rst.open strSql, cnn
Window SetContext, "Caption= 登陸 ;Class=#32770", ""
文章來源于領測軟件測試網 http://www.kjueaiud.com/