最近在做一個創新項目,這個項目有二個平台,每個平台都有前后端,故有四個系統,每個系統都有登錄功能,而且不同系統代碼設計方式都有所差異,所以就這個登錄功能而言就要測試四次,看似一個簡單的登錄功能其中設計的測試點也是相當復雜,今天王豆豆就講講如何測試登錄功能。
1.了解平台
首先你需要了解平台設計結構,是前后端分離還是不分離。
了解這個主要是涉及到用戶登錄緩存數據的一個存儲。
這就需要了解session,cookie,Token之間的區別。
目前我們的二個平台,有一個平台是做的前后端分離,因為前后端分離是無狀態的,就沒有session,必須有權限認證,有可能是Token,也有可能是其它(Oauth/Bearer Token等),這里我們的系統用的是Token(令牌)認證。
而未做前后端分離的平台,是將登錄信息臨時存儲在cookie中,明白了這些那在測試過程就需要對這一部分的鑒權做測試。
Cookie數據存放在客戶的瀏覽器中.
Session數據存放在服務器中。
Token用戶身份的驗證方式。
2.分析登錄模塊的測試點
一般來說登錄模塊的功能點都比較簡單。大致分為用戶名、密碼、忘記密碼、記住用戶名以及按鈕。
除了分析功能點之外,我們還需要考慮以下幾個點:
1.權限認證
這個主要是指cookie、Token失效,操作菜單產生什么樣的結果。
2.橫向越權
指AB二個用戶擁有相同的權限,然后A用戶嘗試訪問B用戶的資源。
另外還有一個是縱向越權,是低級別用戶的權限去訪問高級別用戶的資源。
3.設計測試用例
1.設計功能點的測試用例
我們的系統不做記住用戶和忘記密碼的功能,所以針對這二個功能未設計測試點。
2.設計安全性測試用例
4.測試界面
在測試過程中,我們不僅要關注功能點是否按照需求已經實現了,同時我們還需要關注界面和用戶體現性,需要進行界面和體現方面的測試。
在測試界面中,主要測試以下內容:
1.界面內容
登錄模塊放置在頁面中的哪個位置,如果居中,是否又居中顯示了;
其它位置放置什么東西;
用戶輸入框、密碼輸入框、登錄按鈕排列、是否對齊;框的大小;
用戶名、密碼字樣是否相同,對齊.
2.提示
用戶名、密碼輸入框是否有默認提示內容;
輸入錯誤的用戶名或密碼是否給出了正確的提示,提示的文字、大小、顏色是否按需求描述(如果需求中沒有明確指出,那可以借鑒其它網站相同功能的提示風格);
用戶名和密碼是否是必填的,如果是必填的,是否用紅色星號表示(通用規則);
輸入為空時,給出的提示是否正確。
密碼顯示:密碼是否是密文顯示,如果需求中規定了可支持明文顯示,顯示有相應的控件。
5.總結
登錄模塊測試看起來非常簡單,但在實際測試過程中也需要考慮非常多的測試點,進行全面覆蓋登錄功能的需求,登錄模塊基本所有網站都有這個功能,故你在測試完一個網站之后對其他網站的登錄功能測試也算是熟識,可能會根據網站的不同,有一點點變化,只要需求明確了就好。
如何測試一個網站的登錄模塊也是面試題之一?
王豆豆在面試的時候就遇到過,讓王豆豆設計登錄功能的測試用例,當時王豆豆只考慮了功能方面的測試,而未想起針對功能測試的安全性測試,面試官當時重復問了王豆豆好幾遍:還有么?還有其它測試點么?但王豆豆就是沒有想出來,還很肯定地回答:沒有了,最終是在他的提示下才想起來。
在面試時,經常會讓應聘都設計測試用例,如果是遇到不同的功能也可以根據這個思路來設計測試用例。
王豆豆希望每一篇文章都能帶新思路,歡迎關注王豆豆的公眾號(zishentester),和王豆豆一起成長。