前言:作為測試工程師,你的目標是要保證系統在各種應用場景下的功能是符合設計要求的,所以你需要考慮的測試用例就需要更多、更全面。鑒於面試中經常會問“”如何測試用戶登錄“”,我們利用等價類划分、邊界值分析等設計一些測試用例。
顯式功能性需求測試用例
1. 輸入已注冊的用戶名和正確的密碼,驗證是否登錄成功;
2. 輸入已注冊的用戶名和不正確的密碼,驗證是否登錄失敗,並且提示信息正確;
3. 輸入未注冊的用戶名和任意密碼,驗證是否登錄失敗,並且提示信息正確;
4. 用戶名和密碼兩者都為空,驗證是否登錄失敗,並且提示信息正確;
5. 用戶名和密碼兩者之一為空,驗證是否登錄失敗,並且提示信息正確;
6. 如果登錄功能啟用了驗證碼功能,在用戶名和密碼正確的前提下,輸入正確的驗證碼,驗證是否登 錄成功;
7. 如果登錄功能啟用了驗證碼功能,在用戶名和密碼正確的前提下,輸入錯誤的驗證碼,驗證是否登 錄失敗,並且提示信息正確;
8. 用戶名和密碼是否大小寫敏感;
9. 頁面上的密碼框是否加密顯示;
10. 后台系統創建的用戶第一次登錄成功時,是否提示修改密碼;
11. 忘記用戶名和忘記密碼的功能是否可用;
12. 前端頁面是否根據設計要求限制用戶名和密碼長度;
13. 如果登錄功能需要驗證碼,點擊驗證碼圖片是否可以更換驗證碼,更換后的驗證碼是否可用;
14. 刷新頁面是否會刷新驗證碼;
15. 如果驗證碼具有時效性,需要分別驗證時效內和時效外驗證碼的有效性;
16. 用戶登錄成功但是會話超時后,繼續操作是否會重定向到用戶登錄界面;
17. 不同級別的用戶,比如管理員用戶和普通用戶,登錄系統后的權限是否正確;
18. 頁面默認焦點是否定位在用戶名的輸入框中;
19. 快捷鍵Tab 和Enter等,是否可以正常使用
非功能性需求測試用例
安全性測試用例包括:
1. 用戶密碼后台存儲是否加密;
2. 用戶密碼在網絡傳輸過程中是否加密;
3. 密碼是否具有有效期,密碼有效期到期后,是否提示需要修改密碼;
4. 不登錄的情況下,在瀏覽器中直接輸入登錄后的URL地址,驗證是否會重新定向到用戶登錄界面;
5. 密碼輸入框是否不支持復制和粘貼;
6. 密碼輸入框內輸入的密碼是否都可以在頁面源碼模式下被查看;
7. 用戶名和密碼的輸入框中分別輸入典型的“SQL注入攻擊”字符串,驗證系統的返回頁面;
8. 用戶名和密碼的輸入框中分別輸入典型的“XSS跨站腳本攻擊”字符串,驗證系統行為是否被篡改;
9. 連續多次登錄失敗情況下,系統是否會阻止后續的嘗試以應對暴力破解;
10. 同一用戶在同一終端的多種瀏覽器上登錄,驗證登錄功能的互斥性是否符合設計預期;
11. 同一用戶先后在多台終端的瀏覽器上登錄,驗證登錄是否具有互斥性。
性能壓力測試用例包括:
1. 單用戶登錄的響應時間是否小於3秒;
2. 單用戶登錄時,后台請求數量是否過多;
3. 高並發場景下用戶登錄的響應時間是否小於5秒;
4. 高並發場景下服務端的監控指標是否符合預期;
5. 高集合點並發場景下,是否存在資源死鎖和不合理的資源等待;
6. 長時間大量用戶連續登錄和登出,服務器端是否存在內存泄漏
兼容性測試用例包括:
1. 不同瀏覽器下,驗證登錄頁面的顯示以及功能正確性;
2. 相同瀏覽器的不同版本下,驗證登錄頁面的顯示以及功能正確性;
3. 不同移動設備終端的不同瀏覽器下,驗證登錄頁面的顯示以及功能正確性;
4. 不同分辨率的界面下,驗證登錄頁面的顯示以及功能正確性。