測(cè)試用例設(shè)計(jì)_第1頁(yè)
測(cè)試用例設(shè)計(jì)_第2頁(yè)
測(cè)試用例設(shè)計(jì)_第3頁(yè)
測(cè)試用例設(shè)計(jì)_第4頁(yè)
測(cè)試用例設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩54頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1.

Web測(cè)試中關(guān)于登錄的測(cè)試2.

搜索功能測(cè)試用例設(shè)計(jì)3.

翻頁(yè)功能測(cè)試用例4.

輸入框的測(cè)試5.

Web測(cè)試的常用的檢查點(diǎn)6.

用戶(hù)及權(quán)限管理功能常規(guī)測(cè)試方法7.

Web測(cè)試之兼容性測(cè)試8.

Web測(cè)試-sql注入9.

Web測(cè)試中書(shū)寫(xiě)用例時(shí)要考慮的檢查點(diǎn)10.

手機(jī)電子郵件測(cè)試用例11.

記事本與日歷的測(cè)試用例12.

Web測(cè)試總結(jié)13.

讓web站點(diǎn)崩潰最常見(jiàn)的七大原因14.

Web應(yīng)用程序是否存在跨站點(diǎn)腳本漏洞15.

Web測(cè)試總結(jié)(全)16.

理解web性能測(cè)試術(shù)語(yǔ)17.

Web安全測(cè)試入門(mén)18.

測(cè)試工作總結(jié)19.

Web應(yīng)用系統(tǒng)易出問(wèn)題的原因和測(cè)試要點(diǎn)20.

使用JMeter測(cè)試web的應(yīng)用

1.

Web測(cè)試中關(guān)于登錄的測(cè)試

請(qǐng)問(wèn),你為自己寫(xiě)過(guò)的用例懷疑過(guò)嗎?前兩天聽(tīng)一個(gè)朋友說(shuō)他同事寫(xiě)了100個(gè)用例,結(jié)果有92個(gè)是無(wú)效的,差點(diǎn)被公司開(kāi)了,本人以前也寫(xiě)過(guò)不少用例,但現(xiàn)在忽然懷疑我的用例了,覺(jué)得越來(lái)越糊涂了,拿登陸框來(lái)說(shuō)吧,我寫(xiě)了7個(gè)用例,但總感覺(jué)不好,在網(wǎng)上找了篇文章,分享下,希望對(duì)大家有幫助??旖萱I的使用是否正常:1.TAB

鍵的使用是否正確2.上下左右鍵是否正確3.界面如果支持

ESC鍵

看是否正常的工作3.ENTER

鍵的使用是否正確切換時(shí)是否正常。布局美感界面的布局是否符合人的審美的標(biāo)準(zhǔn)具體因人而異輸入框的功能:輸入合法的用戶(hù)名和密碼可以成功進(jìn)入輸入合法的用戶(hù)名和不合法密碼不可以進(jìn)入,并給出合理的提示輸入不合法的用戶(hù)名和正確密碼不可以進(jìn)入,并給出合理的提示輸入不合法的用戶(hù)名和不正確的密碼不可以進(jìn)入,并給出合理的提示不合法的用戶(hù)名有:不正確的用戶(hù)名,,使用了字符大于用戶(hù)名的限制正常用戶(hù)名不允許的特殊字符

空的用戶(hù)名,系統(tǒng)(操作系統(tǒng)和應(yīng)用系統(tǒng))的保留字符不合法的密碼有:空密碼(除有特殊規(guī)定的),錯(cuò)誤的密碼,字符大于密碼的限制正常密碼不允許的特殊字符,系統(tǒng)(操作系統(tǒng)和應(yīng)用系統(tǒng))的保留字符

界面的鏈接:對(duì)于界面有鏈接的界面,要測(cè)試界面上的所有的鏈接都正?;蛘呓o出合理的提示補(bǔ)充輸入框是否支持

復(fù)制和黏貼

和移動(dòng)密碼框顯示的不要是具體的字符,要是一些密碼的字符驗(yàn)證用戶(hù)名前有空格是否可以進(jìn)入,一般情況可以。驗(yàn)證用戶(hù)名是否區(qū)分大小寫(xiě)。(有的軟件是區(qū)分大小寫(xiě)的)驗(yàn)證必填項(xiàng)為空,是否允許進(jìn)入。驗(yàn)證登錄的次數(shù)是否有限制。從安全角度考慮,有些安全級(jí)別高的軟件會(huì)考慮這方面的限制。

2.

搜索功能測(cè)試用例設(shè)計(jì)

對(duì)被測(cè)試點(diǎn)進(jìn)行分解,把測(cè)試用例分解為多個(gè)測(cè)試場(chǎng)景場(chǎng)景編號(hào)場(chǎng)景描述預(yù)期結(jié)果場(chǎng)景一頁(yè)面檢查正確場(chǎng)景二默認(rèn)條件搜索查詢(xún)結(jié)果正確場(chǎng)景三修改可選條件搜索查詢(xún)結(jié)果正確場(chǎng)景四修改輸入條件搜索查詢(xún)結(jié)果正確場(chǎng)景五修改區(qū)間條件搜索查詢(xún)結(jié)果正確場(chǎng)景六組合可選、輸入條件搜索查詢(xún)結(jié)果正確場(chǎng)景七操作后檢查搜索條件及查詢(xún)結(jié)果查詢(xún)結(jié)果正確場(chǎng)景八錯(cuò)誤、空記錄搜索查詢(xún)結(jié)果為空測(cè)試步驟描述按照已經(jīng)分解的測(cè)試場(chǎng)景順序,逐個(gè)描述測(cè)試場(chǎng)景的測(cè)試步驟測(cè)試場(chǎng)景一:步驟編號(hào)具體描述1進(jìn)入搜索(高級(jí)搜索)頁(yè)面2界面共性測(cè)試3退出簡(jiǎn)介:進(jìn)入界面,退出界面。測(cè)試場(chǎng)景二:步驟編號(hào)具體描述1進(jìn)入搜索(高級(jí)搜索)頁(yè)面2點(diǎn)擊“搜索”按鈕,顯示查詢(xún)結(jié)果列表3檢查查詢(xún)結(jié)果列表,每頁(yè)顯示記錄條數(shù)正確、文字折行顯示正確、頁(yè)面布局美觀4檢查查詢(xún)結(jié)果列表,列標(biāo)題項(xiàng)、列顯示內(nèi)容、排序方式符合需求定義5檢查查詢(xún)結(jié)果列表,符合默認(rèn)查詢(xún)條件結(jié)果集6點(diǎn)擊查詢(xún)結(jié)果列表鏈接、復(fù)選框、全選框響應(yīng)正確7退出簡(jiǎn)介:進(jìn)入界面點(diǎn)擊搜索按鈕后,檢查查詢(xún)結(jié)果(包括顯示內(nèi)容、布局、鏈接等等)是否存在問(wèn)題。測(cè)試場(chǎng)景三:步驟編號(hào)具體描述1進(jìn)入搜索(高級(jí)搜索)頁(yè)面2逐一選擇各個(gè)查詢(xún)條件可選項(xiàng),如:“全部”、“類(lèi)別1”等,點(diǎn)擊“搜索”,查詢(xún)結(jié)果正確3組合各個(gè)查詢(xún)條件可選項(xiàng),如:價(jià)格+產(chǎn)品,點(diǎn)擊“搜索”,查詢(xún)結(jié)果正確4退出測(cè)試場(chǎng)景四:步驟編號(hào)具體描述1進(jìn)入搜索(高級(jí)搜索)頁(yè)面2逐一輸入文本域條件,模糊查詢(xún)值,點(diǎn)擊“搜索”,查詢(xún)結(jié)果正確3逐一輸入文本域條件,完全匹配值,點(diǎn)擊“搜索”,查詢(xún)結(jié)果正確4逐一輸入文本域條件,中文值,點(diǎn)擊“搜索”,查詢(xún)結(jié)果正確5逐一輸入文本域條件,字母大、小寫(xiě)值,點(diǎn)擊“搜索”,查詢(xún)結(jié)果正確6逐一輸入文本域條件,數(shù)字類(lèi)型值,點(diǎn)擊“搜索”,查詢(xún)結(jié)果正確7逐一輸入文本域條件,全角、半角值,點(diǎn)擊“搜索”,查詢(xún)結(jié)果正確8組合各個(gè)文本域查詢(xún)條件,點(diǎn)擊“搜索”,查詢(xún)結(jié)果正確9退出簡(jiǎn)介:進(jìn)入界面,各種查詢(xún)數(shù)據(jù)類(lèi)型(模糊值,精確值,字母、數(shù)字、全角半角,組合值等)進(jìn)行搜索。

3.

翻頁(yè)功能測(cè)試用例

翻頁(yè)功能我們常碰到的一般有以下幾個(gè)功能:

1、首頁(yè)、上一頁(yè)、下一頁(yè)、尾頁(yè)。

2、總頁(yè)數(shù),當(dāng)前頁(yè)數(shù)

3、指定跳轉(zhuǎn)頁(yè)

4、指定每頁(yè)顯示條數(shù)

當(dāng)然,有一些是少于多少頁(yè),全部以數(shù)字的形式顯示,多于多少頁(yè)后,才出現(xiàn)下一頁(yè)的控件。本文暫且用以上四點(diǎn)來(lái)做為通用的用例來(lái)設(shè)計(jì)吧。對(duì)于1翻頁(yè)鏈接或按鈕的測(cè)試,主要要檢查的測(cè)試點(diǎn)有:

1、有無(wú)數(shù)據(jù)時(shí)控件的顯示情況

2、在首頁(yè)時(shí),首頁(yè)和上一頁(yè)是否能點(diǎn)擊

3、在尾頁(yè)時(shí),下一頁(yè)和尾頁(yè)是否能點(diǎn)擊

4、在非首頁(yè)和非尾頁(yè)時(shí),四個(gè)按鈕功能是否正確

5、翻頁(yè)后,列表中的記錄是否仍按照指定的排序列進(jìn)行了排序

對(duì)于2總頁(yè)數(shù),當(dāng)前頁(yè)數(shù),主要要檢查的測(cè)試點(diǎn)有:

1、總頁(yè)數(shù)是否等于總的記錄數(shù)/指定每頁(yè)條數(shù)

2、當(dāng)前頁(yè)數(shù)是否正確

對(duì)于3指定跳轉(zhuǎn)頁(yè),主要要檢查的測(cè)試點(diǎn)有:

1、是否能正常跳轉(zhuǎn)到指定的頁(yè)數(shù)

2、輸入的跳轉(zhuǎn)頁(yè)數(shù)非法時(shí)的處理

對(duì)于4指定每頁(yè)顯示條數(shù),主要要檢查的測(cè)試點(diǎn)有:

1、是否有默認(rèn)的指定每頁(yè)顯示條數(shù)

2、指定每頁(yè)的條數(shù)后,列表顯示的記錄數(shù),頁(yè)數(shù)是否正確

3、輸入的每頁(yè)條數(shù)非法時(shí)的處理分析完上面的測(cè)試點(diǎn),應(yīng)該可以進(jìn)行用例的設(shè)計(jì)了。

step1:

列表無(wú)記錄

expect:1、四個(gè)翻頁(yè)控件變灰不可點(diǎn)擊

2、列表有相應(yīng)的無(wú)數(shù)據(jù)信息提示

3、不可指定頁(yè)數(shù)

4、不可指定跳轉(zhuǎn)頁(yè)

5、總頁(yè)數(shù)顯示為0

6、當(dāng)前頁(yè)數(shù)顯示為0

step2:

列表的記錄數(shù)<=指定的每頁(yè)顯示條數(shù)

expect:1、四個(gè)翻頁(yè)控件變灰不可點(diǎn)擊

2、總頁(yè)數(shù)顯示為1

3、當(dāng)前頁(yè)數(shù)顯示為1

step3:

列表的記錄數(shù)>指定的每頁(yè)顯示條數(shù)

expect:1、默認(rèn)在首頁(yè),當(dāng)前頁(yè)數(shù)為1

2、列表的數(shù)據(jù)按照指定的排序列正確排序

3、記錄數(shù)與數(shù)據(jù)庫(kù)相符

4、總頁(yè)數(shù)=記錄數(shù)/指定的每頁(yè)顯示條數(shù)

step4:

列表的記錄數(shù)>指定的每頁(yè)顯示條數(shù),在首頁(yè)

expect:1、首頁(yè)變灰不可點(diǎn)擊

2、上一頁(yè)變灰不可點(diǎn)擊

3、下一頁(yè)可點(diǎn)擊,從(每頁(yè)指定條數(shù)+1)條記錄開(kāi)始顯示,當(dāng)前頁(yè)數(shù)+1

4、尾頁(yè)可點(diǎn)擊,顯示最后頁(yè)的記錄

step5:

列表的記錄數(shù)>指定的每頁(yè)顯示條數(shù),在中間的某頁(yè)

expect:1、首頁(yè)可點(diǎn)擊,顯示1到每頁(yè)指定條數(shù)的記錄

2、上一頁(yè)可點(diǎn)擊,顯示上一頁(yè)的記錄

3、下一頁(yè)可點(diǎn)擊,從后一頁(yè)的記錄

4、尾頁(yè)可點(diǎn)擊,顯示最后頁(yè)的記錄

5、列表的數(shù)據(jù)按照指定的排序列正確排序

6、當(dāng)前頁(yè)數(shù)為所在頁(yè)

step6:列表的記錄數(shù)>指定的每頁(yè)顯示條數(shù),在尾頁(yè)

expect:1、首頁(yè)可點(diǎn)擊,顯示1到每頁(yè)指定條數(shù)的記錄

2、上一頁(yè)可點(diǎn)擊,顯示上一頁(yè)的記錄

3、下一頁(yè)變灰不可點(diǎn)擊

4、尾頁(yè)變灰不可點(diǎn)擊

5、列表的數(shù)據(jù)按照指定的排序列正確排序

6、當(dāng)前頁(yè)數(shù)為最后一頁(yè)的頁(yè)數(shù)

step7:輸入每頁(yè)顯示條數(shù)為正整數(shù)

expect:1、每頁(yè)顯示條數(shù)更新成指定的條數(shù)

2、超過(guò)指定的條數(shù)的記錄分頁(yè)顯示

3、總頁(yè)數(shù)更新成列表的記錄數(shù)/每頁(yè)顯示條數(shù)

step8:輸入每頁(yè)顯示條數(shù)為0

expect:1、提示“每頁(yè)顯示條數(shù)必須為大于1的整數(shù)”

2、提示后每頁(yè)顯示條數(shù)恢復(fù)為上次生效的條數(shù)

step9:輸入每頁(yè)顯示條數(shù)為負(fù)數(shù)

expect:1、提示每頁(yè)顯示條數(shù)必須為大于1的整數(shù)

2、提示后每頁(yè)顯示條數(shù)恢復(fù)為上次生效的條數(shù)

step10:輸入每頁(yè)顯示條數(shù)長(zhǎng)度超過(guò)數(shù)據(jù)庫(kù)指定的長(zhǎng)度<<<maxlen>>>

expect:1、提示每頁(yè)顯示條數(shù)不能超過(guò)<<<maxlen>>>位

2、提示后每頁(yè)顯示條數(shù)恢復(fù)為上次生效的條數(shù)

step11:輸入每頁(yè)顯示條數(shù)為字符串,如中文翻頁(yè)數(shù)

expect:1、提示每頁(yè)顯示條數(shù)必須為大于1的整數(shù)

2、提示后每頁(yè)顯示條數(shù)恢復(fù)為上次生效的條數(shù)

step12:輸入每頁(yè)顯示條數(shù)為特殊字符,如%

expect:1、提示每頁(yè)顯示條數(shù)必須為大于1的整數(shù)

2、提示后每頁(yè)顯示條數(shù)恢復(fù)為上次生效的條數(shù)

step13:輸入每頁(yè)顯示條數(shù)為html字符串,如<br>

expect:1、提示每頁(yè)顯示條數(shù)必須為大于1的整數(shù)

2、提示后每頁(yè)顯示條數(shù)恢復(fù)為上次生效的條數(shù)

step14:輸入跳轉(zhuǎn)的頁(yè)數(shù)為存在的頁(yè)數(shù)

expect:1、正確跳轉(zhuǎn)到指定的頁(yè)數(shù)

step15:輸入跳轉(zhuǎn)的頁(yè)數(shù)不存在或非法值expect:1、跳轉(zhuǎn)的頁(yè)數(shù)值置為1,顯示第一頁(yè)的數(shù)據(jù)以上的用例是將總頁(yè)數(shù),當(dāng)前頁(yè)數(shù)都揉進(jìn)了翻頁(yè)控件的測(cè)試用例中了

4.

輸入框的測(cè)試

最近在測(cè)試Web的輸入框的時(shí)候,老是不知道從何處下手,去網(wǎng)上搜羅了一些資料,當(dāng)然網(wǎng)上對(duì)輸入框的測(cè)試資料少之又少,所以我作了一個(gè)簡(jiǎn)單的總結(jié),總的情況有一下幾個(gè)方面:

1.驗(yàn)證輸入與輸出的是否信息一致;

2.輸入框之前的標(biāo)題是否正確;

3.對(duì)特殊字符的處理,尤其是輸入信息需要發(fā)送到數(shù)據(jù)庫(kù)的。特殊字符包括:'(單引號(hào))、"(雙引號(hào))、[](中括號(hào))、()(小括號(hào))、{}(大括號(hào))、;(分號(hào))、<>(大于小于號(hào))……

4.對(duì)輸入框輸入超過(guò)限制的字符的處理,一般非特殊的沒(méi)有作出限制的在255byte左右;

5.輸入框本身的大小、長(zhǎng)度;

6.不同內(nèi)碼的字符的輸入;

7.對(duì)空格、TAB字符的處理機(jī)制;

8.字符本身顯示的顏色;

9.密碼輸入窗口轉(zhuǎn)換成星號(hào)或其它符號(hào);

10.密碼輸入框?qū)ζ渲械男畔⑦M(jìn)行加密,防止采用破解星號(hào)的方法破解;

11.按下ctrl和alt鍵對(duì)輸入框的影響;

12.對(duì)于新增、修改、注冊(cè)時(shí)用的輸入框,有限制的,應(yīng)該輸入時(shí)作出提示,指出不允許的或者標(biāo)出允許的;

13.對(duì)于有約束條件要求的輸入框應(yīng)當(dāng)在條件滿(mǎn)足時(shí)輸入框的狀態(tài)發(fā)生相應(yīng)的改變,比如選了湖南就應(yīng)該列出湖南下面的市,或者選了某些條件之后,一些輸入框會(huì)關(guān)閉或轉(zhuǎn)為只讀狀態(tài);

14.輸入類(lèi)型;根據(jù)前面的欄位標(biāo)題判斷該輸入框應(yīng)該輸入哪些內(nèi)容算是合理的。例如,是否允許輸入數(shù)字或字母,不允許輸入其他字符等。

15.輸入長(zhǎng)度;數(shù)據(jù)庫(kù)字段有長(zhǎng)度定義,當(dāng)輸入過(guò)長(zhǎng)時(shí),提交數(shù)據(jù)是否會(huì)出錯(cuò)。

16.輸入狀態(tài);當(dāng)處于某種狀態(tài)下,輸入框是否處于可寫(xiě)或非可寫(xiě)狀態(tài)。例如,系統(tǒng)自動(dòng)給予的編號(hào)等欄位作為唯一標(biāo)識(shí),當(dāng)再次處于編輯狀態(tài)下,輸入框欄位應(yīng)處于不可寫(xiě)狀態(tài),如果可寫(xiě)對(duì)其編輯的話,可能會(huì)造成數(shù)據(jù)重復(fù)引起沖突等。

暫時(shí),就能想這么多,看大家誰(shuí)還有觀點(diǎn),互相學(xué)習(xí)下!

17.如果是會(huì)進(jìn)行數(shù)據(jù)庫(kù)操作的輸入框,還可以考慮輸入SQL中的一些特殊符號(hào)如單引號(hào)等,有時(shí)會(huì)有意想不到的錯(cuò)誤出現(xiàn)

18.輸入類(lèi)型

輸入長(zhǎng)度

是否允許復(fù)制粘貼

為空的情況

空格的考慮

半角全角測(cè)試

對(duì)于密碼輸入框要考慮顯示的內(nèi)容是*

輸入錯(cuò)誤時(shí)的提示信息及提示信息是否準(zhǔn)確

19.可以先了解你要測(cè)試的輸入框在軟件系統(tǒng)的某個(gè)功能中所扮演的角色,然后了解其具體的輸入條件,在將輸入條件按照有效等價(jià)類(lèi),無(wú)效等價(jià)類(lèi),邊界值等方法進(jìn)行測(cè)試用例的設(shè)計(jì)。

20.關(guān)鍵字有大小寫(xiě)混合的情況;

21.關(guān)鍵字中含有一個(gè)或多個(gè)空格的情況,包括前空格,中間空格(多個(gè)關(guān)鍵字),和后空格;

22.關(guān)鍵字中是否支持通配符的情況(視功能而定);

23.關(guān)鍵字的長(zhǎng)度分別為9、10、11個(gè)字符時(shí)的情況;

24.關(guān)鍵字是valid,但是沒(méi)有匹配搜索結(jié)果的情況;

25.輸入html的標(biāo)簽會(huì)出現(xiàn)哪些問(wèn)題?輸入<;html>;

會(huì)出現(xiàn)什么問(wèn)題呢?(這條是我自己發(fā)現(xiàn)的,在網(wǎng)上也沒(méi)找到類(lèi)似的東東,呵呵,大家湊合著看吧)

安全測(cè)試方面:

給出一些特別的關(guān)鍵字,比如

or1=1,

這樣的關(guān)鍵字如果不被處理就直接用到數(shù)據(jù)庫(kù)查詢(xún)中去,后果可想而知。

5.

Web測(cè)試的常用的檢查點(diǎn)

1,頁(yè)面連接檢查每一個(gè)連接是否都有對(duì)應(yīng)的頁(yè)面,并且頁(yè)面之間切換正確。

2,相關(guān)性檢查刪除/增加一項(xiàng)是否會(huì)對(duì)其他項(xiàng)產(chǎn)生影響,如果產(chǎn)生影響,這些影響是否都正確。

3,檢查按扭的功能是否正確如update,cancel,delete,save等功能是否正確。

4,字符串長(zhǎng)度檢查輸入超過(guò)需求說(shuō)明的字符串長(zhǎng)度的內(nèi)容,看系統(tǒng)是否檢查字符串長(zhǎng)度,會(huì)不會(huì)出錯(cuò)。

5,字符類(lèi)型檢查在應(yīng)該輸入指定類(lèi)型的內(nèi)容的地方輸入其他類(lèi)型的內(nèi)容(如在應(yīng)該輸入整形的地方輸入其他字符類(lèi)型),看系統(tǒng)是否檢查字符類(lèi)型,是否報(bào)錯(cuò)。

6,標(biāo)點(diǎn)符號(hào)檢查輸入內(nèi)容包括各種標(biāo)點(diǎn)符號(hào),特別是空格,各種引號(hào),回車(chē)健,看系統(tǒng)是否處理正確。

7,中文字符處理在可以輸入中文的系統(tǒng)輸入中文(簡(jiǎn)體或繁體),看是否會(huì)出現(xiàn)亂碼或出錯(cuò)。

8,檢查帶出信息的完整性在查看信息和update信息時(shí),查看所填寫(xiě)的信息是否全部帶出,帶出信息和添加的是否一致。

9,信息重復(fù)檢查在一些需要命名,且名字應(yīng)該唯一的信息輸入重復(fù)的名字或id,看系統(tǒng)有沒(méi)有處理,是否報(bào)錯(cuò),重名包括是否區(qū)分大小寫(xiě),以及在輸入內(nèi)容的前后輸入空格,系統(tǒng)是否作出正確處理。

10,檢查刪除功能在一些可以一次刪除多個(gè)信息的地方,不選擇任何信息,按‘delete’,看系統(tǒng)如何處理,是否報(bào)錯(cuò),然后選擇一個(gè)或多個(gè)信息,進(jìn)行刪除,看是否做正確處理。

11,檢查添加和修改的一致,檢查添加和修改信息的要求是否一致,例如添加要求必添的項(xiàng),修改也應(yīng)該必填,添加規(guī)定的整形的項(xiàng),修改也必須為整形。

12,檢查修改重名,修改時(shí)把不能重名的項(xiàng)改為已存在的內(nèi)容看是否會(huì)處理,同時(shí),也要注意,會(huì)不會(huì)報(bào)和自己重名的錯(cuò)。

13,重復(fù)提交表單一條已經(jīng)成功提交的記錄,back后再提交,看系統(tǒng)會(huì)如何處理。

14,檢查多次使用back健的情況在有back的地方,back,回到原來(lái)的頁(yè)面,再back,重復(fù)幾次,看是否會(huì)報(bào)錯(cuò)。

15,search檢查在有search功能的地方輸入系統(tǒng)存在和不存在的內(nèi)容,看search結(jié)果是否正確,如果可以輸入多個(gè)search條件,可以同時(shí)添加合理和不合理的條件,看系統(tǒng)處理是否正確。

16,輸入信息位置注意在光標(biāo)停留的地方輸入信息時(shí),光標(biāo)和所輸入信息是否會(huì)跳到別的地方。

17,上傳和下載文件檢查上傳和下載文件的功能是否實(shí)現(xiàn),上傳是否能打開(kāi)。對(duì)上傳文件的格式有什么規(guī)定,系統(tǒng)是否有解釋信息,并檢查系統(tǒng)是否能夠做到。

18,必填項(xiàng)檢查應(yīng)該填寫(xiě)的項(xiàng)沒(méi)有填寫(xiě)的時(shí)候系統(tǒng)是否都做了處理,對(duì)必填項(xiàng)是否提示信息,如在必填項(xiàng)前面加*.19,快捷鍵檢查是否支持常用快捷,如Ctrl+C,Ctrl+V,BackSpace等,對(duì)一些不允許的輸入信息的字段,如選人,選日期對(duì)快捷方式是否做了限制。

20,回車(chē)檢查在輸入結(jié)束后直接按回車(chē)鍵,看系統(tǒng)如何處理,是否會(huì)報(bào)錯(cuò)。

性能測(cè)試2.1.連接速度測(cè)試用戶(hù)連接到Web

應(yīng)用系統(tǒng)的速度根據(jù)上網(wǎng)方式的變化而變化,他們或許是電話撥號(hào),或是寬帶上網(wǎng)。當(dāng)下載一個(gè)程序時(shí),用戶(hù)可以等較長(zhǎng)的時(shí)間,但如果僅僅訪問(wèn)一個(gè)頁(yè)面就不會(huì)這樣。如果Web

系統(tǒng)響應(yīng)時(shí)間太長(zhǎng)(例如超過(guò)5

秒鐘),用戶(hù)就會(huì)因沒(méi)有耐心等待而離開(kāi)。

另外,有些頁(yè)面有超時(shí)的限制,如果響應(yīng)速度太慢,用戶(hù)可能還沒(méi)來(lái)得及瀏覽內(nèi)容,就需要重新登陸了。而且,連接速度太慢,還可能引起數(shù)據(jù)丟失,使用戶(hù)得不到真實(shí)的頁(yè)面。

2.2.負(fù)載測(cè)試負(fù)載測(cè)試是為了測(cè)量Web

系統(tǒng)在某一負(fù)載級(jí)別上的性能,以保證Web

系統(tǒng)在需求范圍內(nèi)能正常工作。負(fù)載級(jí)別可以是某個(gè)時(shí)刻同時(shí)訪問(wèn)Web

系統(tǒng)的用戶(hù)數(shù)量,也可以是在線數(shù)據(jù)處理的數(shù)量。例如:Web

應(yīng)用系統(tǒng)能允許多少個(gè)用戶(hù)同時(shí)在線?如果超過(guò)了這個(gè)數(shù)量,會(huì)出現(xiàn)什么現(xiàn)象?Web

應(yīng)用系統(tǒng)能否處理大量用戶(hù)對(duì)同一個(gè)頁(yè)面的請(qǐng)求?

6.

用戶(hù)及權(quán)限管理功能常規(guī)測(cè)試方法

1)

賦予一個(gè)人員相應(yīng)的權(quán)限后,在界面上看此人員是否具有此權(quán)限,并以此人員身份登陸,驗(yàn)證權(quán)限設(shè)置是否正確(能否超出所給予的權(quán)限);2)

刪除或修改已經(jīng)登陸系統(tǒng)并正在進(jìn)行操作的人員的權(quán)限,程序能否正確處理;3)

重新注冊(cè)系統(tǒng)變更登陸身份后再登錄,看程序是否能正確執(zhí)行,具有權(quán)限是否正確;4)

在有工作組或角色管理的情況下,刪除包含用戶(hù)的工作組或角色,程序能否正確處理;5)

不同權(quán)限用戶(hù)登錄同一個(gè)系統(tǒng),權(quán)限范圍是否正確;6)

覆蓋系統(tǒng)所有權(quán)限設(shè)定;7)

能否添加信息為空的用戶(hù)(其中包括空用戶(hù)名及空口令、空用戶(hù)名非空口令、非空用戶(hù)名及空口令)

;8)

能否添加長(zhǎng)用戶(hù)名及長(zhǎng)口令,如果允許,新用戶(hù)能否正確登錄;9)

系統(tǒng)是否允許刪除系統(tǒng)管理員這一特殊用戶(hù)或修改系統(tǒng)管理員口令,刪除或修改后系統(tǒng)的實(shí)際情況;10)

登錄用戶(hù)能否修改自己的權(quán)限;11)

添加用戶(hù)(有標(biāo)識(shí)或編號(hào)):標(biāo)識(shí)相同,用戶(hù)名不同;標(biāo)識(shí)相同,用戶(hù)名相同;標(biāo)識(shí)不同,用戶(hù)名相同;標(biāo)識(shí)不同,用戶(hù)名不同;12)

登錄用戶(hù)能否修改本人(或其他人)的信息,刪除本人(或其他人);13)

修改用戶(hù)的信息(包括權(quán)限,口令,基本信息等),對(duì)其他模塊的影響;14)

修改用戶(hù)信息:修改后的用戶(hù)信息和已經(jīng)存在的用戶(hù)信息相同;修改后的用戶(hù)信息和已經(jīng)存在的用戶(hù)信息不同;15)

不給用戶(hù)授權(quán),是否允許登錄;15)

改某些設(shè)置時(shí),是否會(huì)影響具有上級(jí)權(quán)限及相同權(quán)限人員的設(shè)置;16)

系統(tǒng)管理員修改了某些數(shù)據(jù),以其他人員身份登錄時(shí)數(shù)據(jù)是否改變;17)

用戶(hù)能否同時(shí)屬于多個(gè)組,各個(gè)組的權(quán)限能否交叉;刪除后重新添加的用戶(hù)是否具有以前的權(quán)限;更改用戶(hù)各項(xiàng)屬性(包括權(quán)限)看對(duì)權(quán)限是否有影響。

7.

Web測(cè)試之兼容性測(cè)試

WEB測(cè)試之兼容性測(cè)試發(fā)表于:2009-8-3017:20

作者:

戰(zhàn)王

來(lái)源:

中博IT教育網(wǎng)

1.

軟件兼容性測(cè)試

兼容性測(cè)試是指待測(cè)試項(xiàng)目在特定的硬件平臺(tái)上,不同的應(yīng)用軟件之間,不同的操作系統(tǒng)平臺(tái)上,在不同的網(wǎng)絡(luò)等環(huán)境中能正常的運(yùn)行的測(cè)試。

兼容性測(cè)試的目的:待測(cè)試項(xiàng)目在不同的操作系統(tǒng)平臺(tái)上正常運(yùn)行,包括待測(cè)試項(xiàng)目能在同一操作系統(tǒng)平臺(tái)的不同版本上正常運(yùn)行;待測(cè)試項(xiàng)目能與相關(guān)的其他軟件或系統(tǒng)的“和平共處”;待測(cè)試項(xiàng)目能在指定的硬件環(huán)境中正常運(yùn)行;待測(cè)試項(xiàng)目能在不同的網(wǎng)絡(luò)環(huán)境中正常運(yùn)行。

兼容性測(cè)試無(wú)法做到完全的質(zhì)量保證,但對(duì)于一個(gè)項(xiàng)目來(lái)講,兼容性測(cè)試是必不可少的一個(gè)步驟。

2.Web兼容性測(cè)試的主要類(lèi)型

Web兼容性測(cè)試主要是針對(duì)不同的操作系統(tǒng)平臺(tái),瀏覽器,以及分辨率進(jìn)行的測(cè)試。

2.1.

操作系統(tǒng)兼容性測(cè)試

常見(jiàn)的操作系統(tǒng)有Windows,Unix,Linux等,對(duì)于普通用戶(hù)來(lái)講,最常用的是Windows操作系統(tǒng)。Windows操作系統(tǒng)包括WindowsXP,windows2003,vista,Win2000/NT,Windows9x等等。用戶(hù)使用操作系統(tǒng)的類(lèi)型,直接決定了我們操作系統(tǒng)平臺(tái)兼容性測(cè)試的操作系統(tǒng)平臺(tái)數(shù)量,進(jìn)行操作系統(tǒng)平臺(tái)的兼容性測(cè)試的主要目的就是保證我們的待測(cè)試項(xiàng)目在該操作系統(tǒng)平臺(tái)下能正常運(yùn)行。

對(duì)于一些特殊項(xiàng)目(比如定制項(xiàng)目),可以指定某一類(lèi)型的操作系統(tǒng)版本,這些都應(yīng)該在需求規(guī)格說(shuō)明書(shū)中指明,針對(duì)這些指明的操作系統(tǒng)版本必須進(jìn)行兼容性測(cè)試。

大部分的其他項(xiàng)目,是不指定操作系統(tǒng)版本的,針對(duì)這樣的項(xiàng)目,我們應(yīng)當(dāng)針對(duì)當(dāng)前的主流操作系統(tǒng)版本進(jìn)行兼容性測(cè)試,在確保主流操作系統(tǒng)版本兼容性測(cè)試的前提下在對(duì)非主流操作系統(tǒng)版本進(jìn)行測(cè)試,盡量保證項(xiàng)目的操作系統(tǒng)版本的兼容性測(cè)試的完整性。

2.2.

瀏覽器兼容性測(cè)試

瀏覽器是Web系統(tǒng)中對(duì)核心的組成構(gòu)件,來(lái)自不同廠家的瀏覽器對(duì)Javascrīpt、

ActiveX或不同的HTML規(guī)格有不同的支持,即使是同一廠家的瀏覽器,也存在不同的版本的問(wèn)題。不同的瀏覽器對(duì)安全性和JAVA的設(shè)置也不一樣。

目前最為常用的瀏覽器為:IE6.0IE7.0.但由于操作習(xí)慣的問(wèn)題,還有相當(dāng)一部分用戶(hù)喜歡使用騰訊的TT,以及firefox瀏覽器,這些瀏覽器同樣也存在各個(gè)版本的問(wèn)題。這個(gè)對(duì)于Web系統(tǒng)來(lái)講是一個(gè)相當(dāng)大的挑戰(zhàn)。

對(duì)于一些特殊項(xiàng)目(比如定制項(xiàng)目),可以指定某一類(lèi)型的瀏覽器(包括版本),這些都必須在需求規(guī)格說(shuō)明書(shū)中指明。針對(duì)這些指明的瀏覽器必須進(jìn)行兼容性測(cè)試。但大部分的項(xiàng)目,是不能指定瀏覽器的,針對(duì)這樣的項(xiàng)目,那么我們必須針對(duì)當(dāng)前的主流瀏覽器(含版本),在確保主流瀏覽器的兼容性測(cè)試通過(guò)的前提下,再對(duì)非主流瀏覽器(含版本)進(jìn)行測(cè)試,盡量保證項(xiàng)目的瀏覽器的兼容性測(cè)試的完整性。

2.3.

分辨率兼容性測(cè)試

分辨率的測(cè)試是為了頁(yè)面版式在不同的分辨率模式下能正常顯示,字體符合要求而進(jìn)行的測(cè)試。

用戶(hù)使用什么模式的分辨率,對(duì)于我們來(lái)講是未知的。通常情況下,在我們的需求規(guī)格說(shuō)明書(shū)中會(huì)建議某些分辨率。對(duì)于測(cè)試來(lái)講,必須針對(duì)需求規(guī)格說(shuō)明書(shū)中建議的分辨率進(jìn)行專(zhuān)門(mén)的測(cè)試?,F(xiàn)在常見(jiàn)的分辨率是1024×768,800×600。對(duì)于需求規(guī)格說(shuō)明書(shū)中規(guī)定的分辨率,測(cè)試必須保證測(cè)試通過(guò),但對(duì)于其他分辨率,原則上也應(yīng)該盡量保證,但由于這個(gè)在需求規(guī)格說(shuō)明書(shū)中沒(méi)有加以約束,所以在一定程度上,開(kāi)發(fā)往往會(huì)拒絕進(jìn)行調(diào)整。對(duì)于需求規(guī)格說(shuō)明書(shū)中沒(méi)有規(guī)定分辨率的項(xiàng)目,測(cè)試應(yīng)該在完成主流分辨率的兼容性測(cè)試的前提下,盡可能進(jìn)行一些非主流分辨率的兼容性測(cè)試,在一定程度上保證大部分。

8.

Web測(cè)試-sql注入

Web安全性測(cè)試—SQL注入因?yàn)橐獙?duì)網(wǎng)站安全性進(jìn)行測(cè)試,所以,學(xué)習(xí)了一些sql注入的知識(shí)。

在網(wǎng)上看一些sql注入的東東,于是想到了對(duì)網(wǎng)站的輸入框進(jìn)行一些測(cè)試,本來(lái)是想在輸入框中輸入<script>alter("abc")<script>,但是輸入框有字符限制,只好輸入<script>,結(jié)果網(wǎng)站出大問(wèn)題了,呵呵,終于又出現(xiàn)了個(gè)bug。

另一個(gè)就是在URL最后隨意輸入一些字符或數(shù)字,結(jié)果,新聞模塊那出現(xiàn)了問(wèn)題,暴露了網(wǎng)站的一些信息,又一個(gè)bug,高興下……

下面把今天看到的有關(guān)SQL注入方面的知識(shí)整理如下:

SQL注入是一種攻擊方式,在這種攻擊方式中,惡意代碼被插入到字符串中,然后將該字符串傳遞到SQLServer的實(shí)例以進(jìn)行分析和執(zhí)行。任何構(gòu)成SQL語(yǔ)句的過(guò)程都應(yīng)進(jìn)行注入漏洞檢查,因?yàn)镾QLServer將執(zhí)行其接收到的所有語(yǔ)法有效的查詢(xún)。一個(gè)有經(jīng)驗(yàn)的、堅(jiān)定的攻擊者甚至可以操作參數(shù)化數(shù)據(jù)。

SQL注入的主要形式包括直接將代碼插入到與SQL命令串聯(lián)在一起并使其得以執(zhí)行的用戶(hù)輸入變量。一種間接的攻擊會(huì)將惡意代碼注入要在表中存儲(chǔ)或作為元數(shù)據(jù)存儲(chǔ)的字符串。在存儲(chǔ)的字符串隨后串連到一個(gè)動(dòng)態(tài)SQL命令中時(shí),將執(zhí)行該惡意代碼。

注入過(guò)程的工作方式是提前終止文本字符串,然后追加一個(gè)新的命令。由于插入的命令可能在執(zhí)行前追加其他字符串,因此攻擊者將用注釋標(biāo)記“--”來(lái)終止注入的字符串。執(zhí)行時(shí),此后的文本將被忽略。

以下腳本顯示了一個(gè)簡(jiǎn)單的SQL注入。此腳本通過(guò)串聯(lián)硬編碼字符串和用戶(hù)輸入的字符串而生成一個(gè)SQL查詢(xún):

varShipcity;

ShipCity=Request.form.("ShipCity");

varsql="select*fromOrdersTablewhereShipCity='"+ShipCity+"'";

用戶(hù)將被提示輸入一個(gè)市縣名稱(chēng)。如果用戶(hù)輸入Redmond,則查詢(xún)將由與下面內(nèi)容相似的腳本組成:

SELECT*FROMOrdersTableWHEREShipCity='Redmond'

但是,假定用戶(hù)輸入以下內(nèi)容:

Redmond';droptableOrdersTable--

此時(shí),腳本將組成以下查詢(xún):

SELECT*FROMOrdersTableWHEREShipCity='Redmond';droptableOrdersTable--'

分號(hào)(;)表示一個(gè)查詢(xún)的結(jié)束和另一個(gè)查詢(xún)的開(kāi)始。雙連字符(--)指示當(dāng)前行余下的部分是一個(gè)注釋?zhuān)瑧?yīng)該忽略。如果修改后的代碼語(yǔ)法正確,則服務(wù)器將執(zhí)行該代碼。SQLServer處理該語(yǔ)句時(shí),SQLServer將首先選擇OrdersTable中的所有記錄(其中ShipCity為Redmond)。然后,SQLServer將刪除OrdersTable。

只要注入的SQL代碼語(yǔ)法正確,便無(wú)法采用編程方式來(lái)檢測(cè)篡改。因此,必須驗(yàn)證所有用戶(hù)輸入,并仔細(xì)檢查在您所用的服務(wù)器中執(zhí)行構(gòu)造SQL命令的代碼。本主題中的以下各部分說(shuō)明了編寫(xiě)代碼的最佳做法。

驗(yàn)證所有輸入:

始終通過(guò)測(cè)試類(lèi)型、長(zhǎng)度、格式和范圍來(lái)驗(yàn)證用戶(hù)輸入。實(shí)現(xiàn)對(duì)惡意輸入的預(yù)防時(shí),請(qǐng)注意應(yīng)用程序的體系結(jié)構(gòu)和部署方案。請(qǐng)注意,設(shè)計(jì)為在安全環(huán)境中運(yùn)行的程序可能會(huì)被復(fù)制到不安全的環(huán)境中。以下建議應(yīng)被視為最佳做法:

如果一個(gè)用戶(hù)在需要郵政編碼的位置無(wú)意中或惡意地輸入了一個(gè)10MB的MPEG文件,應(yīng)用程序會(huì)做出什么反應(yīng)?

如果在文本字段中嵌入了一個(gè)DROPTABLE語(yǔ)句,應(yīng)用程序會(huì)做出什么反應(yīng)?

測(cè)試輸入的大小和數(shù)據(jù)類(lèi)型,強(qiáng)制執(zhí)行適當(dāng)?shù)南拗?。這有助于防止有意造成的緩沖區(qū)溢出。

輸入字符

在Transact-SQL中的含義

;

查詢(xún)分隔符。

'

字符數(shù)據(jù)字符串分隔符。

--

注釋分隔符。

/*...*/

注釋分隔符。服務(wù)器不對(duì)/*和*/之間的注釋進(jìn)行處理。

xp_

用于目錄擴(kuò)展存儲(chǔ)過(guò)程的名稱(chēng)的開(kāi)頭,如xp_cmdshell。

9.

Web測(cè)試中書(shū)寫(xiě)用例時(shí)要考慮的檢查點(diǎn)

通常書(shū)寫(xiě)TestCase時(shí)需要考慮的檢查點(diǎn).對(duì)于屏幕顯示來(lái)說(shuō)包括:檢查顯示的布局;檢查域和按鈕的順序;檢查域的尺寸;檢查字體的大小和風(fēng)格;檢查文本的含義;檢查拼寫(xiě)錯(cuò)誤;檢查屏蔽域;檢查只讀域;檢查圖片;檢查按鈕的狀態(tài);檢查按鈕的尺寸;檢查按鈕的圖標(biāo)和名字;檢查是否有重復(fù)的圖標(biāo);檢查指針是否在第一個(gè)可輸入域;檢查T(mén)AB鍵的次序;對(duì)于域來(lái)說(shuō)包括:檢查可編輯性;檢查域間的移動(dòng);檢查分界條件;檢查有效分界符;檢查無(wú)效分界符;檢查連續(xù)多個(gè)有效分界符;檢查僅一個(gè)分界符輸入;檢查多余空格的截取;檢查只讀域和屏蔽域在TAB時(shí)的狀態(tài);對(duì)于數(shù)字域來(lái)說(shuō)包括:檢查正數(shù)值;檢查負(fù)數(shù)值;檢查零值;檢查小數(shù)點(diǎn);檢查特殊字符加數(shù)字;檢查字母加數(shù)字;檢查ASCII值;檢查重復(fù)值;檢查空值;對(duì)于字符域來(lái)說(shuō)包括:檢查僅有字母;檢查僅有數(shù)字;檢查字母數(shù)字;檢查允許的特殊字符;檢查禁止的特殊字符;檢查包含特殊字符的字母數(shù)字;檢查ASCII值;對(duì)于字母域來(lái)說(shuō)包括:檢查字母;檢查數(shù)字值;檢查字母數(shù)字值;檢查特殊字符;檢查ASCII值;對(duì)于時(shí)間域來(lái)說(shuō)包括:檢查字符?和/;檢查其他特殊字符;檢查字母數(shù)字值;檢查正確的格式;檢查錯(cuò)誤的格式;檢查錯(cuò)誤的日期數(shù)字;檢查正確的日期數(shù)字;檢查日歷表;

10.

手機(jī)電子郵件測(cè)試用例

序號(hào)測(cè)試項(xiàng)目測(cè)試方法測(cè)試標(biāo)準(zhǔn)1電子郵件設(shè)置IP地址設(shè)置

默認(rèn)的為010.000.000.172,自己設(shè)置必須設(shè)置為010.000.000.172如果需要手動(dòng)設(shè)置必須設(shè)置成010.000.000.172撥號(hào)設(shè)置(GSM)\默認(rèn)為17266,手動(dòng)設(shè)置必須設(shè)置成17266手動(dòng)設(shè)置必須設(shè)置成17266節(jié)點(diǎn)設(shè)置(GPRS)必須設(shè)置為cmwap必須設(shè)置為cmwap用戶(hù)名設(shè)置如果設(shè)置,必須設(shè)置為WAP如果設(shè)置必須設(shè)置為WAP用戶(hù)密碼設(shè)置如果用戶(hù)名做了設(shè)置,此項(xiàng)必須設(shè)置為wap如果用戶(hù)名做了設(shè)置,此項(xiàng)必須設(shè)置為wap上網(wǎng)數(shù)據(jù)模式設(shè)置(GPRS/GSM)選擇GPRS或GSM方式如果有這兩項(xiàng)可選擇,必須能夠使用。端口類(lèi)型選擇可以選擇安全和不安全。一般選擇不安全2用戶(hù)設(shè)置帳戶(hù)設(shè)置將用戶(hù)的郵箱地址、接收郵件服務(wù)器(POP3)、發(fā)送郵件服務(wù)器(SMTP)、郵箱帳戶(hù)名以及密碼設(shè)置完成能夠成功設(shè)置下載設(shè)置設(shè)置好各個(gè)限制項(xiàng)目:如單個(gè)信件下載最大字節(jié)、全部信件下載最大字節(jié)等等能夠成功設(shè)置3編寫(xiě)新郵件選擇輸入法編寫(xiě)文本,并選擇插入的附件(格式為txt/gif/jpg/bmp等)所有的輸入法都能實(shí)現(xiàn),插入附件功能必須實(shí)現(xiàn)4發(fā)送郵件編輯好郵件后,輸入對(duì)方的電子郵件,按確認(rèn)鍵進(jìn)行發(fā)送郵件能夠成功發(fā)送并要有保存提示或自動(dòng)進(jìn)入已發(fā)信箱(如果此功能已經(jīng)設(shè)定)5刪除郵件在郵件列表中,選擇某條郵件,按選項(xiàng)菜單,選擇刪除項(xiàng),再按確認(rèn)鍵。能夠刪除所選郵件6回復(fù)郵件在郵件列表中選擇某條郵件,在選項(xiàng)中選擇回復(fù),然后進(jìn)行編輯,確認(rèn)后發(fā)送。能夠?qū)崿F(xiàn)郵件的回復(fù)操作。7轉(zhuǎn)發(fā)郵件在收件箱中選擇某條郵件,在選項(xiàng)中選擇轉(zhuǎn)發(fā),然后進(jìn)行編輯,并輸入第三方的郵箱地址或者從地址簿中選擇號(hào)碼,按確認(rèn)鍵進(jìn)行發(fā)送。能夠?qū)崿F(xiàn)郵件的轉(zhuǎn)發(fā)。

11.

記事本與日歷的測(cè)試用例

序號(hào)測(cè)試項(xiàng)目測(cè)試方法判定標(biāo)準(zhǔn)

1

記事本測(cè)試新建在記事本中新建一個(gè)文本文檔。必須能夠正常新建一個(gè)文檔。

編輯對(duì)新建文檔或者已有的文檔進(jìn)行編輯。必須能夠編輯文檔,編輯時(shí)必須能夠正確輸入漢字、英文、數(shù)字、字母、標(biāo)點(diǎn)符號(hào)等。

保存保存已經(jīng)編輯的文檔。編輯完成后必須能夠保存已編輯的內(nèi)容。

刪除刪除已經(jīng)保存的文檔。必須能夠刪除已經(jīng)保存的文檔,刪除前必須有確認(rèn)信息,刪除成功與否必須有相應(yīng)的提示。

2

日程表測(cè)試新建在記事本中新建一個(gè)日程安排。必須能夠正常新建一個(gè)日程。

編輯對(duì)新建文檔或者已有的日程進(jìn)行編輯。必須能夠編輯文檔,編輯時(shí)必須能夠正確輸入漢字、英文、數(shù)字、字母、標(biāo)點(diǎn)符號(hào)等。

保存保存已經(jīng)編輯的日程。編輯完成后必須能夠保存已編輯的內(nèi)容。

刪除刪除已經(jīng)保存的日程。必須能夠刪除已經(jīng)保存的文檔,刪除前必須有確認(rèn)信息,刪除成功與否必須有相應(yīng)的提示。

日程提示設(shè)定設(shè)定提示時(shí)間、提示模式。必須能夠設(shè)定日程提示的時(shí)間和提醒模式,設(shè)定完成后必須能夠準(zhǔn)時(shí)提醒。

時(shí)間、日期設(shè)定設(shè)定當(dāng)前時(shí)間、日期。必須能夠設(shè)定當(dāng)前的時(shí)間和日期,必須保證日程表里的萬(wàn)年歷時(shí)間準(zhǔn)確無(wú)誤,至少保證日程表中每年的每個(gè)月(陽(yáng)歷與農(nóng)歷)的第一天與最后一天的正確性,另外對(duì)應(yīng)的星期也必須準(zhǔn)確。特別需要關(guān)注閏年。

12.

Web測(cè)試總結(jié)13.

讓web站點(diǎn)崩潰最常見(jiàn)的七大原因

磁盤(pán)已滿(mǎn)導(dǎo)致系統(tǒng)無(wú)法正常運(yùn)行的最可能的原因是磁盤(pán)已滿(mǎn)。一個(gè)好的網(wǎng)絡(luò)管理員會(huì)密切關(guān)注磁盤(pán)的使用情況,隔一定的時(shí)間,就需要將磁盤(pán)上的一些負(fù)載轉(zhuǎn)存到備份存儲(chǔ)介質(zhì)中(例如磁帶)。日志文件會(huì)很快用光所有的磁盤(pán)空間。Web服務(wù)器的日志文件、SQL*Net的日志文件、JDBC日志文件,以及應(yīng)用程序服務(wù)器日志文件均與內(nèi)存泄漏有同等的危害。可以采取措施將日志文件保存在與操作系統(tǒng)不同的文件系統(tǒng)中。日志文件系統(tǒng)空間已滿(mǎn)時(shí)Web服務(wù)器也會(huì)被掛起,但機(jī)器自身被掛起的幾率已大大減低。C指針錯(cuò)誤用C或C++編寫(xiě)的程序,如Web服務(wù)器API模塊,有可能導(dǎo)致系統(tǒng)的崩潰,因?yàn)橹灰g接引用指針(即,訪問(wèn)指向的內(nèi)存)中出現(xiàn)一個(gè)錯(cuò)誤,就會(huì)導(dǎo)致操作系統(tǒng)終止所有程序。另外,使用了糟糕的C指針的Java模擬量(analog)將訪問(wèn)一個(gè)空的對(duì)象引用。Java中的空引用通常不會(huì)導(dǎo)致立刻退出JVM,但是前提是程序員能夠使用異常處理方法恰當(dāng)?shù)靥幚礤e(cuò)誤。在這方面,Java無(wú)需過(guò)多的關(guān)注,但使用

Java對(duì)可靠性進(jìn)行額外的度量則會(huì)對(duì)性能產(chǎn)生一些負(fù)面影響。內(nèi)存泄漏C/C++程序還可能產(chǎn)生另一個(gè)指針問(wèn)題:丟失對(duì)已分配內(nèi)存的引用。當(dāng)內(nèi)存是在子程序中被分配時(shí),通常會(huì)出現(xiàn)這種問(wèn)題,其結(jié)果是程序從子程序中返回時(shí)不會(huì)釋放內(nèi)存。如此一來(lái),對(duì)已分配的內(nèi)存的引用就會(huì)丟失,只要操作系統(tǒng)還在運(yùn)行中,則進(jìn)程就會(huì)一直使用該內(nèi)存。這樣的結(jié)果是,曾占用更多的內(nèi)存的程序會(huì)降低系統(tǒng)性能,直到機(jī)器完全停止工作,才會(huì)完全清空內(nèi)存。解決方案之一是使用代碼分析工具(如Purify)對(duì)代碼進(jìn)行仔細(xì)分析,以找出可能出現(xiàn)的泄漏問(wèn)題。但這種方法無(wú)法找到由其他原因引起的庫(kù)中的泄漏,因?yàn)閹?kù)的源代碼是不可用的。另一種方法是每隔一段時(shí)間,就清除并重啟進(jìn)程。Apache的Web服務(wù)器就會(huì)因這個(gè)原因創(chuàng)建和清除子進(jìn)程。雖然Java本身并無(wú)指針,但總的說(shuō)來(lái),與C程序相比,

Java程序使用內(nèi)存的情況更加糟糕。在Java中,對(duì)象被頻繁創(chuàng)建,而直到所有到對(duì)象的引用都消失時(shí),垃圾回收程序才會(huì)釋放內(nèi)存。即使運(yùn)行了垃圾回收程序,也只會(huì)將內(nèi)存還給虛擬機(jī)VM,而不是還給操作系統(tǒng)。結(jié)果是:Java程序會(huì)用光給它們的所有堆,從不釋放。由于要保存實(shí)時(shí)(JustInTime,JIT)編譯器產(chǎn)生的代碼,Java程序的大小有時(shí)可能會(huì)膨脹為最大堆的數(shù)倍之巨。還有一個(gè)問(wèn)題,情況與此類(lèi)似。從連接池分配一個(gè)數(shù)據(jù)庫(kù)連接,而無(wú)法將已分配的連接還回給連接池。一些連接池有活動(dòng)計(jì)時(shí)器,在維持一段時(shí)間的靜止?fàn)顟B(tài)之后,計(jì)時(shí)器會(huì)釋放掉數(shù)據(jù)庫(kù)連接,但這不足以緩解糟糕的代碼快速泄漏數(shù)據(jù)庫(kù)連接所造成的資源浪費(fèi)。進(jìn)程缺乏文件描述符如果已為一臺(tái)Web服務(wù)器或其他關(guān)鍵進(jìn)程分配了文件描述符,但它卻需要更多的文件描述符,則服務(wù)器或進(jìn)程會(huì)被掛起或報(bào)錯(cuò),直至得到了所需的文件描述符為止。文件描述符用來(lái)保持對(duì)開(kāi)放文件和開(kāi)放套接字的跟蹤記錄,開(kāi)放文件和開(kāi)放套接字是Web服務(wù)器很關(guān)鍵的組成部分,其任務(wù)是將文件復(fù)制到網(wǎng)絡(luò)連接。默認(rèn)時(shí),大多數(shù)shell有64個(gè)文件描述符,這意味著每個(gè)從shell啟動(dòng)的進(jìn)程可以同時(shí)打開(kāi)64個(gè)文件和網(wǎng)絡(luò)連接。大多數(shù)shell都有一個(gè)內(nèi)嵌的

ulimit命令可以增加文件描述符的數(shù)目。線程死鎖由多線程帶來(lái)的性能改善是以可靠性為代價(jià)的,主要是因?yàn)檫@樣有可能產(chǎn)生線程死鎖。線程死鎖時(shí),第一個(gè)線程等待第二個(gè)線程釋放資源,而同時(shí)第二個(gè)線程又在等待第一個(gè)線程釋放資源。我們來(lái)想像這樣一種情形:在人行道上兩個(gè)人迎面相遇,為了給對(duì)方讓道,兩人同時(shí)向一側(cè)邁出一步,雙方無(wú)法通過(guò),又同時(shí)向另一側(cè)邁出一步,這樣還是無(wú)法通過(guò)。雙方都以同樣的邁步方式堵住了對(duì)方的去路。假設(shè)這種情況一直持續(xù)下去,這樣就不難理解為何會(huì)發(fā)生死鎖現(xiàn)象了。解決死鎖沒(méi)有簡(jiǎn)單的方法,這是因?yàn)槭咕€程產(chǎn)生這種問(wèn)題是很具體的情況,而且往往有很高的負(fù)載。大多數(shù)軟件測(cè)試產(chǎn)生不了足夠多的負(fù)載,所以不可能暴露所有的線程錯(cuò)誤。在每一種使用線程的語(yǔ)言中都存在線程死鎖問(wèn)題。由于使用Java進(jìn)行線程編程比使用C容易,所以

Java程序員中使用線程的人數(shù)更多,線程死鎖也就越來(lái)越普遍了??梢栽贘ava代碼中增加同步關(guān)鍵字的使用,這樣可以減少死鎖,但這樣做也會(huì)影響性能。如果負(fù)載過(guò)重,數(shù)據(jù)庫(kù)內(nèi)部也有可能發(fā)生死鎖。如果程序使用了永久鎖,比如鎖文件,而且程序結(jié)束時(shí)沒(méi)有解除鎖狀態(tài),則其他進(jìn)程可能無(wú)法使用這種類(lèi)型的鎖,既不能上鎖,也不能解除鎖。這會(huì)進(jìn)一步導(dǎo)致系統(tǒng)不能正常工作。這時(shí)必須手動(dòng)地解鎖。服務(wù)器超載NetscapeWeb服務(wù)器的每個(gè)連接都使用一個(gè)線程。NetscapeEnterpriseWeb服務(wù)器會(huì)在線程用完后掛起,而不為已存在的連接提供任何服務(wù)。如果有一種負(fù)載分布機(jī)制可以檢測(cè)到服務(wù)器沒(méi)有響應(yīng),則該服務(wù)器上的負(fù)載就可以分布到其它的

Web服務(wù)器上,這可能會(huì)致使這些服務(wù)器一個(gè)接一個(gè)地用光所有的線程。這樣一來(lái),整個(gè)服務(wù)器組都會(huì)被掛起。操作系統(tǒng)級(jí)別可能還在不斷地接收新的連接,而應(yīng)用程序(Web服務(wù)器)卻無(wú)法為這些連接提供服務(wù)。用戶(hù)可以在瀏覽器狀態(tài)行上看到connected(已連接)的提示消息,但這以后什么也不會(huì)發(fā)生。解決問(wèn)題的一種方法是將obj.conf參數(shù)RqThrottle的值設(shè)置為線程數(shù)目之下的某個(gè)數(shù)值,這樣如果越過(guò)

RqThrottle的值,就不會(huì)接收新的連接。那些不能連接的服務(wù)器將會(huì)停止工作,而連接上的服務(wù)器的響應(yīng)速度則會(huì)變慢,但至少已連接的服務(wù)器不會(huì)被掛起。這時(shí),文件描述符至少應(yīng)當(dāng)被設(shè)置為與線程的數(shù)目相同的數(shù)值,否則,文件描述符將成為一個(gè)瓶頸。數(shù)據(jù)庫(kù)中的臨時(shí)表不夠用許多數(shù)據(jù)庫(kù)的臨時(shí)表(cursor)數(shù)目都是固定的,臨時(shí)表即保留查詢(xún)結(jié)果的內(nèi)存區(qū)域。在臨時(shí)表中的數(shù)據(jù)都被讀取后,臨時(shí)表便會(huì)被釋放,但大量同時(shí)進(jìn)行的查詢(xún)可能耗盡數(shù)目固定的所有臨時(shí)表。這時(shí),其他的查詢(xún)就需要列隊(duì)等候,直到有臨時(shí)表被釋放時(shí)才能再繼續(xù)運(yùn)行。這是一個(gè)不容易被程序員發(fā)覺(jué)的問(wèn)題,但會(huì)在負(fù)載測(cè)試時(shí)顯露出來(lái)。但可能對(duì)于數(shù)據(jù)庫(kù)管理員(DataBaseAdministrator,DBA)來(lái)說(shuō),這個(gè)問(wèn)題十分明顯。此外,還存在一些其他問(wèn)題:設(shè)置的表空間不夠用、序號(hào)限制太低,這些都會(huì)導(dǎo)致表溢出錯(cuò)誤。這些問(wèn)題表明了一個(gè)好的DBA對(duì)用于生產(chǎn)的數(shù)據(jù)庫(kù)設(shè)置和性能進(jìn)行定期檢查的重要性。而且,大多數(shù)數(shù)據(jù)庫(kù)廠商也提供了監(jiān)控和建模工具以幫助解決這些問(wèn)題。另外,還有許多因素也極有可能導(dǎo)致Web站點(diǎn)無(wú)法工作。如:相關(guān)性、子網(wǎng)流量超載、糟糕的設(shè)備驅(qū)動(dòng)程序、硬件故障、包括錯(cuò)誤文件的通配符、無(wú)意間鎖住了關(guān)鍵的表。

14.

Web應(yīng)用程序是否存在跨站點(diǎn)腳本漏洞

到目前為止,對(duì)于跨站點(diǎn)腳本攻擊具有很大的威脅這一點(diǎn)大家并無(wú)異議。如果您很精通

XSS

并且只想看看有什么好的測(cè)試方法可供借鑒,那么請(qǐng)直接跳到本文的測(cè)試部分。如果您對(duì)此一無(wú)所知,請(qǐng)按順序認(rèn)真閱讀!如果某個(gè)懷有惡意的人(攻擊者)可以強(qiáng)迫某個(gè)不知情的用戶(hù)(受害者)運(yùn)行攻擊者選擇的客戶(hù)端腳本,那么便會(huì)發(fā)生跨站點(diǎn)腳本攻擊?!翱缯军c(diǎn)腳本”這個(gè)詞應(yīng)該屬于用詞不當(dāng)?shù)那闆r,因?yàn)樗粌H與腳本有關(guān),而且它甚至不一定是跨站點(diǎn)的。所以,它就是一個(gè)在發(fā)現(xiàn)這種攻擊時(shí)起的一個(gè)名字,并且一直沿用至今。從現(xiàn)在開(kāi)始,我們將使用它常見(jiàn)的縮寫(xiě)名稱(chēng)“XSS”。

XSS

攻擊的過(guò)程涉及以下三方:

·

攻擊者

·

受害者

·

存在漏洞的網(wǎng)站(攻擊者可以使用它對(duì)受害者采取行動(dòng))

在這三方之中,只有受害者會(huì)實(shí)際運(yùn)行攻擊者的代碼。網(wǎng)站僅僅是發(fā)起攻擊的一個(gè)載體,一般不會(huì)受到影響??梢杂枚喾N方式發(fā)起

XSS

攻擊。例如,攻擊者可通過(guò)電子郵件、IM

或其他途徑向受害者發(fā)送一個(gè)經(jīng)過(guò)經(jīng)心構(gòu)造的惡意

URL。當(dāng)受害者在

Web

瀏覽器中打開(kāi)該

URL

的時(shí)侯,網(wǎng)站會(huì)顯示一個(gè)頁(yè)面并在受害者的計(jì)算機(jī)上執(zhí)行腳本。

XSS

漏洞是什么樣的呢?

作為一名

Web

開(kāi)發(fā)人員或測(cè)試人員,您肯定知道

Web

應(yīng)用程序的技術(shù)基礎(chǔ)是由

HTTP

HTML

組成的。HTTP

協(xié)議是

HTML

的傳輸機(jī)制,可使用代碼設(shè)計(jì)

Web

頁(yè)面布局和生成頁(yè)面。

如果

Web

應(yīng)用程序接受用戶(hù)通過(guò)

HTTP

請(qǐng)求(如

GET

POST)提交的輸入信息,然后使用輸出

HTML

代碼在某些地方顯示這些信息,便可能存在

XSS

漏洞。下面是一個(gè)最簡(jiǎn)單的例子:

1.Web

請(qǐng)求如下所示:

GET/page.asp?pageid=10&lang=en&title=Section%20Title

2.

在發(fā)出請(qǐng)求后,服務(wù)器返回的

HTML

內(nèi)容包括:

<h1>SectionTitle</h1>

可以看到,傳遞給“title”查詢(xún)字符串參數(shù)的用戶(hù)輸入可能被保存在一個(gè)字符串變量中并且由

Web

應(yīng)用程序插入到

<h1>

標(biāo)記中。通過(guò)提供輸入內(nèi)容,攻擊者可以控制

HTML。

3.

現(xiàn)在,如果站點(diǎn)沒(méi)有在服務(wù)器端對(duì)用戶(hù)輸入加以過(guò)濾(因?yàn)榭偸强梢岳@過(guò)客戶(hù)端控件),那么惡意用戶(hù)便可以使用許多手段對(duì)此漏洞加以濫用:

攻擊者可以通過(guò)擺脫

<h1>

標(biāo)記來(lái)注入代碼:

/page.asp?pageid=10&lang=en&title=Section%20Title</h1><script>alert(‘XSS%20attack’)</script>

這個(gè)請(qǐng)求的

HTML

輸出將為:

<h1>SectionTitle</h1><script>alert(‘XSSattack’)</script>

即便是這個(gè)最簡(jiǎn)單的例子,攻擊者也可以利用此連接完成數(shù)不清的事情。讓我們看看會(huì)有哪些潛在的威脅,然后討論一些更高級(jí)的測(cè)試方法。

XSS

攻擊的威脅有多么嚴(yán)重?

由于能夠在生成的

Web

頁(yè)面中注入代碼,能想到的威脅有多么嚴(yán)重,就可以有多么嚴(yán)重的威脅。攻擊者可以使用

XSS

漏洞竊取

Cookie,劫持帳戶(hù),執(zhí)行

ActiveX,執(zhí)行

Flash

內(nèi)容,強(qiáng)迫您下載軟件,或者是對(duì)硬盤(pán)和數(shù)據(jù)采取操作。

只要您點(diǎn)擊了某些

URL,這一切便有可能發(fā)生。每天之中,在閱讀來(lái)自留言板或新聞組的受信任的電子郵件的時(shí)侯,您會(huì)多少次地單擊其中的

URL?

網(wǎng)絡(luò)釣魚(yú)攻擊通常利用

XSS

漏洞來(lái)裝扮成合法站點(diǎn)。可以看到很多這樣的情況,比如您的銀行給你發(fā)來(lái)了一封電子郵件,向您告知對(duì)您的帳戶(hù)進(jìn)行了一些修改并誘使您點(diǎn)擊某些超鏈接。如果仔細(xì)觀察這些

URL,它們實(shí)際上可能利用了銀行網(wǎng)站中存在的漏洞,它們的形式類(lèi)似于

/somepage?redirect=<script>alert(‘XSS’)</script>,這里利用了“redirect”參數(shù)來(lái)執(zhí)行攻擊。

如果您足夠狡猾的話,可以將管理員定為攻擊目標(biāo),您可以發(fā)送一封具有如下主題的郵件:“求救!這個(gè)網(wǎng)站地址總是出現(xiàn)錯(cuò)誤!”在管理員打開(kāi)該

URL

后,便可以執(zhí)行許多惡意操作,例如竊取他(或她)的憑證。

好了,現(xiàn)在我們已經(jīng)理解了它的危害性

--

危害用戶(hù),危害管理員,給公司帶來(lái)壞的公共形象?,F(xiàn)在,讓我們看看本文的重點(diǎn)

--

測(cè)試您的網(wǎng)站是否存在這些問(wèn)題。

測(cè)試

XSS

漏洞

多年以來(lái),我一直是一名全職的安全顧問(wèn),已經(jīng)做過(guò)無(wú)數(shù)次的這種測(cè)試了。我將好的測(cè)試計(jì)劃歸結(jié)為兩個(gè)字:徹底。對(duì)于你我來(lái)說(shuō),查找這些漏洞與能夠有機(jī)會(huì)在

Bugtraq

Vulnwatch

上吹噓一番沒(méi)有任何關(guān)系;它只與如何出色完成負(fù)責(zé)的工作有關(guān)。如果這意味著對(duì)應(yīng)用程序中所有的單個(gè)查詢(xún)字符串參數(shù)、cookie

以及

POST

數(shù)據(jù)值進(jìn)行檢查,那么這只能表明我們的工作還不算太艱巨。

顯然,一次完整的安全性檢查所涉及的內(nèi)容通常遠(yuǎn)遠(yuǎn)超出尋找

XSS

漏洞那樣簡(jiǎn)單;它需要建立整體的威脅模型,測(cè)試溢出漏洞、信息泄漏、錯(cuò)誤處理、SQL

注入、身份驗(yàn)證和授權(quán)錯(cuò)誤。好在執(zhí)行這樣徹底的工作時(shí),各個(gè)領(lǐng)域之間都存在重疊。比如,在測(cè)試

XSS

漏洞時(shí),經(jīng)常會(huì)同時(shí)找出錯(cuò)誤處理或信息泄漏問(wèn)題。

我假設(shè)您屬于某個(gè)負(fù)責(zé)對(duì)

Web

應(yīng)用程序進(jìn)行開(kāi)發(fā)和測(cè)試的小組。在這個(gè)幸運(yùn)的位置上,您可以混合使用黑盒和白盒方法。每種方法都有它自己的優(yōu)點(diǎn),結(jié)合使用時(shí)甚至能相互提供支持。

1.

按順序準(zhǔn)備您的工具包

測(cè)試工作也可以是自動(dòng)化的,但是我們?cè)谶@里只討論手動(dòng)操作。手動(dòng)測(cè)試的必備工具包括:

·Parosproxy(),用于截獲

HTTP

通信數(shù)據(jù)

·Fiddler(/fiddler),用于截獲

HTTP

通信數(shù)據(jù)

·Burpproxy(/proxy/)

·TamperIE(/dl/TamperIESetup.exe),用于修改

GET

POST

我們以上至少列出了三種

Web

代理軟件。也可以尋找其他不同的類(lèi)似產(chǎn)品,因?yàn)槊糠N產(chǎn)品都有它自己的獨(dú)到之處。下面,您需要在

Web

瀏覽器發(fā)出

HTTP

請(qǐng)求之前截獲這些請(qǐng)求,并修改它們以注入

XSS

測(cè)試代碼。上面所有這些工具都可以完成這項(xiàng)任務(wù),某些工具還會(huì)顯示返回的

HTML

源代碼(如果您選擇了截獲服務(wù)器響應(yīng))。

截獲客戶(hù)端發(fā)出的

GET

POST

請(qǐng)求非常重要。這樣可以繞過(guò)所有的客戶(hù)端

javascript.

輸入驗(yàn)證代碼。我在這里要提醒所有

Web

開(kāi)發(fā)人員

--

客戶(hù)端安全控制是靠不住的。應(yīng)該總是在服務(wù)器端執(zhí)行有效性驗(yàn)證。

2.

確定站點(diǎn)及其功能

--

與開(kāi)發(fā)人員和

PM

交流

繪制一些簡(jiǎn)單的數(shù)據(jù)流圖表,對(duì)站點(diǎn)上的頁(yè)面及其功能進(jìn)行描述。此時(shí),可以安排一些與開(kāi)發(fā)人員和項(xiàng)目經(jīng)理的會(huì)議來(lái)建立威脅模型。在會(huì)議上盡可能對(duì)應(yīng)用程序進(jìn)行深入探討。站點(diǎn)公開(kāi)了Web

服務(wù)嗎?是否有身份驗(yàn)證表單?有留言板嗎?有用戶(hù)設(shè)置頁(yè)面嗎?確保列出了所有這些頁(yè)面。

3.

找出并列出所有由用戶(hù)提供輸入的點(diǎn)

對(duì)站點(diǎn)地圖進(jìn)行進(jìn)一步細(xì)化。我通常會(huì)為此創(chuàng)建一個(gè)電子表格。對(duì)于每個(gè)頁(yè)面,列出所有查詢(xún)字符串參數(shù)、cookie

值、自定義

HTTP

標(biāo)頭、POST

數(shù)據(jù)值和以其他形式傳遞的用戶(hù)輸入。不要忘記搜索

Web

服務(wù)和類(lèi)似的

SOAP

請(qǐng)求,并找出所有允許用戶(hù)輸入的字段。

分別列出每個(gè)輸入?yún)?shù),因?yàn)橄旅嫘枰?dú)立測(cè)試每個(gè)參數(shù)。這可能是最重要的一個(gè)步驟!如果閱讀下面的電子表格,您會(huì)看到我已經(jīng)在示例站點(diǎn)中找出了一大堆這樣的東西。如

forwardURL

和lang

這樣的查詢(xún)字符串。如

name、password、msgBody、msgTitle

和這樣的

POST

數(shù)據(jù),甚至某些

Cookie

值。所有這些都是我們感興趣的重要測(cè)試內(nèi)容。

4.

認(rèn)真思考并列出測(cè)試用例

使用已經(jīng)得到的電子表格并列出各種用來(lái)測(cè)試

XSS

漏洞的方法。我們稍候?qū)⒂懻摳鞣N方法,但是現(xiàn)在先讓我們看看我的電子表格的屏幕截圖,請(qǐng)注意,我列出了頁(yè)面上允許的每個(gè)值以及每個(gè)值的所有測(cè)試類(lèi)型。這種記錄測(cè)試的方法僅是我自己的習(xí)慣,您可以使用自己的方法。我喜歡記錄所有東西,以便我能知道已經(jīng)做了哪些工作和哪些工作沒(méi)有做。

5.

開(kāi)始測(cè)試并注意輸出結(jié)果

在查找漏洞的過(guò)程中,最重要的部分并不是您是否找到了漏洞。而是您是否真正知道究竟發(fā)生了哪些事情。對(duì)于

XSS,只需檢查

HTML

輸出并看看您輸入的內(nèi)容在什么地方。它在一個(gè)

HREF標(biāo)記中嗎?是否在

IFRAME.

標(biāo)記中?它在

CLSID

標(biāo)記中嗎?在

IMGSRC

中嗎?某些

Flash

內(nèi)容的

PARAMNAME

是怎樣的?

我會(huì)檢查所有這些情況,如果您對(duì)所輸入內(nèi)容的目的十分了解,可以調(diào)整您的測(cè)試來(lái)找出問(wèn)題。這意味著您可能需要添加一個(gè)額外的封閉括號(hào)“>”來(lái)讓某個(gè)標(biāo)記變得完整,或者添加一個(gè)雙引號(hào)來(lái)關(guān)閉標(biāo)記內(nèi)的一個(gè)元素?;蛘撸赡苄枰褂?/p>

URL

HTML

來(lái)編碼您的字符,例如將雙引號(hào)變?yōu)?/p>

%22

"。

嗯,并不那么容易,這個(gè)站點(diǎn)看來(lái)防范比較嚴(yán)密?,F(xiàn)在該怎么辦呢?

那么,也許您的簡(jiǎn)單測(cè)試用例

<script>alert(‘hi’)</script>

并不能產(chǎn)生期望中的警告對(duì)話框。仔細(xì)想想這個(gè)問(wèn)題并在可能的情況下與開(kāi)發(fā)人員進(jìn)行交流。也許他們對(duì)輸入中的尖括號(hào)、單引號(hào)或圓括號(hào)進(jìn)行了過(guò)濾。也許他們會(huì)過(guò)濾“script”這個(gè)詞。重新研究為何輸入會(huì)產(chǎn)生這樣的輸出,并理解每個(gè)值(查詢(xún)字符串、cookie、POST

數(shù)據(jù))的作用。“pageId=10”這樣的查詢(xún)字符串值可能對(duì)輸出沒(méi)有影響,因此不值得花費(fèi)時(shí)間測(cè)試它。有時(shí),最好試著注入單個(gè)字符(例如尖括號(hào)、雙引號(hào)標(biāo)記或者圓括號(hào)),看看應(yīng)用程序是否過(guò)濾這些字符。然后,便可以知道您面對(duì)的過(guò)濾級(jí)別究竟如何。接著,可以調(diào)整測(cè)試方法,對(duì)這些字符進(jìn)行編碼并重試,或者尋找其他注入辦法。

改變測(cè)試用例

我恐怕無(wú)法充分對(duì)此進(jìn)行說(shuō)明:研究輸入的值會(huì)輸出什么樣的

HTML

頁(yè)面非常重要。如果它們不能產(chǎn)生輸出,那么不要在它們上面浪費(fèi)時(shí)間。如果可以,請(qǐng)進(jìn)行研究,因?yàn)槟枰鶕?jù)輸出對(duì)測(cè)試進(jìn)行相應(yīng)的修改。我使用了各種變化形式來(lái)找出能接受和顯示腳本代碼的參數(shù)。因?yàn)檫@涉及太多內(nèi)容,因此在這里無(wú)法一一進(jìn)行討論,但是請(qǐng)務(wù)必注意以下幾種情況:

1.>"'><script>alert(‘XSS')</script>

2.>%22%27><img%20src%3d%22javascript.:alert(%27XSS%27)%22>

3.>"'><img%20src%3D%26%23x6a;%26%23x61;%26%23x76;%26%23x61;%26%23x73;%26%23x63;%26%23x72;%26%23x69;%26%23x70;%26%23x74;%26%23x3a;alert(%26quot;XSS%26quot;)>

4.AK%22%20style%3D%22background:url(javascript.:alert(%27XSS%27))%22%20OS%22

5.%22%2Balert(%27XSS%27)%2B%22

6.<tablebackground="javascript.:alert(([code])"></table>

7.<objecttype=text/htmldata="javascript.:alert(([code]);"></object>

8.<bodynload="javascript.:alert(([code])"></body>

有許多變化形式可以嘗試。關(guān)鍵在于了解程序究竟使用何種方式處理輸入和顯示輸出頁(yè)面。如同這些例子所展示的,常見(jiàn)的變化形式經(jīng)常是在腳本代碼前面加上

“>””,以嘗試封閉網(wǎng)站可能在輸出中生成的標(biāo)記。還可以對(duì)代碼進(jìn)行

URL

編碼,嘗試?yán)@過(guò)服務(wù)器端的輸入過(guò)濾功能。此外,因?yàn)榧饫ㄌ?hào)“<>”通常會(huì)在輸入時(shí)被過(guò)濾和從輸出中刪除,所以還必須嘗試不需要尖括號(hào)的

XSS,例如”&{alert('XSS')};”

持久和動(dòng)態(tài)

找出一個(gè)成功的

XSS

頗費(fèi)周折,因?yàn)樵陂_(kāi)始時(shí)

XSS

攻擊可能并不是那么顯而易見(jiàn)的。隨便舉一個(gè)例子,如果向網(wǎng)站添加一條新留言并在“msgTitle”值中注入代碼,在提交數(shù)據(jù)后,您可能不會(huì)立即看到腳本代碼被執(zhí)行。但是,當(dāng)您訪問(wèn)留言板的時(shí)侯,將會(huì)在

HTML

頁(yè)面中使用“msgTitle”值并將其作為腳本代碼執(zhí)行。這種情況被稱(chēng)作持久性

XSS

攻擊,如果包含腳本代碼的值將被保存到客戶(hù)端或者后端系統(tǒng)并在稍候的時(shí)間被執(zhí)行,便會(huì)發(fā)生此種攻擊。

而與此相對(duì)的是動(dòng)態(tài)

XSS

攻擊,這種攻擊會(huì)立即執(zhí)行并只發(fā)生一次。比如,如果某個(gè)鏈接或

GET

請(qǐng)求在某個(gè)用來(lái)控制頁(yè)面輸出的查詢(xún)字符串中包含了腳本代碼,那么在點(diǎn)擊鏈接后會(huì)立即顯示輸出。

總結(jié)

XSS

測(cè)試通常只是整個(gè)

Web

應(yīng)用程序安全性審查工作的一小部分,但是在執(zhí)行測(cè)試時(shí)必須細(xì)致和徹底。在多年的工作中,我一直強(qiáng)調(diào)使用電子表格或其他方式來(lái)記錄站點(diǎn)的所有頁(yè)面,以及每個(gè)頁(yè)面接受的輸入值(查詢(xún)字符串、cookie、POST

數(shù)據(jù)、SOAP),這是在測(cè)試前必須進(jìn)行的一個(gè)重要步驟。與此同等重要的是,理解輸入以及它在輸出的

HTML

頁(yè)面上的呈現(xiàn)方式。如果您知道了應(yīng)用程序處理輸入的方式,就會(huì)非常迅速地完成許多工作。不要浪費(fèi)時(shí)間測(cè)試那些不會(huì)作為輸出顯示的輸入。與開(kāi)發(fā)人員和

PM

進(jìn)行交流,并在開(kāi)始測(cè)試前建立完善的威脅模型。

15.

Web測(cè)試總結(jié)(全)

在Web工程過(guò)程中,基于Web系統(tǒng)的測(cè)試、確認(rèn)和驗(yàn)收是一項(xiàng)重要而富有挑戰(zhàn)性的工作?;赪eb的系統(tǒng)測(cè)試與傳統(tǒng)的軟件測(cè)試不同,它不但需要檢查和驗(yàn)證是否按照設(shè)計(jì)的要求運(yùn)行,而且還要測(cè)試系統(tǒng)在不同用戶(hù)的瀏覽器端的顯示是否合適。重要的是,還要從最終用戶(hù)的角度進(jìn)行安全性和可用性測(cè)試。然而,Internet和Web媒體的不可預(yù)見(jiàn)性使測(cè)試基于Web的系統(tǒng)變得困難。因此,我們必須為測(cè)試和評(píng)估復(fù)雜的基于Web的系統(tǒng)研究新的方法和技術(shù)。

本文將

web

測(cè)試分為

6

個(gè)部分:

1.

功能測(cè)試

2.

性能測(cè)試(包括負(fù)載/壓力測(cè)試)

3.

用戶(hù)界面測(cè)試

4.

兼容性測(cè)試

5.

安全測(cè)試

6.

接口測(cè)試

本文的目的是覆蓋

web

測(cè)試的各個(gè)方面,未就某一主題進(jìn)行深入說(shuō)明。

1

功能測(cè)試

1.1

鏈接測(cè)試

鏈接是Web應(yīng)用系統(tǒng)的一個(gè)主要特征,它是在頁(yè)面之間切換和指導(dǎo)用戶(hù)去一些不知道地址的頁(yè)面的主要手段。鏈接測(cè)試可分為三個(gè)方面。首先,測(cè)試所有鏈接是否按指示的那樣確實(shí)鏈接到了該鏈接的頁(yè)面;其次,測(cè)試所鏈接的頁(yè)面是否存在;最后,保證Web應(yīng)用系統(tǒng)上沒(méi)有孤立的頁(yè)面,所謂孤立頁(yè)面是指沒(méi)有鏈接指向該頁(yè)面,只有知道正確的URL地址才能訪問(wèn)。

鏈接測(cè)試可以自動(dòng)進(jìn)行,現(xiàn)在已經(jīng)有許多工具可以采用。鏈接測(cè)試必須在集成測(cè)試階段完成,也就是說(shuō),在整個(gè)Web應(yīng)用系統(tǒng)的所有頁(yè)面開(kāi)發(fā)完成之后進(jìn)行鏈接測(cè)試。

采取措施:采用自動(dòng)檢測(cè)網(wǎng)站鏈接的軟件來(lái)進(jìn)行。

推薦軟件:

XenuLinkSleuth

免費(fèi)

綠色免安裝軟件

HTMLLinkValidator

共享(30天試用)

1.2

表單測(cè)試

當(dāng)用戶(hù)通過(guò)表單提交信息的時(shí)候,都希望表單能正常工作。

如果使用表單來(lái)進(jìn)行在線注冊(cè),要確保提交按鈕能正常工作,當(dāng)注冊(cè)完成后應(yīng)返回注冊(cè)成功的消息。如果使用表單收集配送信息,應(yīng)確保程序能夠正確處理這些數(shù)據(jù),最后能讓顧客能讓客戶(hù)收到包裹。要測(cè)試這些程序,需要驗(yàn)證服務(wù)器能正確保存這些數(shù)據(jù),而且后臺(tái)運(yùn)行的程序能正確解釋和使用這些信息。

當(dāng)用戶(hù)使用表單進(jìn)行用戶(hù)注冊(cè)、登陸、信息提交等操作時(shí),我們必須測(cè)試提交操作的完整性,以校驗(yàn)提交給服務(wù)器的信息的正確性。例如:用戶(hù)填寫(xiě)的出生日期與職業(yè)是否恰當(dāng),填寫(xiě)的所屬省份與所在城市是否匹配等。如果使用了默認(rèn)值,還要檢驗(yàn)?zāi)J(rèn)值的正確性。如果表單只能接受指定的某些值,則也要進(jìn)行測(cè)試。例如:只能接受某些字符,測(cè)試時(shí)可以跳過(guò)這些字符,看系統(tǒng)是否會(huì)報(bào)錯(cuò)。

1.3

數(shù)據(jù)校驗(yàn)

如果系根據(jù)業(yè)務(wù)規(guī)則需要對(duì)用戶(hù)輸入進(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.2和1.3的采取措施:第一個(gè)完整的版本采

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論