??一、什么是Web測試
??? ???如果要了解web測試,首先我們的清楚web
項目是什么,一般指本b/s架構項目也就是通過瀏覽器進行訪問的,在日常生活工作中,基于web系統(tǒng)的應用非常多。
? ?? ? 打開電腦,搶火車票我們會登陸12306網站,添置衣物我們會登陸天貓,購置電器我們會上京東... 對于這類項目的測試我們就說進行的web測試。
??二、Web測試的特點
? ?? ???從系統(tǒng)架構來看的話,一般都是b/s架構,基于瀏覽器的項目,所以只要更新了服務器端,客戶端就會同步更新。
? ?? ???基于這種架構,web測試除了需要檢查和驗證功能、界面是否按照設計的要求之外,還要考慮兼容,因為是基于瀏覽器的,所以更傾向于瀏覽器和電腦硬件,電腦系統(tǒng)的方向的兼容,不過一般還是以瀏覽器為主,除此之外,還要從最終用戶的角度進行安全性和可用性測試,可用性測試包括接口測試性能測試。
? ?? ???因此對于測試人員來說,確認和驗收是一項富有挑戰(zhàn)性的工作,我們必須充分掌握web測試的方法和技術,下面會從這6個部分來對web測試方法和技術進行詳細分析。
??三、Web 功能測試
? ?? ?1、鏈接測試
? ?? ? 鏈接是web應用系統(tǒng)的一個主要特征,他是在頁面之間切換和指導用戶去一些不知道地址的頁面主要手段。鏈接測試可分為三個方面:
? ?? ? 1)測試所有鏈接是否按指示鏈接到了該鏈接的頁面
? ?? ? 2)測試所鏈接的頁面是否存在
? ?? ? 3)保證web應用上沒有孤立的頁面,所謂孤立頁面是指沒有鏈接指向該頁面,只有知道正確的URL地址才能訪問
? ?? ?2、表單測試
? ?? ?當用戶通過表單提交信息的時候,都希望表單能正常工作,若使用表單來進行在線注冊,要確保提交按鈕正常,注冊完成后應返回注冊成功的消息。
? ?? ?1)當用戶使用表單進行用戶注冊、登陸、信息提交等操作時,我們必須測試提交內容的完整性,以校驗提交給服務器的信息的正確性。
? ?? ?? ?例如:用戶填寫的手機號碼和昵稱是否滿足需求中長度及類型組成要求
? ?? ?2)如果表單使用了默認值,需要驗證默認值得正確性
? ?? ?3)如果表單只能接受指定的某些值,則也要進行測試
? ?? ?? ? 例如:性別選擇只能男、女,測試時可以跳過這些特定值,看系統(tǒng)是否會報錯。
? ?? ? 3.數據校對
? ?? ? 如果系統(tǒng)根據業(yè)務規(guī)則需要對用戶輸入進行校驗,需要保證這些校驗功能正常工作。
? ?? ? 例如省份的字段可以用一個有效列表進行校驗,在這種情況下,需要驗證列表完整而且程序正確調用了該列表(例如在列表中添加一個測試值,確定系統(tǒng)能夠接受這個測試值)。
? ?? ? 在測試表單時,該項測試和表單測試可能會有一些重復。
? ?? ? Cookies通常用來存儲用戶信息和用戶在某應用系統(tǒng)的操作,當一個用戶使用Cokies訪問了某一個應用系統(tǒng)時,Web服務器將發(fā)送關于用戶的信息,把該信息以Cookies的形式存儲在客戶端計算機上,這可用來創(chuàng)建動態(tài)和自定義頁面或者存儲登陸等信息。
? ???如果 Web應用系統(tǒng)使用了Cookies,就必須檢查Cookies是否能正常工作。測試的內容可包括:
? ???1)Cookeis是否起作用,是否按預定的時間進行保存,刷新對Cookies有什么影響等。
? ???2)如果在cookies 中保存了注冊信息,請確認該cookie 能夠正常工作而且已對這些信息已經加密。
? ???3)如果使用 cookie來統(tǒng)計次數,需要驗證次數累計正確。
? ?? ???4.數據庫測試
? ?? ? 在Web應用技術中,數據庫起著重要的作用,數據庫為Web應用系統(tǒng)的管理、運行、查詢和實現用戶對數據存儲的請求等提供空間。
? ?? ? 在Web應用中,最常用的數據庫類型是關系型數據庫,可以使用SQL對信息進行處理。
? ?? ? 在使用了數據庫的Web應用系統(tǒng)中,一般情況下,從以下兩方面進行測試:
? ?? ? 1)對數據一 致性進行測試, 主要是用戶 提交的表單信息存儲到數據庫后 各字段值是否一致。
? ?? ? 2)對輸出進行測試,主要是驗證從數據庫查詢后顯示在界面的數據信息是否正確。例如12306網站的余票信息。
? ?? ? 5.流程測試
? ?? ???最重要的是,測試人員需要對應用程序用戶常見使用場景進行測試。
??? ???嘗試用戶可能進行的所有操作:新增、修改、刪除、查詢等等。
? ?? ???例如購物網站測試,需要進行注冊用戶(新增)、瀏覽商品(查詢)、加入購物車下訂單(新增)、刪除訂單(刪除)、在線支付等等。
??四、Web界面測試
? ?? ? 界面測試可以直接參考原型圖和切圖設計進行界面核對。有幾個常見的部分如下:
? ?? ??1.導航測試
? ?? ? 導航描述了用戶在一個頁面內操作的方式,在不同的用戶接口控制之間。
? ?? ? 例如:按鈕、對話框、列表和窗口等;或在不同的連接頁面之間。?
? ?? ? 通過考慮下列問題,可以決定一個Web應用系統(tǒng)是否易于導航:導航是否直觀?Web系統(tǒng)的主要部分是否可通過主頁存?。縒eb系統(tǒng)是否需要站點地圖、搜索引擎或其他的導航幫助?
? ?? ? 導航的另一個重要方面是Web應用系統(tǒng)的頁面結構、導航、菜單、連接的風格是諸存儲登否一致。確保用戶憑直覺就知道Web應用系統(tǒng)里面是否還有內容,內容在什么地方。
? ?? ??2.圖形測試
? ? ?? ? 在Web應用系統(tǒng)中,適當的圖片和動畫既能起到廣告宣傳的作用,又能起到美化頁面的功能。
? ?? ? 一個Web應用系統(tǒng)的圖形可以包括圖片、動畫、邊框、顏色、字體、背景、按鈕等。
? ?? ? 圖形測試的內容有:
? ?? ???1)要確保圖形有明確的用途,圖片或動畫不要胡亂地堆在一起,以免浪費傳輸時間。
? ?? ?? ?? ?Web應用系統(tǒng)的圖片尺寸要盡量地小,并且要能清楚地說明某件事情,一般都鏈接到某個具體的頁面。
? ?? ? 2)驗證所有頁面字體的風格是否一致。
? ?? ? 3)背景顏色應該與字體顏色和前景顏色相搭配。
? ? ? 4)圖片的大小和質量也是一個很重要的因素,一般采用JPG或GIF壓縮,最好能使圖片的大小減小到30k以下。
? ?? ? 5)需要驗證的是文字回繞是否正確。如果說明文字指向右邊的圖片,應該確保該段圖片出現在右邊。不要因為使用圖片而使窗口和段落排列古怪或者出現孤行。
? ?? ?3.表格測試
? ?? ? 1)需要驗證表格是否設置正確。
? ?? ? 2)用戶是否需要向右滾動頁面才能看見產品的價格?細節(jié)放在右邊是否更有效?
? ?? ? 3)每一欄的寬度是否是夠寬, 表格里的文字是否都有折行?是否有因為某一格的內容太多,而將整行的內容拉長?
? ?? ?4.整體界面測試
? ? ?? ?整體界面是指整個Web應用系統(tǒng)的頁面結構設計,是給用戶的一個整體感。?
? ? ?? ?例如:當用戶瀏覽Web應用系統(tǒng)時是否感到舒適,是否憑直覺就知道我要找的信息在什么地方?整個Web應用系統(tǒng)的設計風格是否一致?
??五、Web性能測試
? ?? ?性能測試在該章節(jié)不做深入分析,只做大致整理。
? ?? ? 1.連接速度測試? ??
? ?? ? 用戶連接到Web應用系統(tǒng)的速度根據上網方式的變化而變化,他們或許是電話撥號,或是寬帶上網。
? ?? ? 當下載一個程序時,用戶可以等較長的時間,但如果僅僅訪問一個頁面,若響應時間太長(例如超過5秒鐘),用戶就會因沒有耐心等待而離開。
? ?? ? 另外,有些頁面有超時的限制,如果響應速度太慢,用戶可能還沒來得及瀏覽內容,就需要重新登陸了。而且,連接速度太慢,還可能引起數據丟失,使用戶得不到真實的頁面。
? ?? ? 對于響應時間,業(yè)間遵循2-5-8原則。
? ?? ?2.負載壓力測試
? ?? ? 在這里的負載\壓力和功能測試中的不同,他是系統(tǒng)測試的內容。
? ?? ? 基本功能已經通過后進行的,可以在集成測試階段,亦可以在系統(tǒng)測試階段進行。
? ?? ? 通過該項測試用以檢測死機、崩損、內存泄漏問題等。因為有些存在內存泄漏問題的程序,在運行一兩次時可能不會出現問題,但是如果運行了成千上萬次,內存泄漏得越來越多,就會導致系統(tǒng)崩滑。
? ? ?? ?使用負載測試工具loadrunner、Jmeter 等,虛擬一定數量的用戶看一看系統(tǒng)的表現,是否滿足定義中的指標。主要的測試場最如下:
? ?? ?1)驗證系統(tǒng)能否在同一時間響應大量的用戶。
? ?? ?2)在用戶傳送大量數據的時候系統(tǒng)能否正常響應。
? ?? ?3) 正并負載情況下,系統(tǒng)能否長時間運行。
? ?? ???可訪問性對用戶來說是極其重要的。如果用戶得到“系統(tǒng)忙”的信息,他們可能放棄:并轉向競爭對手。
? ?? ? 系統(tǒng)檢測不僅要使用戶能夠正常訪問站點,在很多情況下,可能會有黑客試圖通過發(fā)送大量數據包來攻擊服務器。
? ?? ? 出于安全的原因,測試人員應法知道當系統(tǒng)過載時,需要采取哪些措施,而不是簡單地提升系統(tǒng)性能。
??六、Web 兼容性測試
? ?? ? 兼容性,因為是基于效覽器的,所以一般還是以常用瀏覽器兼容性測試為主。
? ?? ?1.平臺測試
? ?? ? 市場上有很多不同的操作系統(tǒng)類型,最常見的有Windows、Unix、Macintosh、Linux等。
??? ?Web應用系統(tǒng)的最終用戶究競使用哪一種操作系統(tǒng),取決于用戶系統(tǒng)的配置。這樣,就可能會發(fā)生兼容性問題,同一個應用可能在某些操作系統(tǒng)下能正常運行,但在另外的操作系統(tǒng)下可能會運行失敗。
? ???因此,在Web系統(tǒng)發(fā)布之前,需要在各種操作系統(tǒng)下對Web系統(tǒng)進行兼容性測試。
? ???2.瀏覽器測試
? ? ?? ?瀏覽器的兼容一般是選擇不同的瀏覽器內核進行測試(IE、 chrome、Firefox)再結合用戶市場使用量高的瀏覽器來綜合選擇。
? ? ?? ?不同瀏覽器使用內核及所支持的HTML (標準通用標記語言下的一個應用)等網頁語言標準不同;以及用戶客戶端的環(huán)境不同(如分辨率不同)造成的顯示效果不能達到理想效果。
? ?? ? ? 最常見的問題就是網頁元素位置混亂、錯位。主要測式內容如下:
? ?? ? 1)頁面的格式,字體,輸入框,下拉框,復選框, 按鈕等的檢查;
? ?? ? 2)頁面顯示穿插在功能進行中檢查。
? ???3. 分辨率測試
? ?? ? 頁面版式在640x400、600x800或1024x768 的分辨率模式下是否顯示正常?字體是否太小以至于無法洳覽?或者是太大?文本和圖片是否對齊?
??七、Web的安全測試
? ?? ? 主要是測試系統(tǒng)在沒有授權的情況下,內部或者外部用戶對系統(tǒng)進行攻擊或者惡意破壞時如何進行處理,是否仍能保證數據的安全。
? ?? ? 測試員可以學習一些黑客技術,來對系統(tǒng)進行攻擊。這里不做深入分析,只做大致整理。
? ???1.目錄設置? ??
? ?? ? ?Web安全的第一步就是正確設置目錄。 每個目錄下應該有index.html 或main.html頁面,這樣就不會顯示該目錄下的所有內容。
? ? ?? ?有些公司沒有執(zhí)行這條規(guī)則。大家可以嘗試選中一幅圖片,單擊鼠標右鍵,找到該圖片所在的路徑“....com/objects/images”。然后在瀏覽器地址欄中手工輸入該路徑,會不會發(fā)現該站點的其他信息。例如保存過期頁面記錄信息。
?? ??? 很多站點使用SSL進行安全傳送。你知道你進入一個SSL站點是因為瀏覽器出現了警告消息,而且在地址欄中的HTTP變成HTTPS。
? ? ?? ?如果開發(fā)部門使用了SSL,測試人員需要確定是否有相應的替代頁面(適用于3.0以下版本的瀏覽器,這些瀏覽器不支持SSL)。
? ? ? ??當用戶進入或離開安全站點的時候,請確認有相應的提示信息。是否有連接時間限制?超過限制時間后出現什么情況?
? ?? ? 2.登錄? ??
? ?? ???有些站點需要用戶進行登錄,以驗證他們的身份。這樣對用戶是方便的,他們不需要每次都輸入個人資料。
? ?? ???你需要驗證系統(tǒng)阻止非法的用戶名/口令登錄,而能夠通過有效登錄。
? ?? ???1)用戶登錄是否有次數限制?
? ?? ???2)是否限制從某些IP 地址登錄?
? ? ? ?3)如果允許登錄失敗的次數為3,在第三次登錄的時候輸入正確的用戶名和口令, 能通過驗證嗎?
? ?? ???4)口令選擇有規(guī)則限制嗎?
? ?? ???5)是否可以不登陸而直接瀏覽某個頁面?
? ?? ???6)Web應用系統(tǒng)是否有超時的限制,也就是說,用戶登陸后在一定時間內(例如15分鐘)沒有點擊任何頁面,是否需要重新登陸才能正常使用。
? ?? ???3.日志文件
? ?? ?? ?在后臺,要注意驗證服務器日志工作正常。
? ?? ?? ?1)日志是否記所有的事務處理?
? ?? ?? ?2)是否記錄失敗、錯誤的頁面請求?
? ?? ?? ?3)是否在每次事務完成的時候都進行保存?記錄IP地址嗎?記錄用戶名嗎?
? ?? ?? ?4.腳本語言
? ?? ?? ? 腳本語言是常見的安全隱患。每種語言的細節(jié)有所不同。
? ? ??? ?有些腳本允許訪問根目錄,其他只允許訪問郵件服務器。
? ?? ?? ?但是經驗豐富的黑客可以將服務器用戶名和口令發(fā)送給他們自己。
? ?? ?? ?找出站點使用了哪些腳本語言,并研究該語言的缺陷。
??? ?? ?還要需要測試沒有經過授權,就不能在服務器端放置和編輯腳本的問題。