基于Web的系統(tǒng)測試與傳統(tǒng)的軟件測試既有相同之處,也有不同的地方,對軟件測試提出了新的挑戰(zhàn)。基于Web的系統(tǒng)測試不但需要檢查和驗(yàn)證是否按照設(shè)計的要求運(yùn)行,而且還要評價系統(tǒng)在不同用戶的瀏覽器端的顯示是否合適。重要的是,還要從最終用戶的角度進(jìn)行安全性和可用性測試。 本文從功能、性能、可用性、客戶端兼容性、安全性等方面討論了基于Web的系統(tǒng)測試方法。 網(wǎng)站測試流程、要求及測試報告 一個網(wǎng)站基本完工后,需要通過下面三步測試才可以交活。 一、 制作者測試,包括美工測試頁面、程序員測試功能。在做完后第一時間內(nèi)由制作者本人進(jìn)行測試。 a) 頁面 包括首頁、二級頁面、三級頁面的頁面在各種常用分辨率下有無錯位;圖片上有沒有錯別字;各連接是否是死連接;各欄目圖片與內(nèi)容是否對應(yīng)等。 b) 功能 達(dá)到客戶要求;數(shù)據(jù)庫連接正確;各個動態(tài)生成連接正確;傳遞參數(shù)格式、內(nèi)容正確;試填測試內(nèi)容沒有報錯;頁面顯示正確。 二、 全面測試 根據(jù)交工標(biāo)準(zhǔn)和客戶要求,由專人進(jìn)行全面測試。 也是包括頁面和程序兩方面,而且要結(jié)合起來測,保證填充足夠的內(nèi)容后不會導(dǎo)致頁面變形。另外要檢查是否有錯別字,文字內(nèi)容是否有常識錯誤。 三、 發(fā)布測試 網(wǎng)站發(fā)布到主服務(wù)器之后的測試,主要是防止環(huán)境不同導(dǎo)致的錯誤。 測試的主要方面: 一、功能測試 對于網(wǎng)站的測試而言,每一個獨(dú)立的功能模塊需要單獨(dú)的測試用例的設(shè)計導(dǎo)出,主要依據(jù)為《需求規(guī)格說明書》及《詳細(xì)設(shè)計說明書》,對于應(yīng)用程序模塊需要設(shè)計者提供基本路徑測試法的測試用例。 1、鏈接測試:鏈接是Web應(yīng)用系統(tǒng)的一個主要特征,它是在頁面之間切換和指導(dǎo)用戶去一些不知道地址的頁面的主要手段。鏈接測試可分為三個方面: 1)測試所有鏈接是否按指示的那樣確實(shí)鏈接到了該鏈接的頁面; 2)測試所鏈接的頁面是否存在; 3)保證Web應(yīng)用系統(tǒng)上沒有孤立的頁面,所謂孤立頁面是指沒有鏈接指向該頁面,只有知道正確的URL地址才能訪問。 鏈接測試可以自動進(jìn)行,現(xiàn)在已經(jīng)有許多工具可以采用。鏈接測試必須在集成測試階段完成,也就是說,在整個Web應(yīng)用系統(tǒng)的所有頁面開發(fā)完成之后進(jìn)行鏈接測試。 2、表單測試:當(dāng)用戶給Web應(yīng)用系統(tǒng)管理員提交信息時,就需要使用表單操作,例如用戶注冊、登陸、信息提交等。在這種情況下,我們必須測試提交操作的完整性,以校驗(yàn)提交給服務(wù)器的信息的正確性。例如:用戶填寫的出生日期與職業(yè)是否恰當(dāng),填寫的所屬省份與所在城市是否匹配等。如果使用了默認(rèn)值,還要檢驗(yàn)?zāi)J(rèn)值的正確性。如果表單只能接受指定的某些值,則也要進(jìn)行測試。例如:只能接受某些字符,測試時可以跳過這些字符,看系統(tǒng)是否會報錯。要測試這些程序,需要驗(yàn)證服務(wù)器能正確保存這些數(shù)據(jù),而且后臺運(yùn)行的程序能正確解釋和使用這些信息。 B/S結(jié)構(gòu)實(shí)現(xiàn)的功能可能主要的就在這里,提交數(shù)據(jù),處理數(shù)據(jù)等如果有固定的操作流程可以考慮自動化測試工具的錄制功能,編寫可重復(fù)使用的腳本代碼,可以在測試、回歸測試時運(yùn)行以便減輕測試人員工作量。 我們對UM子系統(tǒng)中各個功能模塊中的各項(xiàng)功能進(jìn)行逐一的測試,主要測試方法為:邊界值測試、等價類測試,以及異常類測試。測試中要保證每種類型都有2個以上的典型數(shù)值的輸入,以確保測試輸入的全面性。 3、Cookies測試:Cookies通常用來存儲用戶信息和用戶在某應(yīng)用系統(tǒng)的操作,當(dāng)一個用戶使用Cookies訪問某一個應(yīng)用系統(tǒng)時,Web服務(wù)器將發(fā)送關(guān)于用戶的信息,把該信息以Cookies形式存儲在客戶端計算機(jī)上,可用來創(chuàng)建動態(tài)和自定義頁面或存儲登陸等信息。如果Web應(yīng)用系統(tǒng)使用了Cookies,就必須檢查Cookies是否能正常工作而且對這些信息已經(jīng)加密。測試的內(nèi)容可包括Cookies是否起作用,是否按預(yù)定的時間進(jìn)行保存,刷新對Cookies有什么影響等。 4、設(shè)計語言測試:Web設(shè)計語言版本的差異可以引起客戶端或服務(wù)器端嚴(yán)重的問題,例如使用哪種版本的HTML等。當(dāng)在分布式環(huán)境中開發(fā)時,開發(fā)人員都不在一起,這個問題就顯得尤為重要。除了HTML的版本問題外,不同的腳本語言,例如Java、JavaScript、 ActiveX、VBScript或Perl等也要進(jìn)行驗(yàn)證。 5、數(shù)據(jù)庫測試:在Web應(yīng)用技術(shù)中,數(shù)據(jù)庫起著重要的作用,數(shù)據(jù)庫為Web應(yīng)用系統(tǒng)的管理、運(yùn)行、查詢和實(shí)現(xiàn)用戶對數(shù)據(jù)存儲的請求等提供空間。在Web應(yīng)用中,最常用的數(shù)據(jù)庫類型是關(guān)系型數(shù)據(jù)庫,可以使用SQL對信息進(jìn)行處理。 在使用了數(shù)據(jù)庫的Web應(yīng)用系統(tǒng)中,一般情況下,可能發(fā)生兩種錯誤,分別是數(shù)據(jù)一致性錯誤和輸出錯誤。數(shù)據(jù)一致性錯誤主要是由于用戶提交的表單信息不正確而造成的,而輸出錯誤主要是由于網(wǎng)絡(luò)速度或程序設(shè)計問題等引起的,針對這兩種情況,可分別進(jìn)行測試。