1.
面向Web應(yīng)用系統(tǒng)的測(cè)試與傳統(tǒng)的軟件測(cè)試不同入挣,不僅需要檢查和驗(yàn)證是否按照需求規(guī)格說明書的要求運(yùn)行刻肄,而且還要測(cè)試Web應(yīng)用系統(tǒng)在不同瀏覽器上顯示是否符合要求公荧,與不同的數(shù)據(jù)庫(kù)連接是否有效叔遂、更重要的是在性能、安全性霎苗、可用性等方面姆吭。
本文的目的是覆蓋 web 測(cè)試的各個(gè)方面,未就某一主題進(jìn)行深入說明唁盏,本文將WEB測(cè)試分為 6 個(gè)部分:
1.功能測(cè)試
2.性能測(cè)試(包括負(fù)載/壓力測(cè)試)
3.用戶界面測(cè)試
4.兼容性測(cè)試
5.安全測(cè)試
6.接口測(cè)試
1.1. 功能測(cè)試
1.1.1.? 鏈接測(cè)試
鏈接是Web應(yīng)用系統(tǒng)的一個(gè)主要特征内狸,它是在頁(yè)面之間切換和指導(dǎo)用戶去一些不知道地址的頁(yè)面的主要手段。鏈接測(cè)試可分為三個(gè)方面厘擂。首先昆淡,測(cè)試所有鏈接是否按指示的那樣確實(shí)鏈接到了該鏈接的頁(yè)面;其次刽严,測(cè)試所鏈接的頁(yè)面是否存在昂灵;最后,保證Web應(yīng)用系統(tǒng)上沒有孤立的頁(yè)面舞萄,所謂孤立頁(yè)面是指沒有鏈接指向該頁(yè)面眨补,只有知道正確的URL地址才能訪問。
鏈接測(cè)試可以自動(dòng)進(jìn)行倒脓,現(xiàn)在已經(jīng)有許多工具可以采用撑螺。鏈接測(cè)試必須在集成測(cè)試階段完成,也就是說崎弃,在整個(gè)Web應(yīng)用系統(tǒng)的所有頁(yè)面開發(fā)完成之后進(jìn)行鏈接測(cè)試甘晤。
測(cè)試重點(diǎn):
1.? 鏈接是否正確
2.? 鏈接頁(yè)面是否存在
3.? 是否有孤立的頁(yè)面(沒有鏈接指向的頁(yè)面)
1.1.2.? 表單測(cè)試
當(dāng)用戶通過表單提交信息的時(shí)候含潘,都希望表單能正常工作。
如果使用表單來進(jìn)行在線注冊(cè)安皱,要確保提交按鈕能正常工作调鬓,當(dāng)注冊(cè)完成后應(yīng)返回注冊(cè)成功的消息艇炎。如果使用表單收集配送信息酌伊,應(yīng)確保程序能夠正確處理這些數(shù)據(jù),最后能讓顧客能讓客戶收到包裹缀踪。要測(cè)試這些程序居砖,需要驗(yàn)證服務(wù)器能正確保存這些數(shù)據(jù),而且后臺(tái)運(yùn)行的程序能正確解釋和使用這些信息驴娃。
當(dāng)用戶使用表單進(jìn)行用戶注冊(cè)奏候、登陸、信息提交等操作時(shí)唇敞,我們必須測(cè)試提交操作的完整性蔗草,以校驗(yàn)提交給服務(wù)器的信息的正確性。例如:用戶填寫的出生日期與職業(yè)是否恰當(dāng)疆柔,填寫的所屬省份與所在城市是否匹配等咒精。如果使用了默認(rèn)值,還要檢驗(yàn)?zāi)J(rèn)值的正確性旷档。如果表單只能接受指定的某些值模叙,則也要進(jìn)行測(cè)試。例如:只能接受某些字符鞋屈,測(cè)試時(shí)可以跳過這些字符范咨,看系統(tǒng)是否會(huì)報(bào)錯(cuò);如系統(tǒng)只接受限定以內(nèi)的數(shù)字厂庇,測(cè)試時(shí)可以測(cè)試內(nèi)外邊界值渠啊,看系統(tǒng)是否可正確反應(yīng)。
表單測(cè)試還有重要的一點(diǎn):測(cè)試html語(yǔ)言的特殊標(biāo)記权旷,如<>昭抒、<td>、’等炼杖,在表單中輸入這些字符進(jìn)行各種操作后看系統(tǒng)是否會(huì)報(bào)錯(cuò)灭返。
表單中的數(shù)據(jù)會(huì)經(jīng)過兩次校驗(yàn):一是腳本校驗(yàn),在輸入時(shí)腳本會(huì)自動(dòng)進(jìn)行初步的判斷坤邪,判斷數(shù)據(jù)是否合法熙含、二是程序提交時(shí)也會(huì)對(duì)數(shù)據(jù)的準(zhǔn)確性進(jìn)行校驗(yàn)。此時(shí)艇纺,測(cè)試時(shí)注意測(cè)試這兩次數(shù)據(jù)校驗(yàn)標(biāo)準(zhǔn)是否一致怎静。
測(cè)試重點(diǎn):
1.? 表單控件的正確性
2.? 提交信息的完整性邮弹、正確性
3.? 是否有錯(cuò)誤處理
1.1.3.? 數(shù)據(jù)校驗(yàn)
如果系根據(jù)業(yè)務(wù)規(guī)則需要對(duì)用戶輸入進(jìn)行校驗(yàn),需要保證這些校驗(yàn)功能正常工作蚓聘。例如腌乡,省份的字段可以用一個(gè)有效列表進(jìn)行校驗(yàn)。在這種情況下夜牡,需要驗(yàn)證列表完整而且程序正確調(diào)用了該列表(例如在列表中添加一個(gè)測(cè)試值与纽,確定系統(tǒng)能夠接受這個(gè)測(cè)試值)。
在測(cè)試表單時(shí)塘装,該項(xiàng)測(cè)試和表單測(cè)試可能會(huì)有一些重復(fù)急迂。
1.1.4.? cookies測(cè)試
Cookies通常用來存儲(chǔ)用戶信息和用戶在某應(yīng)用系統(tǒng)的操作,當(dāng)一個(gè)用戶使用Cookies訪問了某一個(gè)應(yīng)用系統(tǒng)時(shí)蹦肴,Web服務(wù)器將發(fā)送關(guān)于用戶的信息僚碎,把該信息以Cookies的形式存儲(chǔ)在客戶端計(jì)算機(jī)上,這可用來創(chuàng)建動(dòng)態(tài)和自定義頁(yè)面或者存儲(chǔ)登陸等信息阴幌。如果Web應(yīng)用系統(tǒng)使用了Cookies勺阐,就必須檢查Cookies是否能正常工作。測(cè)試的內(nèi)容可包括Cookies是否起作用矛双,是否按預(yù)定的時(shí)間進(jìn)行保存渊抽,刷新對(duì)Cookies有什么影響等。如果在 cookies 中保存了注冊(cè)信息背零,請(qǐng)確認(rèn)該 cookie能夠正常工作而且已對(duì)這些信息已經(jīng)加密腰吟。如果使用 cookie 來統(tǒng)計(jì)次數(shù),需要驗(yàn)證次數(shù)累計(jì)正確徙瓶。
1.1.5.? 數(shù)據(jù)庫(kù)測(cè)試
在Web應(yīng)用技術(shù)中毛雇,數(shù)據(jù)庫(kù)起著重要的作用,數(shù)據(jù)庫(kù)為Web應(yīng)用系統(tǒng)的管理侦镇、運(yùn)行灵疮、查詢和實(shí)現(xiàn)用戶對(duì)數(shù)據(jù)存儲(chǔ)的請(qǐng)求等提供空間。在Web應(yīng)用中壳繁,最常用的數(shù)據(jù)庫(kù)類型是關(guān)系型數(shù)據(jù)庫(kù)震捣,可以使用SQL對(duì)信息進(jìn)行處理。
在使用了數(shù)據(jù)庫(kù)的Web應(yīng)用系統(tǒng)中闹炉,一般情況下蒿赢,可能發(fā)生兩種錯(cuò)誤,分別是數(shù)據(jù)一致性錯(cuò)誤和輸出錯(cuò)誤渣触。數(shù)據(jù)一致性錯(cuò)誤主要是由于用戶提交的表單信息不正確而造成的羡棵,而輸出錯(cuò)誤主要是由于網(wǎng)絡(luò)速度或程序設(shè)計(jì)問題等引起的,針對(duì)這兩種情況嗅钻,可分別進(jìn)行測(cè)試皂冰。
1.1.6.? 設(shè)計(jì)語(yǔ)言測(cè)試
Web設(shè)計(jì)語(yǔ)言版本的差異可以引起客戶端或服務(wù)器端嚴(yán)重的問題店展,例如使用哪種版本的HTML等。當(dāng)在分布式環(huán)境中開發(fā)時(shí)秃流,開發(fā)人員都不在一起赂蕴,這個(gè)問題就顯得尤為重要。除了HTML的版本問題外舶胀,不同的腳本語(yǔ)言概说,例如Java、Javascrīpt峻贮、 ActiveX席怪、VBscrīpt或Perl等也要進(jìn)行驗(yàn)證应闯。
1.2. 性能測(cè)試
1.2.1.? 連接速度測(cè)試
用戶連接到Web應(yīng)用系統(tǒng)的速度根據(jù)上網(wǎng)方式的變化而變化纤控,他們或許是電話撥號(hào),或是寬帶上網(wǎng)碉纺。當(dāng)下載一個(gè)程序時(shí)船万,用戶可以等較長(zhǎng)的時(shí)間,但如果僅僅訪問一個(gè)頁(yè)面就不會(huì)這樣骨田。如果Web系統(tǒng)響應(yīng)時(shí)間太長(zhǎng)(例如超過5秒鐘)耿导,用戶就會(huì)因沒有耐心等待而離開。
另外态贤,有些頁(yè)面有超時(shí)的限制舱呻,如果響應(yīng)速度太慢,用戶可能還沒來得及瀏覽內(nèi)容悠汽,就需要重新登陸了箱吕。而且,連接速度太慢柿冲,還可能引起數(shù)據(jù)丟失茬高,使用戶得不到真實(shí)的頁(yè)面。
影響響應(yīng)時(shí)間的原因有很多:
1.? 應(yīng)用程序服務(wù)器需要從數(shù)據(jù)庫(kù)的大量數(shù)據(jù)中檢索信息
2.? 服務(wù)器硬件影響(CPU假抄、內(nèi)存)
3.? 所訪問頁(yè)面文件大小
4.? 網(wǎng)絡(luò)連接帶寬
1.2.2.? 負(fù)載測(cè)試
負(fù)載測(cè)試是為了測(cè)量Web應(yīng)用系統(tǒng)在一定負(fù)載情況下的系統(tǒng)性能怎栽,通常得出的結(jié)論是Web應(yīng)用系統(tǒng)在一定的硬件條件下可以支持的并發(fā)用戶數(shù)目或者單位時(shí)間數(shù)據(jù)(或事件)的吞吐量。
在進(jìn)行負(fù)載測(cè)試前宿饱,需要定義標(biāo)準(zhǔn)用戶(活動(dòng)用戶)的概念熏瞄,定義執(zhí)行典型的系統(tǒng)流程,定義負(fù)載測(cè)試執(zhí)行總時(shí)間谬以,定義抓取哪些事務(wù)的平均響應(yīng)時(shí)間强饮,定義用戶可以接受的平均響應(yīng)時(shí)間(通常為5秒)
測(cè)試時(shí),增加用戶數(shù)量蛉签,平均響應(yīng)時(shí)間就會(huì)增加胡陪,當(dāng)達(dá)到用戶可以接受的平均響應(yīng)時(shí)間這個(gè)臨界點(diǎn)沥寥,即是此系統(tǒng)可以支持的并發(fā)用戶數(shù)。
1.2.3.? 壓力測(cè)試
負(fù)載測(cè)試應(yīng)該安排在Web系統(tǒng)發(fā)布以后柠座,在實(shí)際的網(wǎng)絡(luò)環(huán)境中進(jìn)行測(cè)試邑雅。因?yàn)橐粋€(gè)企業(yè)內(nèi)部員工,特別是項(xiàng)目組人員總是有限的妈经,而一個(gè)Web系統(tǒng)能同時(shí)處理的請(qǐng)求數(shù)量將遠(yuǎn)遠(yuǎn)超出這個(gè)限度淮野,所以,只有放在Internet上吹泡,接受負(fù)載測(cè)試骤星,其結(jié)果才是正確可信的。
進(jìn)行壓力測(cè)試是指實(shí)際破壞一個(gè)Web應(yīng)用系統(tǒng)爆哑,測(cè)試系統(tǒng)的反映洞难。壓力測(cè)試是測(cè)試系統(tǒng)的限制和故障恢復(fù)能力,也就是測(cè)試Web應(yīng)用系統(tǒng)會(huì)不會(huì)崩潰揭朝,在什么情況下會(huì)崩潰队贱。黑客常常提供錯(cuò)誤的數(shù)據(jù)負(fù)載,直到Web應(yīng)用系統(tǒng)崩潰潭袱,接著當(dāng)系統(tǒng)重新啟動(dòng)時(shí)獲得存取權(quán)柱嫌。
壓力測(cè)試的區(qū)域包括表單、登陸和其他信息傳輸頁(yè)面等屯换。
負(fù)載/壓力測(cè)試應(yīng)該關(guān)注什么
測(cè)試需要驗(yàn)證系統(tǒng)能否在同一時(shí)間響應(yīng)大量的用戶编丘,在用戶傳送大量數(shù)據(jù)的時(shí)候能否響應(yīng),系統(tǒng)能否長(zhǎng)時(shí)間運(yùn)行彤悔〖巫ィ可訪問性對(duì)用戶來說是極其重要的。如果用戶得到“系統(tǒng)忙”的信息蜗巧,他們可能放棄掌眠,并轉(zhuǎn)向競(jìng)爭(zhēng)對(duì)手。系統(tǒng)檢測(cè)不僅要使用戶能夠正常訪問站點(diǎn)幕屹,在很多情況下蓝丙,可能會(huì)有黑客試圖通過發(fā)送大量數(shù)據(jù)包來攻擊服務(wù)器。出于安全的原因望拖,測(cè)試人員應(yīng)該知道當(dāng)系統(tǒng)過載時(shí)渺尘,需要采取哪些措施,而不是簡(jiǎn)單地提升系統(tǒng)性能说敏。
瞬間訪問高峰
如果您的站點(diǎn)用于公布彩票的抽獎(jiǎng)結(jié)果鸥跟,最好使系統(tǒng)在中獎(jiǎng)號(hào)碼公布后的一段時(shí)間內(nèi)能夠響應(yīng)上百萬的請(qǐng)求。負(fù)載測(cè)試工具能夠模擬 X 個(gè)用戶同時(shí)訪問測(cè)試站點(diǎn)。
每個(gè)用戶傳送大量數(shù)據(jù)
網(wǎng)上書店的多數(shù)用戶可能只訂購(gòu) 1-5 書医咨,但是大學(xué)書店可能會(huì)訂購(gòu) 5000 本有關(guān)心理學(xué)介紹的課本? 或者一個(gè)祖母為她的 50 個(gè)兒孫購(gòu)買圣誕禮物(當(dāng)然每個(gè)孩子都有自己的郵件地址) 系統(tǒng)能處理單個(gè)用戶的大量數(shù)據(jù)嗎?
長(zhǎng)時(shí)間的使用
如果站點(diǎn)用于處理鮮花訂單枫匾,那么至少希望它在母親節(jié)前的一周內(nèi)能持續(xù)運(yùn)行。如果站點(diǎn)提供基于 web 的 email 服務(wù)拟淮,那么點(diǎn)最好能持續(xù)運(yùn)行幾個(gè)月干茉,甚至幾年『懿矗可能需要使用自動(dòng)測(cè)試工具來完成這種類型的測(cè)試角虫,因?yàn)楹茈y通過手工完成這些測(cè)試。你可以想象組織100 個(gè)人同時(shí)點(diǎn)擊某個(gè)站點(diǎn)委造。但是同時(shí)組織 100000 個(gè)人呢戳鹅。通常,測(cè)試工具在第二次使用的時(shí)候昏兆,它創(chuàng)造的效益枫虏,就足以支付成本。而且亮垫,測(cè)試工具安裝完成之后模软,再次使用的時(shí)候伟骨,只要點(diǎn)擊幾下饮潦。
1.3. 用戶界面測(cè)試
導(dǎo)航測(cè)試
導(dǎo)航描述了用戶在一個(gè)頁(yè)面內(nèi)操作的方式,在不同的用戶接口控制之間携狭,例如按鈕继蜡、對(duì)話框、列表和窗口等逛腿;或在不同的連接頁(yè)面之間稀并。通過考慮下列問題,可以決定一個(gè)Web應(yīng)用系統(tǒng)是否易于導(dǎo)航:導(dǎo)航是否直觀单默?Web系統(tǒng)的主要部分是否可通過主頁(yè)存鹊饩佟?Web系統(tǒng)是否需要站點(diǎn)地圖搁廓、搜索引擎或其他的導(dǎo)航幫助引颈?
在一個(gè)頁(yè)面上放太多的信息往往起到與預(yù)期相反的效果。Web應(yīng)用系統(tǒng)的用戶趨向于目的驅(qū)動(dòng)境蜕,很快地掃描一個(gè)Web應(yīng)用系統(tǒng)蝙场,看是否有滿足自己需要的信息,如果沒有粱年,就會(huì)很快地離開售滤。很少有用戶愿意花時(shí)間去熟悉Web應(yīng)用系統(tǒng)的結(jié)構(gòu),因此,Web應(yīng)用系統(tǒng)導(dǎo)航幫助要盡可能地準(zhǔn)確完箩。
導(dǎo)航的另一個(gè)重要方面是Web應(yīng)用系統(tǒng)的頁(yè)面結(jié)構(gòu)赐俗、導(dǎo)航、菜單弊知、連接的風(fēng)格是否一致秃励。確保用戶憑直覺就知道Web應(yīng)用系統(tǒng)里面是否還有內(nèi)容,內(nèi)容在什么地方吉捶。
Web應(yīng)用系統(tǒng)的層次一旦決定夺鲜,就要著手測(cè)試用戶導(dǎo)航功能,讓最終用戶參與這種測(cè)試呐舔,效果將更加明顯币励。
1.3.1.? 圖形測(cè)試
在Web應(yīng)用系統(tǒng)中,適當(dāng)?shù)膱D片和動(dòng)畫既能起到廣告宣傳的作用珊拼,又能起到美化頁(yè)面的功能食呻。一個(gè)Web應(yīng)用系統(tǒng)的圖形可以包括圖片、動(dòng)畫澎现、邊框仅胞、顏色、字體剑辫、背景干旧、按鈕等。圖形測(cè)試的內(nèi)容有:
(1)要確保圖形有明確的用途妹蔽,圖片或動(dòng)畫不要胡亂地堆在一起椎眯,以免浪費(fèi)傳輸時(shí)間。Web應(yīng)用系統(tǒng)的圖片尺寸要盡量地小胳岂,并且要能清楚地說明某件事情编整,一般都鏈接到某個(gè)具體的頁(yè)面。
(2)驗(yàn)證所有頁(yè)面字體的風(fēng)格是否一致乳丰。
(3)背景顏色應(yīng)該與字體顏色和前景顏色相搭配掌测。
(4)圖片的大小和質(zhì)量也是一個(gè)很重要的因素,一般采用JPG或GIF壓縮产园,最好能使圖片的大小減小到 30k 以下汞斧。
(5)最后,需要驗(yàn)證的是文字回繞是否正確淆两。如果說明文字指向右邊的圖片断箫,應(yīng)該確保該圖片出現(xiàn)在右邊。不要因?yàn)槭褂脠D片而使窗口和段落排列古怪或者出現(xiàn)孤行秋冰。
通常來說仲义,使用少許或盡量不使用背景是個(gè)不錯(cuò)的選擇。如果您想用背景,那么最好使用單色的埃撵,和導(dǎo)航條一起放在頁(yè)面的左邊赵颅。另外,圖案和圖片可能會(huì)轉(zhuǎn)移用戶的注意力暂刘。
1.3.2.? 內(nèi)容測(cè)試
內(nèi)容測(cè)試用來檢驗(yàn)Web應(yīng)用系統(tǒng)提供信息的正確性饺谬、準(zhǔn)確性和相關(guān)性。
信息的正確性是指信息是可靠的還是誤傳的谣拣。例如募寨,在商品價(jià)格列表中,錯(cuò)誤的價(jià)格可能引起財(cái)政問題甚至導(dǎo)致法律糾紛森缠;信息的準(zhǔn)確性是指是否有語(yǔ)法或拼寫錯(cuò)誤拔鹰。這種測(cè)試通常使用一些文字處理軟件來進(jìn)行,例如使用Microsoft Word的"拼音與語(yǔ)法檢查"功能贵涵;信息的相關(guān)性是指是否在當(dāng)前頁(yè)面可以找到與當(dāng)前瀏覽信息相關(guān)的信息列表或入口列肢,也就是一般Web站點(diǎn)中的所謂"相關(guān)文章列表"。
對(duì)于開發(fā)人員來說宾茂,可能先有功能然后才對(duì)這個(gè)功能進(jìn)行描述瓷马。大家坐在一起討論一些新的功能,然后開始開發(fā)跨晴,在開發(fā)的時(shí)候欧聘,開發(fā)人員可能不注重文字表達(dá),他們添加文字可能只是為了對(duì)齊頁(yè)面坟奥。不幸的是树瞭,這樣出來的產(chǎn)品可能產(chǎn)生嚴(yán)重的誤解。因此測(cè)試人員和公關(guān)部門一起檢查內(nèi)容的文字表達(dá)是否恰當(dāng)爱谁。否則,公司可能陷入麻煩之中孝偎,也可能引起法律方面的問題访敌。測(cè)試人員應(yīng)確保站點(diǎn)看起來更專業(yè)些。過分地使用粗體字衣盾、大字體和下劃線可能會(huì)讓用戶感到不舒服寺旺。在進(jìn)行用戶可用性方面的測(cè)試時(shí),最好先請(qǐng)圖形設(shè)計(jì)專家對(duì)站點(diǎn)進(jìn)行評(píng)估势决。你可能不希望看到一篇到處是黑體字的文章阻塑,所以相信您也希望自己的站點(diǎn)能更專業(yè)一些。最后果复,需要確定是否列出了相關(guān)站點(diǎn)的鏈接陈莽。很多站點(diǎn)希望用戶將郵件發(fā)到一個(gè)特定的地址,或者從某個(gè)站點(diǎn)下載瀏覽器。但是如果用戶無法點(diǎn)擊這些地址走搁,他們可能會(huì)覺得很迷惑独柑。
1.3.3.? 表格測(cè)試
需要驗(yàn)證表格是否設(shè)置正確。用戶是否需要向右滾動(dòng)頁(yè)面才能看見產(chǎn)品的價(jià)格私植?把價(jià)格放在左邊忌栅,而把產(chǎn)品細(xì)節(jié)放在右邊是否更有效? 每一欄的寬度是否足夠?qū)挘砀窭锏奈淖质欠穸加姓坌星冢渴欠裼幸驗(yàn)槟骋桓竦膬?nèi)容太多索绪,而將整行的內(nèi)容拉長(zhǎng)
整體界面測(cè)試
整體界面是指整個(gè)Web應(yīng)用系統(tǒng)的頁(yè)面結(jié)構(gòu)設(shè)計(jì),是給用戶的一個(gè)整體感贫悄。例如:當(dāng)用戶瀏覽Web應(yīng)用系統(tǒng)時(shí)是否感到舒適者春,是否憑直覺就知道要找的信息在什么地方?整個(gè)Web應(yīng)用系統(tǒng)的設(shè)計(jì)風(fēng)格是否一致清女?
對(duì)整體界面的測(cè)試過程钱烟,其實(shí)是一個(gè)對(duì)最終用戶進(jìn)行調(diào)查的過程。一般Web應(yīng)用系統(tǒng)采取在主頁(yè)上做一個(gè)調(diào)查問卷的形式嫡丙,來得到最終用戶的反饋信息拴袭。
對(duì)所有的用戶界面測(cè)試來說,都需要有外部人員(與Web應(yīng)用系統(tǒng)開發(fā)沒有聯(lián)系或聯(lián)系很少的人員)的參與曙博,最好是最終用戶的參與拥刻。
1.4. 兼容性測(cè)試
1.4.1.? 平臺(tái)測(cè)試
市場(chǎng)上有很多不同的操作系統(tǒng)類型,最常見的有Windows父泳、Unix般哼、Macintosh、Linux等惠窄。Web應(yīng)用系統(tǒng)的最終用戶究竟使用哪一種操作系統(tǒng)蒸眠,取決于用戶系統(tǒng)的配置。這樣杆融,就可能會(huì)發(fā)生兼容性問題楞卡,同一個(gè)應(yīng)用可能在某些操作系統(tǒng)下能正常運(yùn)行,但在另外的操作系統(tǒng)下可能會(huì)運(yùn)行失敗脾歇。
因此蒋腮,在Web系統(tǒng)發(fā)布之前,需要在各種操作系統(tǒng)下對(duì)Web系統(tǒng)進(jìn)行兼容性測(cè)試藕各。
1.4.2.? 瀏覽器測(cè)試
瀏覽器是Web客戶端最核心的構(gòu)件池摧,來自不同廠商的瀏覽器對(duì)Java,激况、Javascrīpt作彤、 ActiveX膘魄、 plug-ins或不同的HTML規(guī)格有不同的支持。例如宦棺,ActiveX是Microsoft的產(chǎn)品瓣距,是為Internet Explorer而設(shè)計(jì)的,Javascrīpt是Netscape的產(chǎn)品代咸,Java是Sun的產(chǎn)品等等蹈丸。另外,框架和層次結(jié)構(gòu)風(fēng)格在不同的瀏覽器中也有不同的顯示呐芥,甚至根本不顯示逻杖。不同的瀏覽器對(duì)安全性和Java的設(shè)置也不一樣。
測(cè)試瀏覽器兼容性的一個(gè)方法是創(chuàng)建一個(gè)兼容性矩陣思瘟。在這個(gè)矩陣中荸百,測(cè)試不同廠商、不同版本的瀏覽器對(duì)某些構(gòu)件和設(shè)置的適應(yīng)性滨攻。
1.4.3.? 分辨率測(cè)試
頁(yè)面版式在 640x400够话、600x800 或1024x768 的分辨率模式下是否顯示正常? 字體是否太小以至于無法瀏覽? 或者是太大? 文本和圖片是否對(duì)齊?
1.4.4.? 組合測(cè)試
最后需要進(jìn)行組合測(cè)試。600x800 的分辨率在 MAC 機(jī)上可能不錯(cuò)光绕,但是在 IBM 兼容機(jī)上卻很難看女嘲。在 IBM 機(jī)器上使用 Netscape 能正常顯示,但卻無法使用 Lynx 來瀏覽诞帐。如果是內(nèi)部使用的 web 站點(diǎn)欣尼,測(cè)試可能會(huì)輕松一些。如果公司指定使用某個(gè)類型的瀏覽器停蕉,那么只需在該瀏覽器上進(jìn)行測(cè)試愕鼓。如果所有的人都使用 T1 專線,可能不需要測(cè)試下載施加慧起。(但需要注意的是菇晃,可能會(huì)有員工從家里撥號(hào)進(jìn)入系統(tǒng)) 有些內(nèi)部應(yīng)用程序,開發(fā)部門可能在系統(tǒng)需求中聲明不支持某些系統(tǒng)而只支持一些那些已設(shè)置的系統(tǒng)完慧。但是谋旦,理想的情況是,系統(tǒng)能在所有機(jī)器上運(yùn)行屈尼,這樣就不會(huì)限制將來的發(fā)展和變動(dòng)。
1.5. 安全測(cè)試
即使站點(diǎn)不接受信用卡支付拴孤,安全問題也是非常重要的脾歧。Web 站點(diǎn)收集的用戶資料只能在公司內(nèi)部使用。如果用戶信息被黑客泄露演熟,客戶在進(jìn)行交易時(shí)鞭执,就不會(huì)有安全感司顿。
1.5.1.? 目錄設(shè)置
Web 安全的第一步就是正確設(shè)置目錄。每個(gè)目錄下應(yīng)該有 index.html 或 main.html 頁(yè)面兄纺,這樣就不會(huì)顯示該目錄下的所有內(nèi)容大溜。我服務(wù)的一個(gè)公司沒有執(zhí)行這條規(guī)則。我選中一幅圖片估脆,單擊鼠標(biāo)右鍵钦奋,找到該圖片所在的路徑"…com/objects/images"。然后在瀏覽器地址欄中手工輸入該路徑疙赠,發(fā)現(xiàn)該站點(diǎn)所有圖片的列表付材。這可能沒什么關(guān)系。我進(jìn)入下一級(jí)目錄 "…com/objects" 圃阳,點(diǎn)擊 jackpot厌衔。在該目錄下有很多資料,其中引起我注意的是已過期頁(yè)面捍岳。該公司每個(gè)月都要更改產(chǎn)品價(jià)格富寿,并且保存過期頁(yè)面。我翻看了一下這些記錄锣夹,就可以估計(jì)他們的邊際利潤(rùn)以及他們?yōu)榱藸?zhēng)取一個(gè)合同還有多大的降價(jià)空間页徐。如果某個(gè)客戶在談判之前查看了這些信息,他們?cè)谡勁凶郎峡隙ㄌ幱谏巷L(fēng)晕城。
1.5.2.? SSL
很多站點(diǎn)使用SSL 進(jìn)行安全傳送泞坦。你知道你進(jìn)入一個(gè) SSL 站點(diǎn)是因?yàn)闉g覽器出現(xiàn)了警告消息,而且在地址欄中的 HTTP 變成 HTTPS砖顷。如果開發(fā)部門使用了SSL贰锁,測(cè)試人員需要確定是否有相應(yīng)的替代頁(yè)面(適用于3.0 以下版本的瀏覽器,這些瀏覽器不支持SSL滤蝠。當(dāng)用戶進(jìn)入或離開安全站點(diǎn)的時(shí)候豌熄,請(qǐng)確認(rèn)有相應(yīng)的提示信息。是否有連接時(shí)間限制物咳?超過限制時(shí)間后出現(xiàn)什么情況锣险?
1.5.3.? 登錄
有些站點(diǎn)需要用戶進(jìn)行登錄,以驗(yàn)證他們的身份览闰。這樣對(duì)用戶是方便的芯肤,他們不需要每次都輸入個(gè)人資料。你需要驗(yàn)證系統(tǒng)阻止非法的用戶名/口令登錄压鉴,而能夠通過有效登錄崖咨。用戶登錄是否有次數(shù)限制? 是否限制從某些 IP 地址登錄? 如果允許登錄失敗的次數(shù)為3,你在第三次登錄的時(shí)候輸入正確的用戶名和口令油吭,能通過驗(yàn)證嗎? 口令選擇有規(guī)則限制嗎?? 是否可以不登陸而直接瀏覽某個(gè)頁(yè)面击蹲?
Web應(yīng)用系統(tǒng)是否有超時(shí)的限制署拟,也就是說,用戶登陸后在一定時(shí)間內(nèi)(例如15分鐘)沒有點(diǎn)擊任何頁(yè)面歌豺,是否需要重新登陸才能正常使用推穷。
1.5.4.? 日志文件
在后臺(tái),要注意驗(yàn)證服務(wù)器日志工作正常类咧。日志是否記所有的事務(wù)處理? 是否記錄失敗的注冊(cè)企圖? 是否記錄被盜信用卡的使用? 是否在每次事務(wù)完成的時(shí)候都進(jìn)行保存? 記錄IP 地址嗎? 記錄用戶名嗎?
1.5.5.? 腳本語(yǔ)言
腳本語(yǔ)言是常見的安全隱患馒铃。每種語(yǔ)言的細(xì)節(jié)有所不同。有些腳本允許訪問根目錄轮听。其他只允許訪問郵件服務(wù)器骗露,但是經(jīng)驗(yàn)豐富的黑客可以將服務(wù)器用戶名和口令發(fā)送給他們自己。找出站點(diǎn)使用了哪些腳本語(yǔ)言血巍,并研究該語(yǔ)言的缺陷萧锉。還要需要測(cè)試沒有經(jīng)過授權(quán),就不能在服務(wù)器端放置和編輯腳本的問題述寡。最好的辦法是訂閱一個(gè)討論站點(diǎn)使用的腳本語(yǔ)言安全性的新聞組柿隙。
1.6. 接口測(cè)試
在很多情況下,web站點(diǎn)不是孤立鲫凶。Web 站點(diǎn)可能會(huì)與外部服務(wù)器通訊禀崖,請(qǐng)求數(shù)據(jù)、驗(yàn)證數(shù)據(jù)或提交訂單螟炫。
1.6.1.? 服務(wù)器接口
第一個(gè)需要測(cè)試的接口是瀏覽器與服務(wù)器的接口波附。測(cè)試人員提交事務(wù),然后查看服務(wù)器記錄昼钻,并驗(yàn)證在瀏覽器上看到的正好是服務(wù)器上發(fā)生的掸屡。測(cè)試人員還可以查詢數(shù)據(jù)庫(kù),確認(rèn)事務(wù)數(shù)據(jù)已正確保存然评。這種測(cè)試可以歸到功能測(cè)試中的表單測(cè)試和數(shù)據(jù)校驗(yàn)測(cè)試中仅财。
1.6.2.? 外部接口
有些 web 系統(tǒng)有外部接口。例如碗淌,網(wǎng)上商店可能要實(shí)時(shí)驗(yàn)證信用卡數(shù)據(jù)以減少欺詐行為的發(fā)生盏求。測(cè)試的時(shí)候,要使用 web 接口發(fā)送一些事務(wù)數(shù)據(jù)亿眠,分別對(duì)有效信用卡碎罚、無效信用卡和被盜信用卡進(jìn)行驗(yàn)證。如果商店只使用 Visa 卡和Mastercard 卡纳像, 可以嘗試使用 Discover 卡的數(shù)據(jù)魂莫。(簡(jiǎn)單的客戶端腳本能夠在提交事務(wù)之前對(duì)代碼進(jìn)行識(shí)別,例如 3 表示 American Express爹耗,4 表示 Visa耙考,5 表示 Mastercard,6 代表Discover潭兽。)通常倦始,測(cè)試人員需要確認(rèn)軟件能夠處理外部服務(wù)器返回的所有可能的消息。
這種情況在遠(yuǎn)程抄表中可能會(huì)體現(xiàn)到山卦。
1.6.3.? 錯(cuò)誤處理
最容易被測(cè)試人員忽略的地方是接口錯(cuò)誤處理鞋邑。通常我們?cè)噲D確認(rèn)系統(tǒng)能夠處理所有錯(cuò)誤,但卻無法預(yù)期系統(tǒng)所有可能的錯(cuò)誤账蓉。嘗試在處理過程中中斷事務(wù)枚碗,看看會(huì)發(fā)生什么情況?訂單是否完成铸本?嘗試中斷用戶到服務(wù)器的網(wǎng)絡(luò)連接肮雨。嘗試中斷 web 服務(wù)器到信用卡驗(yàn)證服務(wù)器的連接嘶卧。在這些情況下念脯,系統(tǒng)能否正確處理這些錯(cuò)誤稼稿?是否已對(duì)信用卡進(jìn)行收費(fèi)珊佣?如果用戶自己中斷事務(wù)處理贡未,在訂單已保存而用戶沒有返回網(wǎng)站確認(rèn)的時(shí)候别洪,需要由客戶代表致電用戶進(jìn)行訂單確認(rèn)母债。