本文基于《軟件測(cè)試52講-茹炳晟,01 | 你真的懂測(cè)試嗎?從“用戶登錄”測(cè)試談起》的課程總結(jié)而來(lái)。
一、顯式功能性需求(Functional requirement)用例:
1、輸入已注冊(cè)的用戶名和正確的密碼,驗(yàn)證是否登錄成功;
2、輸入已注冊(cè)的用戶名和不正確的密碼,驗(yàn)證是否登錄失敗,并且提示信息正確;
3、輸入未注冊(cè)的用戶名和任意密碼,驗(yàn)證是否登錄失敗,并且提示信息正確;
4、輸入未激活的、已鎖定的、被注銷(xiāo)的用戶名和正確密碼,驗(yàn)證是否登錄成功;
5、用戶名和密碼兩者都為空,驗(yàn)證是否登錄失敗,并且提示信息正確;
6、用戶名和密碼兩者之一為空,驗(yàn)證是否登錄失敗,并且提示信息正確;
7、第一次登錄失敗,再次輸入正確的用戶名和密碼,驗(yàn)證是否登錄成功;
8、如果登錄功能啟用了驗(yàn)證碼功能,用戶名、密碼、驗(yàn)證碼都輸入正確,驗(yàn)證是否登錄成功;
9、如果登錄功能啟用了驗(yàn)證碼功能,用戶名、密碼正確,驗(yàn)證碼輸入錯(cuò)誤,驗(yàn)證是否登錄失敗,并且提示信息正確;
10、點(diǎn)擊驗(yàn)證碼圖片是否可以更換驗(yàn)證碼,更換后的驗(yàn)證碼是否可用;
11、刷新頁(yè)面是否會(huì)刷新驗(yàn)證碼,刷新后的驗(yàn)證碼是否可用;
12、如果驗(yàn)證碼具有時(shí)效性,需要分別驗(yàn)證時(shí)效內(nèi)和時(shí)效外驗(yàn)證碼的有效性;
13、無(wú)網(wǎng)絡(luò)模式下登錄,是否給出“網(wǎng)絡(luò)未連接”或“網(wǎng)絡(luò)異常”的提示;
14、第一次登錄請(qǐng)求超時(shí)后(服務(wù)器出問(wèn)題,隨后恢復(fù)正常),再次請(qǐng)求登錄能否登錄成功。
有經(jīng)驗(yàn)的測(cè)試工程師會(huì)再增加的測(cè)試用例:
15、頁(yè)面默認(rèn)焦點(diǎn)是否定位在用戶名的輸入框中;
16、快捷鍵 Tab 和 Enter 等,是否可以正常使用;
17、用戶名和密碼是否大小寫(xiě)、空格敏感;
18、使用中文、英文鍵盤(pán)輸入字母?jìng)鹘o后端的字符長(zhǎng)度是否一致;
19、前端頁(yè)面是否根據(jù)設(shè)計(jì)要求限制用戶名和密碼長(zhǎng)度,且前后臺(tái)都需要限制;
20、頁(yè)面上的密碼框是否加密顯示,是否需要設(shè)置明暗碼切換按鈕;
21、輸入欄是否設(shè)置快速刪除按鈕;
22、忘記用戶名和忘記密碼的功能是否可用;
23、修改密碼后,是否重定向到登錄頁(yè)面;
24、修改密碼后,原密碼是否作廢不可用;
25、在其他終端修改密碼后,PC端是否自動(dòng)下線,若下線后,使用原密碼能否繼續(xù)登錄;
26、使用默認(rèn)密碼第一次登錄成功時(shí),是否提示修改密碼;
27、第一次登錄成功,是否會(huì)同步其他終端用戶信息;
28、用戶登錄成功但是會(huì)話超時(shí)后,繼續(xù)操作是否會(huì)重定向到用戶登錄界面;
29、不同級(jí)別的用戶,比如管理員用戶和普通用戶,登錄系統(tǒng)后的權(quán)限是否正確;
30、輸入錯(cuò)誤密碼的限制次數(shù):
- a、分別測(cè)試最大值-1、最大值、最大值+1 時(shí)的輸錯(cuò)密碼情況;
- b、超過(guò)最大次數(shù)限制后,是否采取強(qiáng)制手段限制登錄或?qū)~號(hào)暫時(shí)凍結(jié)處理;
- c、超過(guò)最大次數(shù)限制后,分別輸入正確的密碼和錯(cuò)誤的密碼再次登錄。
二、非功能性需求(Non-functional requirement)用例:
安全性測(cè)試用例:
1、用戶名、密碼、驗(yàn)證碼輸入框是否不支持復(fù)制和粘貼;
2、密碼輸入框內(nèi)輸入的密碼是否都可以在頁(yè)面源碼模式下被查看;
3、用戶密碼后臺(tái)存儲(chǔ)是否加密;
4、用戶密碼在網(wǎng)絡(luò)傳輸過(guò)程中是否加密;
5、密碼是否具有“有效期”,密碼有效期到期后,是否提示需要修改密碼;
6、是否可記住密碼,記住的密碼保存是否加密;
7、記住密碼是否有“有效期”,若有“有效期”,過(guò)期之后是否會(huì)清空密碼;
8、登錄成功后的session時(shí)效設(shè)置;
9、登錄錯(cuò)誤后的提示是否有安全隱患;
10、退出登錄后再次登錄,使用記住的密碼,是否登錄成功;
11、不登錄的情況下,在瀏覽器中直接輸入登錄后的 URL 地址,驗(yàn)證是否會(huì)重新定向到用戶登錄界面;
12、用戶登錄過(guò)程中l(wèi)og中是否有個(gè)人信息明文打印
13、用戶名和密碼的輸入框中分別輸入典型的“SQL 注入攻擊”字符串,驗(yàn)證系統(tǒng)的返回頁(yè)面;
14、用戶名和密碼的輸入框中分別輸入典型的“XSS 跨站腳本攻擊”字符串,驗(yàn)證系統(tǒng)行為是否被篡改;
15、連續(xù)多次登錄失敗情況下,系統(tǒng)是否會(huì)阻止后續(xù)的嘗試以應(yīng)對(duì)暴力破解;
16、登錄后輸入登錄URL,是否還能再次登錄?如果能,原登錄用戶是否變得無(wú)效;
17、同用戶同終端的多種瀏覽器上登錄,驗(yàn)證登錄功能的互斥性是否符合設(shè)計(jì)預(yù)期;
18、同用戶不同終端,先后登錄,驗(yàn)證登錄是否具有互斥性;
19、同用戶同瀏覽器已經(jīng)登錄,再次打開(kāi)一個(gè)標(biāo)簽頁(yè)時(shí),是否需要重新登錄;
20、不同用戶在同終端同瀏覽器登錄,驗(yàn)證登錄信息token的正確性;
21、不同用戶在同終端同瀏覽器登錄,被踢后,頁(yè)面是否會(huì)跳轉(zhuǎn)到登錄頁(yè);
22、是否支持第三方登錄,如微信、QQ、微博;
23、是否允許第三方工具平臺(tái)存儲(chǔ)密碼;
24、是否可以使用登錄的API發(fā)送登錄請(qǐng)求,并繞開(kāi)驗(yàn)證碼校驗(yàn);
25、是否可以用抓包工具抓到的請(qǐng)求包直接登錄;
26、截取到的token等信息,是否可以在其他終端上直接使用,繞開(kāi)登錄。token過(guò)期時(shí)間校驗(yàn);
性能壓力測(cè)試用例:
1、單用戶登錄的響應(yīng)時(shí)間是否小于 3 秒;
2、單用戶登錄時(shí),后臺(tái)請(qǐng)求數(shù)量是否過(guò)多;
3、高并發(fā)場(chǎng)景下用戶登錄的響應(yīng)時(shí)間是否小于 5 秒;
4、高并發(fā)場(chǎng)景下服務(wù)端的監(jiān)控指標(biāo)是否符合預(yù)期;
5、高集合點(diǎn)并發(fā)場(chǎng)景下,是否存在資源死鎖和不合理的資源等待;
6、長(zhǎng)時(shí)間大量用戶連續(xù)登錄和登出,服務(wù)器端是否存在內(nèi)存泄漏。
兼容性測(cè)試用例:
1、不同瀏覽器下,驗(yàn)證登錄頁(yè)面的顯示以及功能正確性;
2、相同瀏覽器的不同版本下,驗(yàn)證登錄頁(yè)面的顯示以及功能正確性;
3、不同移動(dòng)設(shè)備終端的不同瀏覽器下,驗(yàn)證登錄頁(yè)面的顯示以及功能正確性;
4、不同分辨率的界面下,驗(yàn)證登錄頁(yè)面的顯示以及功能正確性;
5、網(wǎng)絡(luò)延遲或者弱網(wǎng)或者切換網(wǎng)絡(luò)或者斷網(wǎng)時(shí)正常登錄是否正常。
三、補(bǔ)充:
1、還有是是否用到緩存?
2、測(cè)試用例究其根本還是要圍繞需求,從需求中提煉出的測(cè)試點(diǎn)才是有效的。
3、其次,對(duì)被測(cè)對(duì)象業(yè)務(wù)的熟悉程度,也決定了能否設(shè)計(jì)出高質(zhì)量的用例。
4、畢竟各個(gè)功能點(diǎn)之間是有聯(lián)系和影響的,往往這中間的聯(lián)系會(huì)隱藏很多被我們忽略掉或者是想不到的用例。