隨著網(wǎng)絡(luò)技術(shù)不斷成熟,網(wǎng)站功能日益增加,,越來越多的業(yè)務(wù)系統(tǒng)演化為基于 Weh 的應(yīng)用,,如 Web OA ,電子商務(wù)等,。測試是為這些服務(wù)降低風(fēng)險的主要手段,。對網(wǎng)站的測試應(yīng)從用戶界面、功能,、兼容性,、性能和安全幾方面綜合考慮,并借助自動測試工具提高效率,。
一,、 測試方法
網(wǎng)站測試采用灰盒測試方法。灰盒測試結(jié)合了白盒測試和黑盒測試的要素,,既關(guān)注軟件的外部屬性和行為,,又在原代碼級了解軟件內(nèi)部數(shù)據(jù)結(jié)構(gòu)、實際的邏輯流程和體系結(jié)構(gòu)的基礎(chǔ)上測試軟件,,是從開發(fā)者的角度看待測試,,綜合考慮用戶端、特定的系統(tǒng)知識和操作環(huán)境,。 Web 應(yīng)用由大量的組件(包括軟件和硬件)組成,,這些組件必須在設(shè)計系統(tǒng)的環(huán)境中測試,以便評價它們的功能和兼容性,。而灰盒測試在系統(tǒng)組件的協(xié)同性環(huán)境中評價軟件的設(shè)計,,對基于 Web 的應(yīng)用來說是最為有效完整的測試?;液袦y試涉及到高層設(shè)計,、環(huán)境和互操作性條件等,能發(fā)現(xiàn)容易被黑盒和白盒測試忽略的問題,,特別是端對端的信息流問題,、分布式硬/軟件配置問題以及兼容性問題。在灰盒測試過程中通常能發(fā)現(xiàn)與 Web 系統(tǒng)密切相關(guān)的具體環(huán)境錯誤,。
二,、 用戶界面
用戶交互:是否有中心工作空間,并在各頁面之間保持一致,。是否每個頁面都有導(dǎo)航工具,,并保持直觀一致。 Ul 控件的命名方式是否簡明一致,,每個控件的默認(rèn)狀態(tài)是否恰當(dāng),; Web 應(yīng)用系統(tǒng)的主要部分是否可通過主頁訪問;操作和響應(yīng)方式是否與 Web 應(yīng)用程序及行業(yè)標(biāo)準(zhǔn)一致,,響應(yīng)結(jié)果是否正確,,是否發(fā)生了數(shù)據(jù)一致性錯誤和輸出錯誤;如果說明文字指向右側(cè)的圖片,,該圖是否出現(xiàn)在右側(cè),;表格中的證件號碼與姓名放在左邊,其他細(xì)節(jié)放在右邊,,是否更有效,;根據(jù)所提供的幫助文檔進(jìn)行操作,是否能夠出現(xiàn)預(yù)期結(jié)果,;是否提供正確的反饋和錯誤提示信息,。
頁面元素:整個 Web 應(yīng)用系統(tǒng)的頁面結(jié)構(gòu),、 Ul 控件、字體,、鏈接是否風(fēng)格一致,。背景顏色是否與字體顏色和前景顏色搭配。文字回繞是否正確,。圖片是否使段落沒有對齊或出現(xiàn)孤行。表格每一欄的寬度是否足夠,,是否因某一單元格內(nèi)容太多,,而將整行拉長。圖片是否小于 3OK ,,首頁是否采用了大圖,。
三、 功能測試
鏈接:所有鏈接是否按指示的那樣確實鏈接到了該鏈接的頁面,,所鏈接的頁面是否存在,。應(yīng)保證 Web 應(yīng)用系統(tǒng)上沒有孤立的頁面(即沒有鏈接指向該頁面,只有知道正確的 URL 地址才能訪問),。鏈接測試必須在集成測試階段完成,,也就是說,在整個 Web 應(yīng)用系統(tǒng)的所有頁面開發(fā)完成之后進(jìn)行鏈接測試
表單:必須測試表單提交操作的完整性與正確性,。例如:用戶填寫的出生日期與職業(yè)是否恰當(dāng),,填寫的所屬省份與所在城市是否匹配等。如果使用了默認(rèn)值,,要檢驗?zāi)J(rèn)值的正確性,。表單是否只能接受指定的某些值?例如只能接受某些字符,,測試時可以跳過這些字符,,看系統(tǒng)是否會報錯。服務(wù)器能否正確保存通過表單提交的數(shù)據(jù),,后臺系統(tǒng)能否正確解釋和使用這些信息,。
Cookie :如果 Web 應(yīng)用系統(tǒng)使用了 Cookie , 必須檢查 Cookie 是否能正常工作,包括 Cookie 是否起作用,,是否按預(yù)定的時間進(jìn)行保存,,刷新對 Cookie 有什么影響等。如果在 Cookie 中保存了注冊信息,,應(yīng)確認(rèn)該 Cookie 能夠正常工作而且已對這些信息已經(jīng)加密,。如果使用 Cookie 來統(tǒng)計次數(shù),需要驗證次數(shù)累計是否正確,。
接口:應(yīng)測試瀏覽器與服務(wù)器的接口,,即提交事務(wù),,然后查看服務(wù)器記錄,并驗證在瀏覽器上看到的正好是服務(wù)器上發(fā)生的,。還可以查詢數(shù)據(jù)庫,,確認(rèn)事務(wù)數(shù)據(jù)已正確保存。有些 Web 系統(tǒng)有外部接口,。應(yīng)要確認(rèn)軟件能夠處理外部服務(wù)器返回的所有可能的消息,。最容易被忽略的地方是接口錯誤處理。嘗試在處理過程中中斷事務(wù),,中斷用戶到服務(wù)器的網(wǎng)絡(luò)連接,,在這些情況下,系統(tǒng)能否正確處理這些錯誤,。如果用戶自己中斷了事務(wù)處理,,是否在用戶沒有返回網(wǎng)站確認(rèn)的時候已保存了訂單。
應(yīng)用系統(tǒng)的特定功能:應(yīng)對應(yīng)用系統(tǒng)特定的功能需求進(jìn)行驗證,。嘗試用戶可能進(jìn)行的所有操作,,例如下訂單、更改訂單,、取消訂單,、在線支付等等。
四,、 客戶端兼容性
操作系統(tǒng):是否能在 MAC 和 IBM 兼容機(jī)上瀏覽網(wǎng)站,。是否使用了只在某個系統(tǒng)上可用的字體或插件。
瀏覽器:是否能用 Netscape ,、 Internet Explor - er 或場 nx 瀏覽網(wǎng)站,。不同廠商的瀏覽器對 Java Applet 、 DHTML ,、 ActiveX ,、 HTML 、插件,、安全協(xié)議及 H 竹 P 的支持不同,。用戶也會對瀏覽器進(jìn)行不同的設(shè)置,如禁用圖片或采用較高的安全級別,??蚣芎蛯釉诓煌臑g覽器中顯示效果不同,甚至根本不顯示,。 IE3 . 0 及以上版本才能使用 SSL 安全特性,,但是對于老版本的用戶應(yīng)該有相關(guān)的消息提示。測試瀏覽器兼容性的一個方法是創(chuàng)建一個兼容性矩陣,,在這個矩陣中測試不同廠商,、不同版本的瀏覽器對某些插件和設(shè)置的適應(yīng)性,。
屏幕設(shè)置:當(dāng)改變屏幕分辨率( 640 x48o 、 800x600 ,、 1024x768 ,、 1280xl024 )、字體大小,、和顯示器顏色深度( 16 色,、 24 位真彩色、 32 位真彩色)時,,頁面是否正常顯示,。
連接性:有的用戶享有 Tl 專線,但許多人使用的是 28 . SKModem ,。如果網(wǎng)站響應(yīng)時間太長(如超過 5 秒鐘),,用戶就會失去耐心而離開,。另外,,有些頁面有超時限制,如果響應(yīng)速度太慢,,用戶可能還沒來得及瀏覽內(nèi)容,,就需要重新登錄了。
打印機(jī):有時屏幕上所顯示的圖片和文本的對齊方式可能與打印出來的東西不一樣,,因此需要驗證網(wǎng)頁打印是否正常,,至少應(yīng)驗證訂單確認(rèn)頁面打印是正常的。
組合測試: 800x600 的分辨率在 MAC 機(jī)上可能不錯,,但是在 IBM 兼容機(jī)上卻很難看,。在 IBM 機(jī)器上使用 NetscaPe 能正常顯示,但卻無法使用助 nx 來瀏覽,。理想的情況是,,系統(tǒng)能在所有機(jī)器上運(yùn)行,這樣就不會限制將來的發(fā)展和變動,。
五,、性能測試
負(fù)載:負(fù)載測試是為了測量 Web 應(yīng)用系統(tǒng)在某一負(fù)載級別上的性能,以保證 Web 應(yīng)用系統(tǒng)在需求范圍內(nèi)能正常工作,。負(fù)載級別可以是某個時刻同時訪問 Web 應(yīng)用系統(tǒng)的用戶數(shù)量,,也可以是在線數(shù)據(jù)處理的數(shù)量。例如:網(wǎng)站能允許多少個用戶同時在線,,如果超過了這個數(shù)量,,會出現(xiàn)什么現(xiàn)象。 Web 應(yīng)用系統(tǒng)能否處理大量用戶對同一個頁面的訪問,,如能否在瞬間訪問高峰時響應(yīng)上百萬的請求在用戶傳送大量數(shù)據(jù)的時候能否響應(yīng),,系統(tǒng)能否長時間運(yùn)行,。
壓力測試:進(jìn)行壓力測試是指在實際破壞一個 Web 應(yīng)用系統(tǒng)的情況下,測試系統(tǒng)的反映,,即系統(tǒng)的控制和故障恢復(fù)能力,。 Weh 應(yīng)用系統(tǒng)是否會崩潰,在什么情況下會崩潰,。黑客常常提供錯誤的數(shù)據(jù)負(fù)載或發(fā)送大量數(shù)據(jù)包來攻擊服務(wù)器,,直到 Web 應(yīng)用系統(tǒng)崩潰。
可靠性:網(wǎng)站是否發(fā)生服務(wù)器內(nèi)存泄漏,、數(shù)據(jù)庫交易日志容量不足等問題,。
六、 安全性測試
身份認(rèn)證:用戶名和密碼是否采用特定規(guī)則,,如大小寫敏感,,限制最大字符數(shù),限制字母和數(shù)字字符組合方式,。如果用 ActiveX 或 Coohe 保存?zhèn)€人信息,,是否加密是否支持頻繁地密碼修改。是否限制登錄失敗次數(shù),。是否能夠通過書簽,、歷史登錄信息或捕獲的 URL 繞開登錄程序。是否限制某些 IP 登錄,。用戶登錄后在一定時間內(nèi)(如巧分鐘)沒有點(diǎn)擊任何頁面,,是否需要重新登錄才能正常使用。
內(nèi)容攻擊:基于內(nèi)容的攻擊其載體是內(nèi)容,,攻擊的對象是應(yīng)用程序,,目標(biāo)是取得對應(yīng)用主機(jī)的控制權(quán),攻擊主機(jī),。如填寫表單數(shù)據(jù)時,,采用惡意格式,導(dǎo)致 Web 組件執(zhí)行錯誤,,引發(fā)應(yīng)用程序出錯,。是否防范了輸人/輸出攻擊、數(shù)據(jù)攻擊和計算攻擊,。對于目錄和文件是否施加了訪問控制:是否過濾惡意代碼和命令,,限制使用應(yīng)用協(xié)議的命令集,檢查基于關(guān)鍵詞的信息內(nèi)容,。為組件的每個輸人提供源自轉(zhuǎn)義序列或元字符集合的輸人字符,,是否導(dǎo)致意外結(jié)果。是否能夠繞開有效性驗證,,從站點(diǎn)外部提交表單,。是否發(fā)生緩沖區(qū)溢出,。
SSL (安全套接字):使用 SSL 時,要測試加密是否正確,,檢查信息的完整性,。是否有連接時間限制,超過限制時間后出現(xiàn)什么情況,。
腳本語言:服務(wù)器端的腳本常常構(gòu)成安全漏洞,,有些腳本允許訪問根目錄,有些允許訪問郵件服務(wù)器,,這些漏洞常常被黑客利用,。在沒有經(jīng)過授權(quán)的情況下,是否能在服務(wù)器端放置和編輯腳本,。是否針對腳本語言的缺陷進(jìn)行了處理,。
七、 工具
應(yīng)該說,,好的測試都是自動測試,,即測試計劃由人設(shè)計,但實際的測試操作卻是由程序或者自動化工具來完成:一方面,,測試的目的在于發(fā)現(xiàn)錯誤,,在改正錯誤的過程中必然要進(jìn)行頻繁的回歸測試( Ression Testing ) ,,而所測試的內(nèi)容多半是重復(fù)的,,這樣的重復(fù)勞動可以交給計算機(jī)去完成。另一方面,,有些測試過程沒有辦法單純靠手工完成,,比如底層通訊協(xié)議測試、 1 / 0 性能測試,、對服務(wù)程序支持的并發(fā)交易量的測試等等:對于這些測試需求,,必須利用合適的自動化工具,模擬所需的測試環(huán)境,,自動運(yùn)行待測試的軟件,,并記錄參數(shù)指標(biāo)。鑒于回歸測試工作量的龐大,,以及某些特定的測試工作無法由人工完成等原因,,測試必須自動化。
目前,,商品化的自動測試工具已有很多,,包括:端口掃描(如 Nmap 、 Cisco Secure Scanner ) , 網(wǎng)絡(luò)監(jiān)視(如 Windows NT / 2000 Network Moni - tor ,、 Tcpdump ,、 Ethereal ) ,,系統(tǒng)安全缺陷檢查(如 SAINT 、 WebTrends Security Analyzer ,、 PGP Cy - berCop Scanner / Monitor ,、 Symantec NetRecon ) ,性能和負(fù)載測試( Mercu LoadRunner ,、 Rational Robot ,、 Se e SilkPerformer 、 Empirix / RSWe - ad ,、 Computer QALoad ,、 Microsoft Web Applica - tion StresS Tool ) ,性能監(jiān)視( WindowS NT / 2000 Performance Monitor ,、 Ksysguard ,、 GlaneePlus for HP / UX 、 Windows NT / 2000 Task Manager ) ,,缺陷跟蹤( Merant PVCS Tracker ,、 Elsinore Visual Intercept 、 Rational ClearQuest ) , HTML / Link 驗證 ( Rational Site Check ,、 NetMechanic HTML Tool - box ,、 W3C Validators 、 Watchfire Linkhot ) .
參考文獻(xiàn)
[1](美) James A . Whittaker .實用軟件測試指南.電子工業(yè)出版社,, 2003 .
[2](美) Elfriede Dustin .有效軟件側(cè)試.清華大學(xué)出版社,, 2003 .
[3](美) Hung Q . N 即 yen . Web 應(yīng)用側(cè)試,電子工業(yè)出版社,, 2003 . [ 41 (美) Ron Patton .軟件測試.機(jī)械工業(yè)出版社,, 2002 .
|