實驗四+161+張麗霞
第四次實驗報告:功能自動化測試
一、實驗目的
1) 學習QTP工具的使用
2)了解黑盒自動化測試
二、實驗要求
(1)對被測程序進行黑盒測試用例設計
(2)對QTP的飛機訂票系統的任一界面或控件實現自動化測試。(測試的具體自選)
(3)寫出該程序的缺陷。
三、實驗內容
1、對QTP的樣例小程序飛機訂票系統,實現自動化測試。(學號被3整除,測3a;余1,測3b;余2,測4a)
2、要求:
1)寫出飛機訂票系統的被測需求。
測試部分:飛機訂票系統登錄界面;
需求: 登錄界面進行自動化測試
輸入用戶名和密碼,有以下幾種情況:
- 當用戶名和密碼都沒有輸入時,點擊OK按鈕,是否提示請輸入用戶名;
i)用戶名和密碼都未空時;
ii)用戶名為空,密碼為錯誤;
iii)用戶名為空,密碼為正確;
- 2. 當輸入正確的用戶名,未輸入密碼,點擊OK按鈕,是否提示請輸入密碼;
i)用戶名的長度小於4位數;
ii)用戶長度不小於4位數;
- 對密碼進行驗證;
i)密碼是否為空;
ii)密碼長度是否有驗證;
iii)密碼是否固定值;
- 當輸入正確的用戶名和密碼時,點擊OK按鈕是否進入操作界面;
2)設計測試用例。寫出測試用例表。
在對登陸模塊進行測試時,如果要盡可能全面的測試登陸功能,就要考慮到它的的正常情況和異常情況,在本系統的登錄模塊中只要用戶名不小於4位字符,密碼是“mercury”(不區分大小寫),便可登錄成功。所以設計如下測試用:
用例編號 |
輸入數據 |
預期結果 |
實際結果 |
測試結果 |
|
用戶名 |
密碼 |
||||
001 |
|
|
提示請輸入用戶名 |
提示請輸入用戶名 |
通過 |
002 |
|
bbbb |
提示請輸入用戶名 |
提示請輸入用戶名 |
通過 |
003 |
|
mercury |
提示請輸入用戶名 |
提示請輸入用戶名 |
通過 |
004 |
aaa |
|
提示用戶名長度少於4位 |
提示用戶名長度少於4位 |
通過 |
005 |
aaa |
bbbb |
提示用戶名長度少於4位 |
提示用戶名長度少於4位 |
通過 |
006 |
aaa |
mercury |
提示用戶名長度少於4位 |
提示用戶名長度少於4位 |
通過 |
007 |
aaaaa |
|
提示輸入密碼 |
提示輸入密碼 |
通過 |
008 |
aaaaa |
bbb |
提示密碼錯誤 |
提示密碼錯誤 |
通過 |
009 |
aaaaa |
mercury |
登陸成功,轉入對應的系統頁面 |
登陸成功,轉入對應的系統頁面 |
通過 |
3)編寫測試腳本,實現自動化測試。
測試腳本:
1 Dialog("Login").WinEdit("Agent Name:").Set DataTable("AgentName", dtGlobalSheet) 2 Dialog("Login").WinEdit("Password:").Set DataTable("Password", dtGlobalSheet) 3 Dialog("Login").WinButton("OK").Click 4 For i = 1 to datatable.localsheet.getrowcount 5 6 datatable.localsheet.setcurrentrow i 7 8 If Dialog("Login").Dialog("Flight Reservations").Exist(5) Then 9 10 Dialog("Login").Dialog("Flight Reservations").WinButton("確定").Click 11 12 Reporter.ReportEvent micFail,"登錄失敗","登錄失敗" 13 14 Else 15 16 Reporter.ReportEvent micPass, "登陸成功", "登陸成功" 17 18 Window("Flight Reservation").Close 19 20 End If 21 22 next
4)寫測試小結。該程序的缺陷,和測試結果。
缺陷:在錄制的時候,如果不小心點到別的功能,它就會錄制到不需要的功能。
測試結果:測試結果與預期結果均一致,但是我只有將登陸成功的測試用例放在最後,前面的結果才會出來,而且雖然有結果,但是測試還是失敗了。
3、實驗總結。
在本次實驗中,剛開始測試,在錄制之後,用循環語句和判斷語句對DataTable的測試用例進行測試,發現程序是執行了循環語句,但是並沒有輸入數據,最後還是算是成功使用QTP自動化測試了登錄功能。我感覺是腳本編寫的不夠正確,或是在做測試時存在紕漏,導致了雖然測試結果出來了,但是測試過程還是失敗了,還是要再深入地學習QTP,才能更好的掌握。在測試過程中,我發現試用QTP自動化測試,加速了整個測試的效率,自己不用一遍一遍的去輸入數據,它會根據我們的測試用例,自動模擬鼠標和鍵盤的輸入。而且QTP可以通過編寫復雜的測試腳本,帶出隱藏在被測程序中的信息;每一次的測試都可以正確的執行相同的動作,避免了人工輸入可能出現的的錯誤;還可以一遍又一遍的執行相同的測試,省了很多時間。
實驗四+161+張麗霞