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