2018-08-23 web 功能測試

? 功能測試通常從以下幾個角度來對軟件測試進(jìn)行評價:

- 軟件是否正確實(shí)現(xiàn)了需求規(guī)格說明書中明確定義的需求。

- 軟件是否遺漏了需求規(guī)格說明書中明確定義的需求。

- 軟件是否將需求規(guī)格說明書中未定義的需求實(shí)現(xiàn)。

- 軟件是否對異常情況進(jìn)行了處理,容錯性好。

- 軟件是否滿足用戶的使用需求。

- 軟件是否滿足用戶的隱性需求。

? 在大多數(shù)情況下,功能測試主要關(guān)注于業(yè)務(wù)邏輯層面。而我們?yōu)榇蠹医榻B的功能測試,則忽略具體系統(tǒng)的業(yè)務(wù)邏輯,主要關(guān)注于WEB 系統(tǒng)通用的一些測試點(diǎn)。

- 表單測試

- 鏈接測試

- Cookie驗(yàn)證

表單測試

什么是表單?

HTML 表單用于搜集不同類型的用戶輸入。通長把文本框、下拉框、標(biāo)簽、按鈕控件放在一個表單中,用于接收用戶的輸入。網(wǎng)站頁面通過提交表單把用戶的輸入信息提交到服務(wù)器。

表單測試項(xiàng)

表單控件完整、布局合理

表單控件數(shù)據(jù)校驗(yàn)

表單控件聯(lián)動

表單數(shù)據(jù)的提交完整、正確

功能符合業(yè)務(wù)需求

表單控件顯示內(nèi)容正確,且功能正常

鏈接測試

? 原理

從待測網(wǎng)站的根目錄開始遍歷所有的網(wǎng)頁文件,對所有網(wǎng)頁文件中的超級鏈接、圖片文件、包含文件、CSS文件、頁面內(nèi)部鏈接等所有鏈接進(jìn)行讀取。以求最大程度的發(fā)現(xiàn)被測網(wǎng)站不完整是不存在的資源,并提交給相關(guān)人員進(jìn)行整改。

? 鏈接測試分為三個方面:

- 測試所有鏈接是否按指示的那樣確實(shí)鏈接到了該鏈接的頁面;

- 測試所鏈接的頁面是否存在;

- 保證Web 應(yīng)用系統(tǒng)上沒有孤立的頁面。所謂孤立頁面是指沒有鏈接指向該頁面,只有知道正確的URL地址才能訪問。

COOKIE測試

是Web服務(wù)器保存在用戶硬盤上的一段文本。Cookie允許一個Web站點(diǎn)在用戶的電腦上保存信息并且隨后再取回它。信息的片斷以‘名/值’對(name-value pairs)的形式儲存。

例如: C:\Users\jack\AppData\Local\Microsoft\Windows\Temporary Internet Files

1、Cookie是否正確保存用戶信息。

2、Cookie清楚不影響程序的功能

3、Cookie有效期驗(yàn)證。


##################


可用性測試

? 站點(diǎn)整體布局、風(fēng)格適宜

? 頁面導(dǎo)航直觀

? 頁面內(nèi)容準(zhǔn)確

? 使用過程是否方便、易理解

? 注意快捷方式

? 滿足區(qū)域文化

? 考慮用戶群體

容量測試

? 模擬真實(shí)數(shù)據(jù)量下的驗(yàn)證。功能測試往往構(gòu)造幾條測試數(shù)據(jù),可以完成功能

驗(yàn)證即可。但是系統(tǒng)在真正使用時,往往數(shù)據(jù)量是比較大的,另外會存在各種

情況的數(shù)據(jù),數(shù)據(jù)量大的時候可能會出現(xiàn)一些缺陷。

構(gòu)造測試數(shù)據(jù):

? A、手工構(gòu)造。

? B、編碼構(gòu)造。

? C、生產(chǎn)環(huán)境導(dǎo)出。

? D、數(shù)據(jù)生成器 Datafactory

安全性測試

? 認(rèn)證與授權(quán)

? Session和cookie

? 文件上傳漏洞

? SQL 注入

? XSS 跨站攻擊

? DDoS拒絕服務(wù)攻擊

認(rèn)證和授權(quán)

? 認(rèn)證的目的是為了認(rèn)出用戶是誰,而授權(quán)的目的是為了決定用戶能夠做什么。

? 認(rèn)證:Authentication (who am I ?)

? 認(rèn)證實(shí)際上就是一個驗(yàn)證憑證的過程。

? 多因素認(rèn)證的強(qiáng)度要高于單因素的認(rèn)證,但是在用戶體驗(yàn)上,多因素認(rèn)證或多或少會帶來一些不方便的地方。

? 密碼策略:長度、復(fù)雜度,要經(jīng)過不可逆的加密后保存在數(shù)據(jù)庫中。

? 多因素認(rèn)證:支付寶

? 登錄失敗的錯誤提示消息不應(yīng)該明確告知是用戶名不存在還是密碼錯誤,避免客戶端使用暴力破解方式。

? 必須要登錄成功后才能訪問的頁面中都需要用Session 對客戶端進(jìn)行驗(yàn)證,確認(rèn)當(dāng)前Session 已經(jīng)登錄過,否則訪問該頁面時應(yīng)該自動跳轉(zhuǎn)到登錄頁面。避免客戶端直接在URL 地址欄輸入某個地址進(jìn)行訪問,繞開登錄驗(yàn)證。

? 登錄失敗后的限制策略,比如連接5 次登錄失敗,應(yīng)該暫停用戶登錄,并將該信息發(fā)送給系統(tǒng)管理員,并告知客戶端的IP 地址。

? 登錄時應(yīng)該使用圖片驗(yàn)證碼,包括后續(xù)的一些表單提交的動作,都要使用圖片驗(yàn)證碼。避免使用工具發(fā)送數(shù)據(jù)包,目前圖片驗(yàn)證碼是被證明最可靠的防攻擊手段之一。


? 授權(quán):Authorization (what can I do?)

? 某個主體對某個對象需要實(shí)施某種操作,而系統(tǒng)對這種操作的限制就是權(quán)限控制。

? 用戶只能訪問被授權(quán)的模塊和功能。

? 用戶不能通過直接輸入U(xiǎn)RL 地址的方式進(jìn)行越權(quán)訪問。

? 權(quán)限的控制只能由系統(tǒng)管理員來維護(hù),其它用戶不能做任何修改。

? 權(quán)限控制要細(xì),最好細(xì)到增刪查改這種功能上,并且不同模塊有不同的權(quán)限。

Session和Cookie

? 對客戶端生成Session ID 時最好與IP 地址進(jìn)行綁定,避免非法客戶端獲取到別人的Session ID 后來冒充合法用戶。

? Cookie 的信息由于是保存在客戶端,是公開的,所以對于關(guān)鍵信息需要加密處理。

? Cookie 的作用域需要定義清楚,不能一味的全部定義成 / ,這樣很有可能站點(diǎn)虛擬目錄之間的Cookie 信息互相影響,產(chǎn)生沖突。除非我們的站點(diǎn)只有一個虛擬目錄。

? 一些重要的具有控制功能的數(shù)據(jù)不能保存在Cookie 當(dāng)中,而必須將它保存在Session 中,避免人為地篡改Cookie 非法獲取到系統(tǒng)控制權(quán)。

Session測試

? Session 不能過度使用,會加重服務(wù)器維護(hù)Session 的負(fù)擔(dān)。

? Session 的過期時間設(shè)置是否合理。

? Session 過期后是否客戶端是否生成新的SessionID。

文件上傳漏洞

? 對文件類型進(jìn)行過濾,比如只能允許上傳圖片或壓縮文件。不能允許用戶上傳可執(zhí)行程序或代碼

? 見案例:訪問secure中的兩個php文件

? apache\bin\php.ini disable_function=phpinfo system

? 不能單純只是以文件的后綴名來進(jìn)行類型的判斷

? 不能單純只是在客戶端使用Javascript 對文件類型進(jìn)行判斷,而應(yīng)該在服務(wù)器端進(jìn)行

? 文件上傳的大小必須有限制

SQL注入

? 注入攻擊的本質(zhì),是把用戶輸入的數(shù)據(jù)當(dāng)成代碼執(zhí)行。

? 兩個關(guān)鍵條件:

- 用戶能夠控制輸入

- 原本程序要執(zhí)行的代碼,拼接了用戶輸入的數(shù)據(jù)。

? 攻擊演示:http://localhost:8008/secure

SQL注入防治

? 不要信任用戶的輸入。對用戶的輸入進(jìn)行校驗(yàn),可以通過正則表達(dá)式,或限制長度;

? 不要使用動態(tài)拼裝SQL,可以使用參數(shù)化的SQL 或者直接使用存儲過程進(jìn)行數(shù)據(jù)查詢存取。

? 不要使用管理員權(quán)限的數(shù)據(jù)庫連接,為每個應(yīng)用使用單獨(dú)的權(quán)限有限的數(shù)據(jù)庫連接。

? 不要把機(jī)密信息直接存放,加密敏感信息。

? 應(yīng)用的異常信息應(yīng)該給出盡可能少的提示,最好使用自定義的錯誤信息對原始錯誤信息進(jìn)行包裝

? 將服務(wù)器設(shè)置修改為支持自動將單引號和雙引號進(jìn)行轉(zhuǎn)義。

? SQL 注入的檢測方法一般采取輔助軟件或網(wǎng)站平臺來檢測,軟件一般采用SQL 注入檢測工具如IBM 的AppScan 等。

跨站攻擊概述

XSS又叫CSS (Cross Site Script) ,跨站腳本攻擊。它指的是惡意攻擊者往Web頁面里插入惡意html代碼,當(dāng)用戶瀏覽該頁之時,嵌入其中Web里面的html代碼會被執(zhí)行,從而達(dá)到惡意用戶的特殊目的。

?盜取Cookie

?重定向用戶到釣魚網(wǎng)站

?操縱受害者的瀏覽器

?蠕蟲攻擊

跨站攻擊測試方法

主要看代碼里對用戶輸入的地方和變量有沒有做長度和對 ”<” ,”>”, ”;” , ”’”等字符是否做過濾。還有要注意的是對于標(biāo)簽的閉合。

舉例:在用戶的輸入域輸入“”,如果提交數(shù)據(jù)后,系統(tǒng)以普通字符串形式顯示則證明沒有此漏洞,如果顯示為一個文本輸入框,則證明存在此漏洞。

DDoS拒絕服務(wù)攻擊

? DDos攻擊原理就是模擬真實(shí)用戶來使用系統(tǒng),但是模擬的量是非常大的,這樣通過利用大量合理的請求造成資源過載,導(dǎo)致服務(wù)不可用,從而導(dǎo)致系統(tǒng)無法為真正用戶提供服務(wù)。

? DDoS攻擊,基本原理均是基于網(wǎng)絡(luò)協(xié)議來進(jìn)行的。

瀏覽器兼容性測試概述

瀏覽器是Web客戶端最核心的構(gòu)件,來自不同廠商的瀏覽器對Java,、JavaScript、 ActiveX、 plug-ins或不同的HTML規(guī)格有不同的支持。例如,ActiveX是Microsoft的產(chǎn)品,是為Internet Explorer而設(shè)計(jì)的,javascript是Netscape的產(chǎn)品,Java是Sun的產(chǎn)品等等。

主流瀏覽器:IE系列、FireFox、Chrome、Safari、360瀏覽器、騰訊TT等。Web網(wǎng)站要兼容不同廠商、不同版本的瀏覽器以及相應(yīng)的插件和設(shè)置。

瀏覽器兼容性測試內(nèi)容

?手工測試:

測試一款主流的瀏覽器,其它瀏覽器測試主要業(yè)務(wù)流程。同時可以借助一些工具提升測試效率:如IETester。

?在線測試:

目前一些瀏覽器兼容性測試廠商推出在線測試平臺,可以進(jìn)行在線測試,如: http://browsershots.org/

前端測試

互聯(lián)網(wǎng)進(jìn)入Web2.0時代,各種類似桌面軟件的Web應(yīng)用大量涌現(xiàn),網(wǎng)站的前端由此發(fā)生了翻天覆地的變化。網(wǎng)頁不再只是承載單一的文字和圖片,各種富媒體讓網(wǎng)頁的內(nèi)容更加生動,網(wǎng)頁上軟件化的交互形式為用戶提供了更好的使用體驗(yàn),這些都是基于前端技術(shù)實(shí)現(xiàn)的。

? JavaScript

? CSS

? XHtml

? Flash

Web訪問時間組成

Web前端:

網(wǎng)絡(luò)通道的建立

信息的傳輸

頁面加載

瀏覽器渲染

Web后端:

服務(wù)器業(yè)務(wù)邏輯處理

數(shù)據(jù)庫數(shù)據(jù)處理

Web 前端性能測試項(xiàng)

雅虎前端研發(fā)團(tuán)隊(duì)提出的前端32條準(zhǔn)則:

CSS內(nèi)容置頂(瀑布流)

CSS最新傳輸,可以使瀏覽器逐步加載已將下載的網(wǎng)頁內(nèi)容。這對內(nèi)容比較多的網(wǎng)頁尤其重要,用戶不用一直等待在一個白屏上,而是可以先看已經(jīng)下載的內(nèi)容,用戶體驗(yàn)較好。

JavaScript 腳本置底

JavaScript腳本對于頁面展示沒有幫助,主要用于后期用戶的輸入或異步加載處理,所以要放置到HTML代碼底部,最后傳輸。

另外就是將JavaScript或CSS中的空格和注釋全去掉,精簡這些文件

HTTP 請求次數(shù)優(yōu)化

1.盡量減少HTTP請求數(shù):

?合并文件到一個文件中,減少文件請求。

?合并多個小圖到一個大圖,再使用CSS Sprites技術(shù)進(jìn)行拆分

?報(bào)文Header使用Expires屬性,進(jìn)行圖片等內(nèi)容緩存

2.文件壓縮傳輸

Gzip通常可以減少70%網(wǎng)頁內(nèi)容的大小,包括腳本、樣式表、圖片等文件。Gzip比deflate更高效,主流服務(wù)器都有相應(yīng)的壓縮支持模塊。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容