摘要:首先介紹了目前Web測試的現(xiàn)狀、Web測試的必要性、Web測試的主要內(nèi)容。接下來,結合高??蒲泄芾硐到y(tǒng)的測試,分別從用戶界面、功能、性能、安全性等方面對系統(tǒng)進行了較全面的Web測試設計,并完成了全部測試,對其他Web應用系統(tǒng)的測試實踐具有一定的借鑒意義。
關鍵詞:Web測試;功能;性能;安全性
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2013)16-3668-03
隨著web應用的增多,新的模式解決方案中以web為核心的應用也越來越多。Web測試是Web應用程序在開發(fā)過程中以及開發(fā)完畢后進行的功能及性能等測試,以保證Web應用程序開發(fā)的正確性和有效性。Web測試是Web應用程序開發(fā)過程的重要組成部分,Web測試的質(zhì)量直接關系到Web產(chǎn)品的最終質(zhì)量,近年來,Web測試越來越受到重視。通常Web應用測試主要包含:功能和結構測試、統(tǒng)計測試、性能測試、可用性測試、兼容性測試、安全性測試、大數(shù)據(jù)量測試等方面。
高??蒲泄芾硐到y(tǒng)(以下簡稱系統(tǒng))是一個面向科研工作管理者、科研工作者的基于B/S結構的Web應用系統(tǒng),系統(tǒng)從整體功能分為前臺信息展示和后臺管理兩部分。該文以手動測試為主,結合自動化測試工具,根據(jù)我院具體情況,對系統(tǒng)主要從用戶界面、功能、性能和安全性4個方面進行了比較全面的測試。
1 用戶界面測試
用戶界面是用戶訪問系統(tǒng)時最先接觸的元素,界面設計的優(yōu)劣對系統(tǒng)質(zhì)量的高低有直接的影響。在界面測試中不涉及具體邏輯功能的實現(xiàn),只是關心布局、字體、控件、風格、顯示等界面上的問題。
一般地,界面測試根據(jù)檢查單來進行,在檢查單中列出需要測試的檢查項,對照檢查項逐項檢查。根據(jù)檢查單,本系統(tǒng)的用戶界面測試主要完成了整體界面測試、頁面內(nèi)容測試、控件測試等內(nèi)容的測試。整體界面是指整個Web應用系統(tǒng)的頁面結構設計,是給用戶的一個整體感,要求整體風格統(tǒng)一。頁面內(nèi)容測試的主要目的就是確認Web應用系統(tǒng)提供的信息的準確性、相關性以及正確性。信息的準確性要求檢測有無拼寫錯誤或者語法錯誤,信息的相關性要求檢測各種信息之間的關聯(lián)情況,信息的正確性主要是檢測是否可靠,信息的正確性非常重要,以本系統(tǒng)中的經(jīng)費報銷為例,假如數(shù)據(jù)出錯將直接導致項目的經(jīng)費管理出現(xiàn)問題??丶y試主要針對系統(tǒng)注冊頁面和查詢頁面進行。下圖1給出了整體頁面測試時根據(jù)檢查單設計的共通測試的部分測試用例。
2 功能測試
功能測試也叫黑盒測試或數(shù)據(jù)驅(qū)動測試,只需考慮各個功能,不考慮整個軟件的內(nèi)部結構及代碼。本系統(tǒng)執(zhí)行的Web功能測試主要包括鏈接測試、表單測試、數(shù)據(jù)庫測試。
2.1 鏈接測試
鏈接是Web應用系統(tǒng)的一個主要特征。以admin登陸為例。以admin登陸后,需要測試機構管理、公告管理、項目管理、科研成果管理、科技服務管理、學術活動管理、系統(tǒng)管理、高級搜索、統(tǒng)計功能管理等各個頁面的鏈接情況以及各個頁面下二級頁面的鏈接情況,需要測試所鏈接的頁面是否存在,測試所有鏈接是否都按設計要求鏈接到了該鏈接的頁面,保證系統(tǒng)上沒有孤立的頁面。與界面測試類似,在進行鏈接測試之前要準備好所有的鏈接的檢查單,然后編寫測試用例,逐條對測試用例測試。
2.2 表單測試
本系統(tǒng)中的表單測試主要針對注冊頁面、各個管理子系統(tǒng)(含機構管理子系統(tǒng)、人員管理子系統(tǒng)、科研項目管理子系統(tǒng)、學術活動管理子系統(tǒng)、社會服務子系統(tǒng)等)的新增、編輯和查詢頁面的控件進行測試。
文本框測試。文本框測試主要測試了如下內(nèi)容:1)長度測試,包含能輸入的最大長度測試、最小輸入長度測試、可顯示的長度測試。2)輸入數(shù)據(jù)類型測試,包含數(shù)字、大小寫英文、空格、特殊符號、中文等測試。3)輸入數(shù)據(jù)格式測試,包含日期格式、郵箱格式、身份證號碼格式、移動電話格式、辦公電話格式等測試。日期格式的測試在統(tǒng)計功能中還要測試是否對不同統(tǒng)計時間段的起始時間和結束時間的先后進行了校驗。
下拉框測試。下拉框測試主要包括下拉的內(nèi)容是否正確、完整、是否涵蓋了要求的所有可選的項目、選擇該項目后相關聯(lián)的項目是否隨之聯(lián)動等。
按鈕測試。按鈕測試主要測試按鈕顯示文字是否正確、按鈕功能是否正常、能否正常跳轉(zhuǎn)等。
2.3 數(shù)據(jù)庫測試
數(shù)據(jù)庫測試是依據(jù)數(shù)據(jù)庫設計規(guī)范對Web應用系統(tǒng)中的數(shù)據(jù)庫結構、數(shù)據(jù)表及其之間的數(shù)據(jù)調(diào)用關系等進行的測試。在Web應用系統(tǒng)中,數(shù)據(jù)庫起著重要的作用,數(shù)據(jù)庫為Web應用系統(tǒng)新增、修改、刪除、查詢和實現(xiàn)用戶對數(shù)據(jù)存儲的請求等提供空間。
在Web應用中,最常用的數(shù)據(jù)庫類型是關系型數(shù)據(jù)庫。本系統(tǒng)中使用的數(shù)據(jù)庫是SQL Server2005,涉及到kyc_kyjg、kyc_kyry、kyc_hxxm、kyc_zxxm、kyc_kjfw、kyc_tzgg、kyc_kydt、kyc_gzzd、kyc_bslc 等三十幾張表,表間的關系錯綜復雜。針對本系統(tǒng)數(shù)據(jù)庫的應用情況,主要進行了數(shù)據(jù)庫一致性的測試。
數(shù)據(jù)庫一致性(Database Consistency)是指事務執(zhí)行的結果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài),包括數(shù)據(jù)讀一致性和數(shù)據(jù)寫一致性。在實際測試過程中,測試了數(shù)據(jù)庫中數(shù)據(jù)和頁面展示數(shù)據(jù)是否一致,包括由頁面輸入的數(shù)據(jù)能否正確地在數(shù)據(jù)庫中呈現(xiàn),數(shù)據(jù)庫中的數(shù)據(jù)能否在頁面正確地顯示,在任何情況下不出現(xiàn)數(shù)據(jù)丟失、截斷、錯位顯示等情況,頁面刪除的數(shù)據(jù)在數(shù)據(jù)庫中是否真的刪除,數(shù)據(jù)庫中設置的記錄相關日志信息的LOG表數(shù)據(jù)的正確性等。
3 性能測試
4 安全性測試
Web應用作為一種特殊的軟件,面臨著比傳統(tǒng)單機軟件更為嚴峻的安全威脅和更為復雜的用戶環(huán)境,因此,在Web應用發(fā)布前對其進行全面徹底的安全性測試,發(fā)掘出Web應用中的安全漏洞和潛在的安全隱患是非常有必要的。
在Web應用領域,發(fā)現(xiàn)安全漏洞的常用技術方法有靜態(tài)分析技術和動態(tài)分析技術。靜態(tài)分析(static analysis)技術是指在不執(zhí)行的情況下對程序代碼進行評估,是一種典型的白盒測試方法。動態(tài)分析(dynamic analysis)技術是指從外圍或者客戶端測試執(zhí)行程序的技術,是一種典型的黑盒測試技術。
對本系統(tǒng)的安全性測試主要采用了面向Web應用動態(tài)分析技術中比較具有代表性的滲透測試(penetration testing)技術。滲透測試是指測試人員模擬惡意用戶的行為對Web應用進行安全評估,針對Web應用中可能存在的代碼缺陷、邏輯設計錯誤等問題進行測試,發(fā)現(xiàn)安全漏洞。針對本系統(tǒng),測試人員主要從通過Web代理觀察http請求和響應、配置管理、業(yè)務邏輯、認證(如用戶名和密碼的有效性)、授權(如采用不同身份登陸系統(tǒng))、數(shù)據(jù)驗證、拒絕服務、ajax等角度對本系統(tǒng)進行了滲透測試。
5 結束語
隨著Web應用系統(tǒng)的廣泛應用,對其進行完善的測試以保障系統(tǒng)的質(zhì)量已經(jīng)成為Web應用系統(tǒng)開發(fā)的一個重要環(huán)節(jié),貫穿于開發(fā)的全過程。該文以一個真實的Web應用系統(tǒng)為例,根據(jù)我院科研管理系統(tǒng)使用的具體情況,對系統(tǒng)的用戶界面、功能、性能、安全性等方面進行了比較全面的測試,限于篇幅,未能列舉所有的測試方案和測試用例。經(jīng)過測試,并對測試結果進行了詳細的分析,找到了系統(tǒng)的一些問題所在,為后續(xù)系統(tǒng)的優(yōu)化和修正提供了依據(jù)。
參考文獻:
[1] 張靜,賁可榮,羅云峰.軟件測試研究綜述[J].計算機與數(shù)字工程,2008(10):78-82.
[2] 浦云明,王寶玉.基于負載性能指標的Web測試[J].計算機系統(tǒng)應用,2010,19(5):220-223.
[3] 于涌.精通軟件性能測試與Loadrunner實戰(zhàn)[M].北京:人民郵電出版社,2010.
[4] 趙斌.軟件測試技術經(jīng)典教程[M].2版.北京:科學出版社,2011.
[5] 溫素劍.零成本實現(xiàn)Web自動化測試——基于Selenium和Bromine[M].北京:電子工業(yè)出版社,2011.
[6] 鄭雷雷,宋麗華,郭銳,等.B/S架構軟件的安全性測試研究[J].計算機技術與發(fā)展,2012,22(1):221-224.