從登陸測試談測試用例

標籤(空格分隔): 登陸測試安全


談談登陸測試:

可能你會說,「用戶登陸」這個測試對象也有點太簡單了吧,我只要找一個用戶,讓他在界面上輸入用戶名和密碼,而後點擊「確 認」按鈕,驗證一下是否登陸成功就能夠了。的確,這構成了一個最基本、最典型的測試用例,這也是終端用戶在使用系統時最典 型的場景。
可是做爲測試工程師,你的目標是要保證系統在各類應用場景下的功能是符合設計要求的,因此你須要考慮的測試用例就須要更
多、更全面,因而你可能會根據「用戶登陸」功能的需求描述,結合等價類劃分和邊界值分析方法來設計一系列的測試用例。性能

等價類,邊界值:

  • 那什麼是等價類劃分和邊界值分析方法呢?首先,這兩者都隸屬於最經常使用、最典型、也是最重要的黑盒測試方法。
    等價類劃分方法,是將全部可能的輸入數據劃分紅若干個子集,在每一個子集中,若是任意一個輸入數據對於揭露程序中潛在錯
    誤都具備同等效果,那麼這樣的子集就構成了一個等價類。後續只要從每一個等價類中任意選取一個值進行測試,就能夠用少許
    具備表明性的測試輸入取得較好的測試覆蓋結果。
  • 邊界值分析方法,是選取輸入、輸出的邊界值進行測試。由於一般大量的軟件錯誤是發生在輸入或輸出範圍的邊界上,因此需
    要對邊界值進行重點測試,一般選取正好等於、剛剛大於或剛剛小於邊界的值做爲測試數據
  • 從方法論上能夠看出來,邊界值分析是對等價類劃分的補充,因此這兩種測試方法常常結合起來使用

如今,針對「用戶登陸」功能,基於等價類劃分和邊界值分析方法,咱們設計的測試用例包括:

image.png-454.1kB
列出這些測試用例後,你可能已經以爲比較滿意了,由於你感受已經把本身的測試知識都用在這些用例設計中了。
的確,上面的測試用例集已經涵蓋了主要的功能測試場景。可是在一個優秀的測試工程師眼中,這些用例只能達到勉強及格的標
準。
什麼?纔剛剛及格?若是你有這個想法,那我建議你在繼續看下面的內容前,先仔細思考一下,這些測試用例是否真的還須要擴
充。
如今,分享一下有經驗的測試工程師會再增長的測試用例:
image.png-536.6kB
看完這些用例,你可能會說:「哇塞,原來一個簡簡單單的登陸功能竟然有這麼多須要測試的點」。可是,你別高興得太早,「用
戶登陸」功能的測試還沒結束。
雖然改進後的測試用例集相比以前的測試覆蓋率的確已經提升了不少,可是站在資深測試人員的角度來看,還有不少用例須要設
計。
經我這麼一說,你可能已經發現,上面全部的測試用例設計都是圍繞顯式功能性需求的驗證展開的,換句話說,這些用例都是直接
針對「用戶登陸」功能的功能性進行驗證和測試的。
可是,一個質量過硬的軟件系統,除了顯式功能性需求之外,其餘的非功能性需求即隱式功能性需求也是極其關鍵的。 顯式功能性需求(Functional requirement)的含義從字面上就能夠很好地理解,指的是軟件自己須要實現的具體功能, 好比「正
經常使用戶使用正確的用戶名和密碼能夠成功登陸」、「非註冊用戶沒法登陸」等,這都是屬於典型的顯式功能性需求描述。
那什麼是非功能性需求(Non-functional requirement)呢?從軟件測試的維度來看,非功能性需求主要涉及安全性、性能以及兼 容性三大方面。 在上面全部的測試用例設計中,咱們徹底沒有考慮對非功能性需求的測試,但這些每每是決定軟件質量的關鍵因 素。
明白了非功能性需求測試的重要性後,你能夠先思考一下還須要設計哪些測試用例,而後再來看看我會給出哪些用例,相信這種方
式對你的幫助會更大。測試

安全測試用例:

image.png-601.1kB

性能測試用例:

image.png-264.5kB

兼容性測試用例:

image.png-247.5kB

說到這裏,你還會以爲「用戶登陸」功能的測試很是簡單、不值一提麼?一個看似簡單的功能測試,竟然涵蓋了如此多的測試用
例,除了要覆蓋明確的功能性需求,還須要考慮其餘諸多的非功能性需求。
另外,經過這些測試用例的設計,你也能夠發現,一個優秀的測試工程師必須具備很寬廣的知識面,若是你不能對被測系統的設計 有深刻的理解、不明白安全攻擊的基本原理、沒有掌握性能測試的基本設計方法,很難設計出「有的放矢」的測試用例。
經過「用戶登陸」功能測試這個實例,我但願能夠激發你對測試更多的思考,而且開拓你設計測試用例的思路,以達到拋磚引玉的
效果。
看完了這些測試用例,你可能會說還有一些遺漏的測試點沒有覆蓋到,這個功能的測試點還不夠全面。ui

  • 測試的不可窮盡性,即絕大多數狀況下,是不可能進行窮盡測試的。
    所謂的「窮盡測試」是指包含了軟件輸入值和前提條件全部可能組合的測試方法,完成窮盡測試的系統裏應該不殘留任何未知的軟 件缺陷。 由於若是有未知的軟件缺陷,你能夠經過作更多的測試來找到它們,也就是說你的測試尚未窮盡。
    可是,在絕大多數的軟件工程實踐中,測試因爲受限於時間成本和經濟成本,是不可能去窮盡全部可能的組合的,而是採用基於風
    險驅動的模式,有所側重地選擇測試範圍和設計測試用例,以尋求缺陷風險和研發成本之間的平衡。
  • 總結 首先,對於高質量的軟件測試,用例設計不只須要考慮明確的顯式功能性需求,還要涉及兼容性、安全性和性能等一系列的非功能 性需求,這些非功能性需求對軟件系統的質量有着舉足輕重的做用。 其次,優秀的測試工程師必須具備寬廣的知識面,才能設計出有針對性、更易於發現問題的測試用例。 最後,軟件測試的用例設計是不可窮盡的,工程實踐中不免受制於時間成本和經濟成本,因此優秀的測試工程師須要兼顧缺陷風險 和研發成本之間的平衡。
相關文章
相關標籤/搜索