王文東
摘 要:軟件測試是檢驗軟件系統(tǒng)質(zhì)量的重要手段,在不同環(huán)境下,軟件系統(tǒng)的測試方法也有所差異。相比傳統(tǒng)的軟件測試,當前應用廣泛的B/S體系結(jié)構(gòu)軟件系統(tǒng)測試有很大不同。該此類型的系統(tǒng)測試主要包括可行性測試、性能測試、功能測試、兼容性測試以及安全性測試等。
關鍵詞關鍵詞:軟件測試;B/S;Web
DOIDOI:10.11907/rjdk.161488
中圖分類號:TP319
文獻標識碼:A 文章編號:1672-7800(2016)008-0137-03
0 引言
系統(tǒng)測試的目的主要是驗證系統(tǒng)的功能和性能是否滿足設計要求,發(fā)現(xiàn)系統(tǒng)的實際應用效果是否與系統(tǒng)定義相符合。系統(tǒng)測試是檢驗軟件質(zhì)量的重要手段,軟件質(zhì)量的檢測一方面要檢查軟件的設計是否合理、編碼是否準確,另一方面要看軟件的系統(tǒng)測試是否全面。在軟件開發(fā)和應用中,很多編碼上的錯誤很難發(fā)現(xiàn),只有通過后期的系統(tǒng)測試才能被發(fā)現(xiàn),所以軟件系統(tǒng)測試在保證軟件質(zhì)量方面有著重要作用。在不同的環(huán)境下,軟件系統(tǒng)的測試方法也有所差異,本文就基于B/S架構(gòu)的Web軟件系統(tǒng)測試進行探討。
1 基于B/S架構(gòu)的Web軟件系統(tǒng)
B/S體系結(jié)構(gòu)的應用原理是:用戶通過瀏覽器將操作請求發(fā)送給網(wǎng)絡上的服務器,服務器對接收的信息進行分析、處理后將用戶所需要的信息發(fā)送至瀏覽器。相比二層的C/S體系結(jié)構(gòu),B/S體系結(jié)構(gòu)只是從客戶機的任務中將事務處理邏輯模塊分離出來,并單獨組成一個任務應用層,該方式將負荷分配給Web服務器,可以極大減輕客戶機的壓力。B/S架構(gòu)的一個明顯特點就是簡化了客戶端,只需要安裝通用的瀏覽器軟件,不需要在客戶機上設置多個客戶應用程序,所以整個系統(tǒng)安裝過程非常簡單,網(wǎng)絡結(jié)構(gòu)非常靈活,而且系統(tǒng)的開發(fā)和維護簡單。B/S體系結(jié)構(gòu)的特殊性意味著系統(tǒng)的測試也需要采用不同的方法?;贐/S架構(gòu)的軟件系統(tǒng)以網(wǎng)頁表單的方式進行界面展示,服務器承擔了系統(tǒng)的大部分工作,客戶端對后臺服務的訪問通過瀏覽器實現(xiàn),而且只能夠完成瀏覽、查詢、數(shù)據(jù)輸入等比較簡單的功能操作,同時還采用Cookies形式保存用戶信息。Web軟件系統(tǒng)的開發(fā)需要以HTTP協(xié)議和HTML為依據(jù),這就決定了此類軟件都要遵循統(tǒng)一的結(jié)構(gòu)。圖1是一個典型的基于B/S架構(gòu)的Web軟件系統(tǒng)結(jié)構(gòu)。
2 基于B/S架構(gòu)的Web軟件系統(tǒng)測試
基于BS架構(gòu)的Web軟件系統(tǒng)測試涉及到多方面內(nèi)容,包括可行性測試、性能測試、功能測試、安全性測試、兼容性測試等等。相比傳統(tǒng)的軟件測試,基于BS架構(gòu)的Web軟件系統(tǒng)測試內(nèi)容側(cè)重點明顯不同,測試過程需要用戶參與,不僅要檢查系統(tǒng)的運行是否按照設計要求,還要評價系統(tǒng)在各種瀏覽器上的顯示效果,尤其要進行系統(tǒng)的安全性和可行性測試。
2.1 系統(tǒng)可行性測試
可行性測試其實就是檢測用戶對系統(tǒng)的理解程度和使用效果,類似于系統(tǒng)的可操作性測試,涉及到系統(tǒng)的功能、系統(tǒng)的發(fā)布、用戶與系統(tǒng)的交互效果。系統(tǒng)可行性測試主要包括導航測試、圖形測試、內(nèi)容測試、界面測試等。
系統(tǒng)可行性測試方法:①通過頁面走查的方式檢查系統(tǒng)頁面是否符合要求,測試不同分辨率下頁面的顯示效果,如果發(fā)現(xiàn)有不符合要求的地方應交給設計人員進行調(diào)整;②根據(jù)數(shù)據(jù)定義文檔來檢查表單項的內(nèi)容設計效果;③通過瀏覽查看方式檢測動態(tài)網(wǎng)頁。
(1)導航測試。系統(tǒng)導航是對系統(tǒng)頁面中用戶操作方式的描述,可以在不同的連接頁面之間,也可以在按鈕、窗口等不同的接口控制之間。系統(tǒng)的導航測試主要是檢測系統(tǒng)是否易于導航,系統(tǒng)導航的界面設計是否直觀,是否可以通過主頁面實現(xiàn)對系統(tǒng)主要內(nèi)容的存取,系統(tǒng)是否需要搜索引擎或者網(wǎng)站地圖幫助,另外還需要檢測系統(tǒng)的頁面結(jié)構(gòu)設計、導航設計、菜單設計以及連接方式的風格是否一致,是否可以讓用戶通過導航直觀地了解系統(tǒng)的主要內(nèi)容。
(2)圖形測試。網(wǎng)頁的構(gòu)成主要包括兩種元素,即文字和圖片。圖片在網(wǎng)頁應用中有著重要作用:①美化網(wǎng)頁;②進行廣告宣傳。但在系統(tǒng)運行過程中,網(wǎng)絡傳輸?shù)臄?shù)據(jù)量是有一定限制的,所以網(wǎng)站的圖片數(shù)量也不能無限大。圖片在網(wǎng)頁上的位置也有一定要求,不能隨意放置,要符合頁面的審美要求。圖形測試主要是檢測系統(tǒng)中圖形是否具有應用價值,圖形或者動畫的放置位置是否符合要求,頁面上的文字應用風格是否一致,頁面的背景、前景以及字體顏色應用是否搭配,網(wǎng)頁中圖片的大小設置是否合適,圖片的質(zhì)量是否達到要求,以及圖片的應用格式(一般是JPG或者GIF壓縮)是否符合。
(3)內(nèi)容測試。內(nèi)容測試主要是用文字處理軟件對系統(tǒng)文字信息進行檢測,檢驗系統(tǒng)文字信息是否具有一定的相關性、準確性,信息是否真實可靠,信息是否存在語法錯誤或書寫錯誤,是否能夠在當前的頁面找到相關的信息列表等等。
(4)界面測試。界面測試主要是檢測用戶在瀏覽Web應用系統(tǒng)時,對系統(tǒng)的整體界面是否感到舒適、直觀,是否能夠憑直覺找到信息,系統(tǒng)整體設計風格是否一致。
2.2 系統(tǒng)功能測試
基于B/S架構(gòu)的Web軟件系統(tǒng)功能測試主要包括鏈接測試、表單測試、Cookies測試、設計語言測試以及數(shù)據(jù)庫測試,采用的方法主要有黑盒測試、白盒測試、邊界測試或者越界測試。功能測試是驗證產(chǎn)品功能是否與產(chǎn)品需求規(guī)格一致,不需考慮系統(tǒng)內(nèi)部軟件的實現(xiàn)邏輯。功能測試是系統(tǒng)測試最重要、最基本的內(nèi)容,要求測試人員全面了解產(chǎn)品的需求規(guī)格和業(yè)務功能,設計出高效的測試方案。
(1)鏈接測試。鏈接的主要功能是實現(xiàn)頁面切換,并引導用戶找到所需要的頁面。在基于B/S架構(gòu)的軟件系統(tǒng)中,鏈接是一個非常重要的特點,鏈接測試3個內(nèi)容:①檢測頁面鏈接的準確性;②檢測所鏈接的頁面是否存在;③確定Web系統(tǒng)中不存在沒有設置鏈接的孤立頁面。
(2)表單測試。表單測試是對系統(tǒng)運行過程中,服務器所接收到的表單信息是否正確進行檢測。例如用戶在登錄系統(tǒng)時需要填寫用戶信息,在表單中的用戶名和密碼條框中設置要輸入數(shù)字的地方是否也可以輸入字母,輸入后系統(tǒng)是否會提示出錯。如果表單采用了默認值,就需要對默認值的正確性進行檢測。如果表單輸入限定了某些值,則需要繼續(xù)測試。
(3)Cookies測試。Cookie是指服務器暫存在計算機上的信息資料,主要用于存放用戶應用系統(tǒng)時的信息。當用戶瀏覽網(wǎng)站時,服務器會向用戶的計算機上發(fā)送一些Cookies形式的資料,以便服務器能夠很好地辨認用戶的計算機。如果系統(tǒng)有Cookies應用,就需要對Cookies的功能和性能進行測試,檢測Cookies是否正常工作,是否準確、有效地保存,是否受到系統(tǒng)其它操作的影響。
(4)數(shù)據(jù)庫測試。數(shù)據(jù)庫為系統(tǒng)的管理、運行以及數(shù)據(jù)存儲提供空間。數(shù)據(jù)庫測試主要是檢測數(shù)據(jù)輸出的準確性、數(shù)據(jù)的一致性。用戶在提交表單時所填寫的信息不正確可能導致數(shù)據(jù)一致性出錯,網(wǎng)絡速度過慢或者程序設計缺陷則可導致數(shù)據(jù)輸出錯誤,數(shù)據(jù)輸出錯誤和數(shù)據(jù)一致性錯誤是系統(tǒng)數(shù)據(jù)庫發(fā)生的兩個重要錯誤。
2.3 系統(tǒng)性能測試
性能測試是保證軟件系統(tǒng)質(zhì)量的重要測試內(nèi)容,涉及到的測試內(nèi)容較多,主要包括3個方面,即客戶端、網(wǎng)絡以及服務器端的性能測試??蛻舳诵阅軠y試包括數(shù)據(jù)量測試、速度測試、并發(fā)性測試等,主要檢測客戶端的應用性能;網(wǎng)絡上的測試主要內(nèi)容是利用相關技術進行網(wǎng)絡預測、網(wǎng)絡性能分析;服務器端的測試在于實現(xiàn)對服務器系統(tǒng)、設備性能的全面監(jiān)控,可采用工具或命令進行監(jiān)控。上述三者有效結(jié)合才能實現(xiàn)系統(tǒng)的高性能運行。性能測試常用工具有webload、was、ewl等。
(1)鏈接速度測試。鏈接速度測試是基于B/S架構(gòu)的軟件系統(tǒng)性能測試的重要內(nèi)容。在基于B/S架構(gòu)的軟件系統(tǒng)應用中,軟件的功能主要是通過服務器實現(xiàn)的,服務器將系統(tǒng)信息發(fā)送至客戶端,客戶端通過對信息的瀏覽實現(xiàn)各種應用操作。因此,基于B/S架構(gòu)的軟件系統(tǒng)對鏈接速度有很高的要求。如果系統(tǒng)對用戶的頁面訪問需求響應時間超過5s,則用戶很可能因為沒有耐心等待而放棄本次訪問。一般情況下,系統(tǒng)網(wǎng)頁的鏈接速度與入網(wǎng)的方式與很大關系,例如寬帶上網(wǎng)、電話撥號上網(wǎng)等各種上網(wǎng)方式的鏈接速度各有千秋。當系統(tǒng)響應速度太慢時,用戶往往還沒有瀏覽到信息就需要重新登錄,而且鏈接速度慢也是導致數(shù)據(jù)丟失的重要原因。
(2)負載測試。負載測試就是檢測系統(tǒng)在一定需求范圍內(nèi)是否能夠正常工作,例如系統(tǒng)允許多少用戶同時訪問,如果訪問數(shù)量過大會出現(xiàn)什么情況。負載測試一般需要在實際網(wǎng)絡環(huán)境中測試,因為在因特網(wǎng)上有足夠量的訪問用戶,才能獲得準確可信的測試結(jié)果。
(3)壓力測試。壓力測試包括表單測試、登錄測試以及其它信息輸出情況測試。檢測在一定訪問數(shù)量壓力下系統(tǒng)的反應,以及系統(tǒng)的壓力極限和故障恢復能力,檢測系統(tǒng)在較大訪問壓力下是否會發(fā)生崩潰。黑客在對系統(tǒng)進行攻擊時通常會對系統(tǒng)提供錯誤的負載,讓系統(tǒng)發(fā)生崩潰,并在系統(tǒng)重啟時獲得存取權,以此對系統(tǒng)實施攻擊。
2.4 客戶端兼容性測試
系統(tǒng)的兼容性缺陷引起的問題往往比較微妙,很難被發(fā)現(xiàn),系統(tǒng)的兼容性測試經(jīng)常被忽略。系統(tǒng)兼容性測試方法一般是創(chuàng)建兼容性矩陣,測試過程中需要考慮以下幾個問題:①系統(tǒng)能夠在哪些操作系統(tǒng)環(huán)境下運行;②系統(tǒng)能夠與哪些類型的數(shù)據(jù)庫進行數(shù)據(jù)交換;③系統(tǒng)能夠在哪些硬件配置環(huán)境中運行;④系統(tǒng)能夠與哪些軟件系統(tǒng)協(xié)同工作??蛻舳思嫒菪詼y試主要包括平臺測試、瀏覽器測試。平臺測試需要在系統(tǒng)發(fā)布之前進行,系統(tǒng)使用哪一種操作系統(tǒng)往往由系統(tǒng)的配置決定。同一應用可能在某些操作系統(tǒng)中能夠正常運行,但卻無法在其它操作系統(tǒng)中運行。瀏覽器測試主要是檢測瀏覽器的顯示效果。
2.5 系統(tǒng)安全性測試
系統(tǒng)安全性測試主要是檢測系統(tǒng)安全機制的有效性,驗證系統(tǒng)內(nèi)部的安全機制能否保護系統(tǒng)免受非法攻擊。系統(tǒng)的安全性不僅是指系統(tǒng)能夠抵擋住正面攻擊,還要能經(jīng)受來自側(cè)面和背面的攻擊,如此才能保證系統(tǒng)資源的安全性。系統(tǒng)安全性測試內(nèi)容主要有:①對用戶名和密碼信息進行測試,檢測系統(tǒng)對登錄信息大小寫是否敏感,對輸入次數(shù)有沒有限制,在沒有登錄系統(tǒng)的情況下是否能夠直接瀏覽頁面;②檢測系統(tǒng)是否對登錄狀態(tài)有時間限制,用戶登錄后一段時間是否需要重新登錄才能正常使用;③檢測系統(tǒng)訪問信息是否被寫入日志,是否能追蹤;④檢測安全套接字中密碼設置的正確性,以及信息是否完整;⑤檢測服務器端腳本的管理應用是否設置權限,以免成為黑客攻擊系統(tǒng)的漏洞。
3 結(jié)語
本文從系統(tǒng)可行性測試、功能測試、性能測試、兼容性測試以及安全性測試等方面對基于B/S架構(gòu)的Web軟件系統(tǒng)測試進行了探討?;贐/S架構(gòu)的軟件測試是一個復雜的系統(tǒng)工程,相比傳統(tǒng)的軟件測試有很大差別,整個測試內(nèi)容要保證全面性、充分性,并扎實地完成系統(tǒng)測試,這樣才能通過系統(tǒng)測試體現(xiàn)軟件的應用效果,保證軟件質(zhì)量。
參考文獻:
[1]李志崢,楊社堂.基于 B/S 結(jié)構(gòu)下的軟件系統(tǒng)測試研究[J].科技情報開發(fā)與經(jīng)濟,2006,16(7):232-234.
[2] 陳技能.軟件測試技術大全——測試基礎流行工具項目實戰(zhàn)[M].北京:人民郵電出版社,2009:159-160.
[3] 單良.校園網(wǎng)環(huán)境下的 Web 軟件測試方法研究[J].雞西大學學報,2009(6):62-64.
[4]劉錦.基于B/S架構(gòu)的Web應用軟件系統(tǒng)測試研究[J].科技廣場,2013(9):39-42.
[5]廖非凡.B/S架構(gòu)的Web應用系統(tǒng)軟件測試研究[J].科技風,2008(11):76-82.
[6]宋俊雅,王鵬彪,黃俊爽,等.B/S結(jié)構(gòu)軟件的系統(tǒng)測試技術[J].科技信息,2010(10):247-248.
[7]歐歌,張紅梅,宋黎明.B/S結(jié)構(gòu)Web應用系統(tǒng)測試綜述[C].第13屆全國計算機、網(wǎng)絡在現(xiàn)代科學技術領域的應用學術會議論文集,中國電子學會核電子學與核探測技術分會、中國核學會核電子學與核探測技術分會,2007.
(責任編輯:杜能鋼)