周鹿揚 琚書存 徐祥
摘要 隨著現(xiàn)代社會的信息化發(fā)展,越來越多的基于Web的網(wǎng)絡(luò)應(yīng)用程序應(yīng)運而生,對軟件測試的需求也隨之增加。該研究采用用戶驗收測試方法UAT指導(dǎo)和管理整個測試流程,使用QC、QTP、Load Runner這3個測試工具對Web系統(tǒng)的功能和性能進行測試,其中性能測試包括系統(tǒng)穩(wěn)定性測試和數(shù)據(jù)庫壓力測試。測試結(jié)果表明,用戶驗收測試方法UAT能夠高效地測試基于Web的網(wǎng)絡(luò)應(yīng)用程序。
關(guān)鍵詞 Web測試;UAT;Quality Center;Quick Test Professional
中圖分類號 S126 文獻標(biāo)識碼 A 文章編號 0517-6611(2015)27-382-03
Test Research of Network Application Program Based on Web
ZHOU Lu-yang, JU Shu-cun*, XU Xiang
(Rural Comprehensive Economic Information Center of Anhui Province, Hefei, Anhui 230039)
Abstract With the development of the intelligent society, more and more Web applications are developed to satisfy humans requirement. This research uses the UAT technology to guide and manage the whole testing flow and do the functional testing, stability testing and pressure testing research. Three testing tools are used during the whole process and they are QC,QTP,Load Runner. The final result turns out that this UAT method can manage the whole testing process for Web applications in high efficient way.
Key words Web testing; UAT; Quality Center; Quick Test Professional
隨著社會信息化、智能化的發(fā)展,為適應(yīng)各種需求,各種軟件系統(tǒng)特別是Web應(yīng)用程序應(yīng)運而生,隨之而來的是對軟件測試的增加,對軟件測試的需求也隨之增加。然而由于開發(fā)周期、程序員素質(zhì)的影響,需求分析不足、程序存在一些Bug的情形時有發(fā)生,例如由于開發(fā)團隊固有的開發(fā)思維,程序員更加關(guān)注用什么樣的數(shù)據(jù)結(jié)構(gòu)、調(diào)用什么樣的函數(shù)等程序?qū)用娴膯栴},并且對于自己的開發(fā)成果往往帶有較強的主觀色彩,因此軟件測試對于確保程序的正確性、完整性、安全性和質(zhì)量有著重要意義。基于Web的系統(tǒng)測試相較于傳統(tǒng)的軟件測試,它不但需要檢查和驗證是否按照設(shè)計的要求運行,由于網(wǎng)絡(luò)和終端Web媒體的不可預(yù)見性,一般還要測試系統(tǒng)在不同用戶的瀏覽器上的兼容性,重要的是,用戶Web終端環(huán)境復(fù)雜,一般還要從最終用戶的角度進行安全性和可用性測試。因此,有必要為測試和評估復(fù)雜的基于Web的系統(tǒng)研究出新的測試方法和技術(shù)。
該研究以安徽省“新型農(nóng)民培訓(xùn)民生工程”信息管理系統(tǒng)為對象,采用UAT(User Acceptance Testing用戶驗收測試)方法[1]體系來指導(dǎo)和管理整個測試流程,使用HP的Quality Center、Quick Test Professional、Load Runner等測試工具,主要針對系統(tǒng)的功能和性能展開測試。其中功能測試包括可用性測試(導(dǎo)航、圖形、內(nèi)容、整體界面等的測試)、鏈接測試、表單測試、數(shù)據(jù)統(tǒng)計正確性測試等[2],性能測試包含穩(wěn)定性測試和數(shù)據(jù)庫的壓力測試[3]。
1 基于Web的應(yīng)用程序功能測試
功能測試主要是為了保證系統(tǒng)的可用性而進行的一系列測試,包括鏈接測試、表單測試、數(shù)據(jù)統(tǒng)計正確性測試以及界面的友好性測試等,確保系統(tǒng)功能在不同的用戶終端能夠正常運行[3]。
1.1 用戶需求分析 通過閱讀用戶手冊了解用戶需求,該系統(tǒng)的最大特點是可以實現(xiàn)省、市、縣(區(qū))3級管理,不同的用戶有不同的權(quán)限,不同的培訓(xùn)機構(gòu)可以對相應(yīng)類型的臺賬進行操作。概括來說該系統(tǒng)的用戶分為3類:
(1)系統(tǒng)管理員(1個)。負(fù)責(zé)省市縣區(qū)的管理和培訓(xùn)機構(gòu)的管理(可以增加、修改、查詢和刪除省市縣區(qū)和培訓(xùn)機構(gòu));具有五種臺帳和4種月報表的全部操作權(quán)限(增加、修改、查詢和刪除的操作)。
(2)省市縣區(qū)管理員(137個)。具有本省、市、縣區(qū)的4種月報表的統(tǒng)計查詢權(quán)限。
(3)培訓(xùn)機構(gòu)(1 580個)。具有本機構(gòu)的臺帳申報、修改、查詢權(quán)限。
根據(jù)以上內(nèi)容編寫Traceability Matrix(簡稱TM),TM是測試場景的概括,它反映整個測試的邏輯,確保各種場景至少有一個測試用例。
1.2 功能測試的測試用例設(shè)計 設(shè)計測試用例時一定要遵從確認(rèn)過的TM,在測試數(shù)據(jù)的準(zhǔn)備等細(xì)節(jié)方面一般用邊界值測試方法(如測試報表時,會測到0的情況)[4],準(zhǔn)備的數(shù)據(jù)盡量涵蓋系統(tǒng)設(shè)計的所有內(nèi)容。然后在QC的test plan中設(shè)計測試用例,如圖1所示。
1.3 測試用例的執(zhí)行 通過QC的Test Lab來管理測試用例的執(zhí)行,執(zhí)行的時候有3種結(jié)果:“pass”(測試結(jié)果與預(yù)計結(jié)果一致),“not complete”(因為某種原因現(xiàn)在還無法判斷測試結(jié)果,比如,需要等下一工作日再做一個交易),“failed”(測試結(jié)果與預(yù)計結(jié)果不一致)。
1.4 測試缺陷的管理 當(dāng)測試用例執(zhí)行沒有通過時稱之為“缺陷”,一般通過QC的defect模塊來管理測試過程中的缺陷,defect模塊的“status”字段有7個值(new、open、retest、reopen、fixed、closed、rejected),可以很全面地跟蹤缺陷的整個流程。測試缺陷的管理流程如圖2所示。
2 基于Web的網(wǎng)絡(luò)應(yīng)用程序性能測試
性能測試指運用自動化測試工具來模擬多種正常、峰值以及異常負(fù)載條件對系統(tǒng)的各項性能指標(biāo)進行測試。該系統(tǒng)的性能測試包括系統(tǒng)的穩(wěn)定性測試和數(shù)據(jù)庫的壓力測試[5]。
2.1 連接速度測試 用戶對Web頁面的響應(yīng)時間的要求一般比較苛刻,如果Web系統(tǒng)響應(yīng)時間太長(例如超過5 s),用戶就會因沒有耐心等待而離開,另外可能產(chǎn)生由于響應(yīng)時間過長而導(dǎo)致的操作超時錯誤。此次測試對系統(tǒng)主頁面以及新增用戶操作頁面分別在移動、聯(lián)通、電信、內(nèi)網(wǎng)4種網(wǎng)絡(luò)進行連接測試,記錄2個頁面的連接時間。
2.2 穩(wěn)定性測試 穩(wěn)定性測試指一次性錄入批量數(shù)據(jù)時,測試系統(tǒng)的穩(wěn)定性,以保證Web系統(tǒng)在需求范圍內(nèi)能正常工作。穩(wěn)定性級別包括某個時刻同時訪問Web系統(tǒng)的用戶數(shù)量,以及并發(fā)在線數(shù)據(jù)處理的數(shù)量,例如:Web應(yīng)用系統(tǒng)能允許多少個用戶同時在線,如果超過了這個數(shù)量系統(tǒng)的異常狀態(tài);Web應(yīng)用系統(tǒng)能否處理大量用戶對同一個操作的請求。該研究穩(wěn)定性測試采用自動化測試的方法,對于不同的臺賬(農(nóng)村勞動力轉(zhuǎn)移培訓(xùn)、農(nóng)業(yè)專業(yè)技術(shù)培訓(xùn)、農(nóng)民創(chuàng)業(yè)培訓(xùn)、農(nóng)民科技示范培訓(xùn)和技術(shù)指導(dǎo)員臺賬)用QTP軟件分別錄制和編寫腳本,并且分別準(zhǔn)備50條數(shù)據(jù),然后在不同的時間段運行QTP腳本,自動向系統(tǒng)錄入數(shù)據(jù),測試系統(tǒng)的穩(wěn)定性。
2.3 壓力測試 壓力測試主要針對數(shù)據(jù)庫,使用Load Runner工具,選擇對農(nóng)村勞動力轉(zhuǎn)移培訓(xùn)臺賬的添加功能來進行數(shù)據(jù)庫的壓力測試。測試時虛擬用戶數(shù)為100,采用默認(rèn)模式,執(zhí)行時同時加載所有的用戶,100個用戶同時新增100條數(shù)據(jù),此次測試Load Runner腳本如下:
#include "web_api.h"
Action()
{
web_url("login.asp","URL=http://pxgc.ahau.edu.cn/login/login.asp","Resource=0",
"RecContentType=text/html","Referer=","Snapshot=t1.inf","Mode=HTML",
EXTRARES,"Url=../ssx/images/floading.gif",ENDITEM,LAST);
web_submit_data("f_city.asp","Action=http://pxgc.ahau.edu.cn/ssx/f_city.asp",
"Method=POST","RecContentType=text/html","Referer=http://pxgc.ahau.edu.cn/login/login.asp",...
"Name=fid","Value=0",ENDITEM,"Name=fnum","Value=1",ENDITEM,...LAST);
lr_think_time( 9 );
web_submit_data("login.asp_2",...,"Name=UserName","Value=XXX",ENDITEM,
"Name=PassWord","Value=XXX",ENDITEM,...
"Url=../web/images/main_26.gif","Referer=http://pxgc.ahau.edu.cn/web/center.asp",ENDITEM...LAST);
web_link("農(nóng)村勞動力轉(zhuǎn)移培訓(xùn)臺帳","Text=農(nóng)村勞動力轉(zhuǎn)移培訓(xùn)臺帳",
"Snapshot=t4.inf",EXTRARES,"Url=images/tab_05.gif",ENDITEM,...,LAST);
web_link("新增","Text=新增","Snapshot=t5.inf",EXTRARES,"Url=images/tab_05.gif",ENDITEM,...LAST);
lr_think_time( 2 );
web_submit_form("PxzyNew.asp","Snapshot=t6.inf",ITEMDATA,
"Name=xm","Value={Name}",ENDITEM....EXTRARES,
"Url=images/tab_05.gif",ENDITEM,...,LAST)
return 0;
}
測試條件為同時加載100個虛擬用戶,直到結(jié)束。當(dāng)達(dá)到100個用戶時,系統(tǒng)的平均反應(yīng)時間為50 s。用戶數(shù)與反應(yīng)時間的關(guān)系見圖3。整個測試周期為105 s,60 s時單位時間的業(yè)務(wù)請求數(shù)最大為145次/s,具體測試結(jié)果見圖4。
圖3 用戶數(shù)與反應(yīng)時間的關(guān)系
圖4 Load Runner測試結(jié)果
2.4 安全性測試 基于Web的應(yīng)用程序安全環(huán)境復(fù)雜,因此安全性測試十分重要,主要通過以下幾項進行測試:
(1)測試有效和無效的用戶名和密碼,可以試多少次的限制,是否可以不登陸而直接瀏覽某個頁面等。
(2)Web應(yīng)用系統(tǒng)是否有超時的限制,用戶登陸后在一定時間內(nèi)(15 min)沒有點擊任何頁面,是否需要重新登陸才能正常使用。
(3)測試加密是否正確,檢查信息的完整性,測試SSL安全協(xié)議。
(4)測試沒有經(jīng)過授權(quán),就不能在服務(wù)器端放置和編輯腳本的問題。
3 結(jié)論
安徽省“新型農(nóng)民培訓(xùn)民生工程”信息管理系統(tǒng)整個測試流程采用UAT的方法來進行管理,使用了QC、QTP、Load Runner這3個測試工具,成功地詳細(xì)測試了界面友好性、系統(tǒng)的基本功能(如密碼修改功能)、表單的鏈接、報表的統(tǒng)計功能、系統(tǒng)的穩(wěn)定性和數(shù)據(jù)庫的承載情況等。結(jié)果證明,這套UAT的方法完全適用于基于Web的網(wǎng)絡(luò)應(yīng)用程序測試。
參考文獻
[1] 曲統(tǒng)晨.銀行應(yīng)用系統(tǒng)用戶驗收測試在項目群管理模式下的研究[D].北京:首都經(jīng)濟貿(mào)易大學(xué),2012:15-18.
[2] 李金鳳.基于QTP的軟件功能測試與案例研究[J].信息技術(shù),2009(10):85-88,93.
[3] 溫艷冬.軟件性能測試需求的獲取方法綜述[J].軟件工程師,2010(2):124-127.
[4] 朱忠保.邊界值測試在軟件測試中的應(yīng)用[J].計算機系統(tǒng)應(yīng)用,2001(8):42-44.
[5] 肖俊.軟件壓力測試及測試工具的研究與實現(xiàn)[D].北京:北京交通大學(xué),2009:35-37.