太長不看版
登入功能並沒有想象中的那麼簡單,除了簡單的冒煙策劃之外,我們還要考慮功能上的各種異常場景,以及效能、安全方面的測試也尤為重要。
測試設計想要做到更完善、更容易發現問題,就需要更深厚的內功,但受限於時間和其他因素,提供給測試的時間不會很充足,想要將測試設計做的完美,很困難。
測試工程師結合使用者容忍度與測試成本,可以考慮以優先順序的形式來排列側重點。
完整版
對軟體測試從業者來說,最簡單的功能測試莫過於「登入」。
可是乙個登入功能真的有那麼簡單嗎?這個問題在我從業軟體測試的很長一段時間都沒有思考過。
最開始做測試的時候,領導給我乙個小的web專案練練手,拿到專案位址後,我自然而然地輸入了使用者名稱、密碼進去系統主頁就開始測試,登入頁面就直接被忽略,當然,後續的測試「成果」也是不盡人意。
再到後來需要寫測試用例的時候,我還在想乙個登入功能的測試用例有什麼好寫的,結合了baidu上的登入功能測試點,慢慢地對登入功能的用例加上了一些內容,比如說空驗證、錯誤密碼驗證等。
我比較贊成對乙個功能測試的設計,就是一名軟體測試工程師的內功之一,同樣是簡單的功能,內功不同的測試工程師能夠考慮到的測試點都會不同。
經過一段時間的內功修煉,我對登入功能有了一些思考,加上我最近一次的登入功能測試用例,我列出來一些測試點:
一,基本的冒煙測試:
1,輸入正確的使用者名稱和密碼,驗證是否登入成功;
2,輸入正確的使用者名稱和錯誤的密碼,驗證是否登入成功;
3,輸入錯誤的使用者名稱和密碼,驗證是否登入成功;
4,前端驗證使用者名稱和密碼輸入框的空驗證提示資訊是否準確;
二,補充的功能測試
1,使用者名稱和密碼是否對大小寫有做判斷;
2,密碼輸入框是否有加密處理;
3,使用者名稱和密碼輸入框前端是否有做長度驗證;
4,直接訪問站點的主頁,驗證是否會跳轉到登入頁面;
5,使用者名稱密碼輸入框是否對前後空格進行過濾;
6,使用者登入成功後,進入站點顯示的頁面和對應許可權是否正確;
7,進入登入頁面,是否會定位到使用者名稱輸入框;
8,使用者密碼輸入框是否支援enter、tab鍵;
以上,在還沒考慮驗證碼、忘記密碼、第三方登入等功能的情況下,算是比較完善的登入測試點。
對軟體測試來說,有乙個名詞可能很適合,叫「使用者容忍度」,顧名思義,即使用者在遭受到軟體不合理對待時,這種不合理對待要到什麼樣的程度才會引起使用者的牴觸。我寫過一篇文章,叫《軟體測試2023年工作總結》中使用者容忍度與易用性測試的章節有詳細說明。
我們可以劃分個級別,
最低的一級,對於一些只考慮功能的內部系統,冒煙測試通過,後續的測試按情況判定,不過我認為這種情況下,所謂測試的存在也是可有可無。
往上一級,使用者量開始增大,便需要加入補充的功能測試,滿足功能、易用性的情況下,已經可以算是乙個可以「見人」的系統;
那麼分別詳細地說一下幾種測試方式需要考慮的內容,
安全性,
1,點選登入按鈕的時候,密碼在網路傳輸過程中過是否加密處理;
2,在不登入的情況下,直接輸入系統中的子網頁,是否可以直接訪問;
3,已禁用或被凍結的賬戶,是否允許登入;
4,密碼輸入框是否支援複製貼上;
5,瀏覽器儲存的密碼,輸入框修改type型別後,是否加密處理;
6,使用者名稱密碼輸入框是否有做防止sql注入;
7,使用者名稱密碼輸入框是否有對指令碼限制,如;
8,多次錯誤密碼,是否會鎖定使用者;
效能,
1,單使用者登入響應時間;
2,多使用者登入併發響應時間;
.....
相容性
1,不同瀏覽器頁面顯示內容是否一致且正確;
2,不同瀏覽器的按鈕是否支援正常點選使用;
最後,還有使用者體驗,和易用性有些類似
1,頁面ui風格展示是否友好;
2,使用者名稱密碼輸入框是否方便點選輸入;
3,登入按鈕是否支援enter鍵直接定位;
4,錯誤提示框是否在乙個地方展示;
寫了這麼多,關於登入功能的測試設計,我相信還可以補充上很多關於登入功能的測試點,可能你會說我有很多方面還沒有考慮到,
對於需不需要把所有的測試點都羅列出來,我認為可以引入二八法則到軟體測試領域中,乙個軟體中,百分之八十的問題,在百分之二十的時間就可以發現並修復,而剩下的百分之二十的問題,可能需要花費百分之八十的時間去尋找發現。
但很多時候給予測試的時間不會很多,盡可能地用有限的時間發現更多的問題,那些不容易被發現的,可能需要時間。
至於這個時間的長度,與深厚的內容息息相關。
二八法則取自書籍《軟體測試技術大全》;
軟體從需求開始
軟體從 開始,搞了這麼多年軟體,才體會軟體是從需求而來。軟體環節中最重要的是什麼?是短板。哪個最容易出現短板呢?需求。需求最重要解決的什麼,解決的人的需求,人的問題。所以軟體要解決的問題就是人的問題,所以我們軟體管理中要解決的一切問題,都是以解決人為主線,從這個意義來講,軟體是主觀的。那麼參與軟體的...
科學測試 從質量開始
針對軟體產品的6個質量特性,筆者結合具體測試工作中的體會,分別論述軟體測試的必要性和重要性。1 功能性 functionality 在指定條件下,軟體產品應滿足明確或隱含需求功能的能力。iso iec 9126質量模型在該質量特性下,進一步定義了5個子特性,分別為 適合性 suitability 準...
軟體設計從相識開始
軟體設計,是從軟體需求規格說明書觸發,根據需求分析階段確定的功能設計軟體系統的整體結構 劃分功能模組 確定每個模組的實現演算法以及編寫具體的 形成軟體的具體設計方案。軟體設計是吧許多事務和問題抽象起來,並且抽象他們不同的層次和角度,將問題或事物分解並模組華是的解決問題變得容易,分解的越細模組數量越多...