用戶登錄頁面測試的一步步深入

登錄頁面測試

在面試測試工程師相關的崗位時,一般面試官都會使用用戶登錄頁面的測試來考察面試者的測試用例設計能力以及測試思維。

初級
一個看似簡單的測試用例設計題,從你的回答就能得出你的測試用例設計功底。
初級的測試工程師可能會想到以下測試用例:
(1)什麼都不輸入,驗證是否登錄失敗,並且提示信息正確;
(2)輸入正確的用戶名,正確的密碼,驗證是否登錄成功;
(3)輸入正確的用戶名和錯誤的密碼,驗證是否登錄失敗並且提示信息正確;
(4)輸入錯誤的用戶名和任意密碼,驗證是否登錄失敗並且提示信息正確;
(5)用戶名和密碼兩者之一爲空,驗證是否登錄失敗並且提示信息正確;
(6)若啓用了驗證碼功能,在用戶名和密碼都正確的情況下,輸入正確的驗證碼,驗證是否登錄成功;
(7)若啓用了驗證碼功能,在用戶名和密碼都正確的情況下,輸入錯誤的驗證碼,驗證是否登錄失敗並且提示信息正確;

有經驗
嗯,以上這些測試用例已經覆蓋了主要的功能測試場景,但是若要做的更好,還可以對以上測試用例進行擴充,一個有經驗的測試工程師還會考慮以下測試用例:
(1)用戶名和密碼是否大小寫敏感;
(2)用戶名和密碼是否有字符長度和字符內容限制;
(3)頁面上的密碼框是否加密顯示;
(4)後臺系統創建的用戶第一次登錄成功後,是否提示記住密碼;
(5)忘記用戶名和忘記密碼的功能是否可用;
(6)若登錄功能需要驗證碼,點擊驗證碼圖片是否更換驗證碼,更換後的驗證碼是否可用;
(7)刷新頁面是否會刷新驗證碼;
(8)若驗證碼有時效性,需要分別驗證時效內和時效外的有效性;
(9)用戶登錄成功但會話超時後,繼續操作是否重定向到用戶登錄界面;
(10)不同級別的用戶,登錄系統後的權限是否正確;
(11)頁面默認的焦點是否定位在用戶輸入框中;
(12)快捷鍵是否可以正常使用;

雖然添加這些測試用例之後,測試覆蓋了提高了很多,但你可以發現,以上這些測試用例的設計都是圍繞顯示功能性需求的驗證展開的,即直接針對用戶登錄這一功能進行驗證和測試的。

進階

除了顯示的功能性測試驗證外,非功能性需求即隱式功能性需求也是至關重要的。
顯示功能性需求指的是軟件本身需要實現的具體功能,而隱式功能性需求從軟件測試的維度來看,主要涉及安全性、性能及兼容性三大方面。

安全性測試用例包括:
(1)用戶密碼後臺存儲是否加密;
(2)用戶密碼在網絡傳輸過程中是否加密;
(3)密碼是否具有有效期,密碼有效期到期後,是否提示修改密碼;
(4)不登錄的情況下,在瀏覽器中直接輸入登錄後的URL地址,驗證是否會重新定向到用戶登錄界面;
(5)密碼輸入框是否不支持複製和粘貼;
(6)密碼輸入框輸入的密碼是否都可以在頁面源碼模式下被查看;
(7)用戶名和密碼的輸入框中分別輸入典型的“SQL注入攻擊”字符串,驗證系統的返回頁面;
(8)連續多次登錄失敗的情況下,系統是否會阻止後續的嘗試以應對暴力破解;
(9)同一用戶在同一終端的多種瀏覽器 登錄,驗證登錄功能的互斥性是否符合設計預期;
(10)同一用戶先後在多臺終端的瀏覽器上登錄,驗證登錄是否具有互斥性;

性能壓力測試用例包括:
(1)單用戶登錄的響應時間是否小於可容忍的時間,比如3秒;
(2)單用戶登錄時,後臺請求數量是否過多;
(3)高併發場景下,用戶登錄的響應時間是否小於5秒;
(4)高併發場景下,服務端的監控指標是否符合預期;
(5)高集合點併發場景下,是否存在資源死鎖和不合理的資源等待;
(6)長時間大量用戶連續登錄或退出,服務器端是否存在內存泄漏;

兼容性測試用例包括:
(1)不同瀏覽器下,驗證登錄頁面的顯示以及功能正確性;
(2)相同瀏覽器的不同版本下,驗證登錄頁面的顯示以及功能正確性;
(3)不同移動端的不同瀏覽器下,驗證登錄頁面的顯示以及功能正確性;
(4)不同分辨率的界面下,驗證登錄頁面的顯示以及功能正確性;

雖然以上的這些測試用例覆蓋面很廣,但是依然不夠全面,也就是測試的不可窮盡性,絕大多數情況下是無法做到“窮盡測試”的,所謂窮盡測試,是指包含了軟件輸入值和前提條件所有可能組合的測試方法,即測試完成後不存在任何未知的缺陷。但是,實際情況下,測試受限於時間和經濟成本,是不可能去窮盡所有可能的組合的,而是採用基於風險驅動的模式,有所側重的選擇測試範圍和設計測試用例,以尋求缺陷風險和研發成本的平衡。

從上面的分析可以看出,一道看似簡單的測試用例設計題,一點也不簡單,它需要的是測試工程師具有廣泛的知識面,需要對被測試系統的設計具有較深入的理解,需要深入掌握安全攻擊的基本原理,掌握性能測試的基本設計方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章