如何測試“用戶登錄”功能?我認為可以從功能性和非功能性兩個維度去思考。
關於功能測試,首先可能會根據“用戶登錄”功能的需求描述,結合等價類划分和邊界值分析方法來設計測試用例。包括:
①輸入已注冊的用戶名和正確的密碼,驗證是否登錄成功;
②輸入已注冊的用戶名和不正確的密碼,驗證是否登錄失敗,並且提示信息正確;
③輸入未注冊的用戶名和任意密碼,驗證是否登錄失敗,並且提示信息正確;
④用戶名和密碼兩位都為空,驗證是否登錄失敗,並且提示信息正確;
⑤用戶名和密碼兩位兩者之一為空,驗證是否登錄失敗,並且提示信息正確;
⑥如果登錄功能啟用用驗證碼功能,在用戶名和密碼正確的前提下,輸入正確的驗證碼,驗證是否登錄成功;
⑦如果登錄功能啟用用驗證碼功能,在用戶名和密碼正確的前提下,輸入錯誤的驗證碼,驗證是否登錄失敗,並且提示信息正確;
雖然以上的測試用例已經涵蓋了主要的功能測試場景,但並沒有覆蓋完全,以下為補充的測試用例:
①用戶名和密碼是否大小寫敏感;
②頁面上的密碼框是否加密顯示;
③后台系統創建的用戶第一次登錄成功時,是否提示修改密碼;
④忘記用戶名和忘記密碼的功能是否可用;
⑤前端頁面是否根據設計要求限制用戶名和密碼長度;
⑥如果登錄功能需要驗證碼,點擊驗證碼圖片是否可以更換驗證碼,更換后的驗證碼是否可用;
⑦刷新頁面是否會刷新驗證碼;
⑧如果驗證碼具有時效性,需要分別驗證時效內和時效外驗證碼的有效性;
⑨用戶登錄成功但是會話超時后,繼續操作是否會重定向到用戶登錄界面;
⑩不同級別的用戶,比如管理員用戶和普通用戶,登錄系統后的權限是否正確;
⑪頁面默認焦點是否定位在用戶名的輸入框中;
⑫快捷鍵Tab和Enter等,是否可以正常使用。
關於非功能性測試,主要涉及安全性、性能以及兼容性三大方面。
安全測試測試用例包括:
①用戶密碼后台存儲是否加密;
②用戶密碼在網絡傳輸過程中是否加密;
③密碼是否具有有效期,密碼有效期到期后,是否提示修改密碼;
④不登錄的情況下,在瀏覽器中直接輸入登錄后的URL地址,驗證是否會重新定向到用戶登錄界面;
⑤密碼輸入框是否不支持復制和粘貼;
⑥密碼輸入框內輸入的密碼是否都可以在頁面源碼模式下被查看;
⑦用戶名和密碼的輸入框中分別輸入典型的“SQL注入攻擊”字符串,驗證系統的返回頁面;
⑧用戶名和密碼的輸入框中分別輸入典型的“XSS跨站腳本攻擊”字符串,驗證系統行為是否被篡改;
⑨連續多次登錄失敗情況下,系統是否會阻止后續的嘗試以應對暴力破解;
⑩同一用戶在同一終端的多種瀏覽器上登錄,驗證登錄功能的互斥性是否符合設計預期;
⑪同一用戶先后在多台終端的瀏覽器上登錄,驗證登錄是否具有互斥性。
性能壓力測試用例包括:
①單用戶登錄的響應時間是否小於3秒;
②單用戶登錄時,后台請求數量是否過多;
③高並發場景下用戶登錄的響應時間是否小於5秒;
④高並發場景下服務端的監控指標是否符合預期;
⑤高集合點並發場景下,是否存在資源死鎖和不合理的資源等待;
⑥長時間大量用戶連續登錄和登出,服務器端是否存在內存泄漏。
兼容性測試用例包括:
①不同瀏覽器下,驗證登錄頁面的顯示以及功能正確性;
②相同瀏覽器的不同版本下,驗證登錄頁面的顯示以及功能正確性;
③不同移動設備端的不同瀏覽器下,驗證登錄頁面的顯示以及功能正確性;
④不同分辨率的界面下,驗證登錄頁面的顯示以及功能正確性。
作者:victoriawu5
鏈接:https://www.jianshu.com/p/8f6ab1e32e38
來源:簡書