如何設計功能測試用例

最近招聘面試測試工程師,發現不少測試工程師都是半路出家,對一些基本的測試概念,思路與技術沒有認知。在設計測試用例的時候只是基於直覺與經驗去測試。這就致使測試用例的設計既不全面,也不科學。面試

通常功能測試指的都是黑盒測試。就是測試工程師基於需求文檔,對開發完的功能進行測試。也就是說,功能測試都是基於需求的黑盒測試。而需求主要歸爲兩大類:sql

  • 顯式功能性需求:指的是需求中明確規定且用戶能夠感知到的需求,好比「訪客用戶訪問管理員頁面時會跳轉到登陸頁」。
  • 非功能性需求:指的是用戶沒法直接體驗到的,非具體功能性的需求,但這種非功能性需求在作功能性測試的時候也會涉及到,由於不少非功能性的需求會影響到功能的可用性與用戶體驗,好比性能測試。

下邊咱們分別來看一下兩類不一樣的需求都有哪些測試用例設計方法或思路。瀏覽器

一、顯式功能性需求

對於顯式功能性需求咱們最長用到的方案主要有三種:緩存

  • 等價類劃分法
  • 邊界值分析法
  • 錯誤推斷法

1.一、 等價類劃分法

咱們若是想測試一個功能的最傻的辦法就是窮舉。好比說一個密碼驗證功能,咱們把全部的可能的密碼都嘗試一遍,天然就能夠覆蓋掉到全部的問題與可能。可是這種窮舉的方法明顯是作不到的。所以咱們要用到等價類劃分法。安全

等價類劃分法就是說咱們將全部可能的輸入數據或操做分爲多組不一樣的子集,每一個子集中的數據與操做對發現程序中的潛在錯誤都有同等的效應。這樣咱們就將一個子集稱爲一個等價類。好比輸入各類與用戶名不相符的密碼,是一個等價類;輸入各類不存在的用戶名是另外一組等價類。這樣在測試的時候,咱們只要在每一個等價類中選擇一個典型操做,就能夠達到較好的測試覆蓋度。cookie

等價類還會分爲有效等價類和無效等價類兩種。有效等價類指的是合理的、有意義的輸入,主要用來驗證功能是否實現了某個功能。無效等價類與有效等價類相反,指的是無心義的,超過軟件規格的,不合理的輸入,主要用來測試功能的健壯性,看是否考慮瞭如何處理不合理的狀況。性能

1.二、邊界值分析法

在咱們在測試合理與不合理的數據的時候,每每最容易出現問題的就是合理與不合理的邊界,這時咱們就須要使用邊界值分析法了。邊界值分析法,就是對剛好大於、小於和等於邊界的值進行測試,來驗證程序是否作到了合適的處理。邊界值分析法通常是做爲等價類的補充,來增強測試功能實現的程度與健壯性保障的程度,是否符合規格。測試

1.3 錯誤推測法

在測試的時候就算咱們使用了等價類劃分法和邊界值分析法,也極可能會遺漏一些需求中沒有清晰提出,技術上比較隱蔽的錯誤。這種錯誤就須要測試人員經過已有的經驗、對功能實現可能的方法的理解或直覺,來推測出軟件中可能存在的各類錯誤與場景,而後編寫測試用例來進行驗證,這就叫作錯誤推測法。好比,登陸超時後,某個須要權限操做的功能在使用的時候,是否跳到了登陸頁,仍是直接報錯,甚至說依舊能夠操做。這種錯誤是須要測試人員必定的經驗、技術積累與直覺的。大數據

雖說功能性測試每每是黑盒測試,可是若是測試工程師對於功能的實現有必定的理解——好比說是否用了緩存、是否使用了消息隊列、是否某個地方會消耗極大的性能等等——將會更容易的推斷出哪些地方會產生錯誤。網站

二、非功能性需求

在測試工程師測試完顯示功能需求以後,還要考慮到系統的非功能性需求。這種需求可能在文檔中有明確提到,也可能並無明確的提出。可是咱們的測試工程師在測試的時候卻必需要關注到。

2.1 兼容性測試

兼容性指的是開發的軟件是否在各類平臺均可以使用。好比咱們開發一個網站,咱們的用戶可能會用到各類不一樣的瀏覽器訪問咱們的網站。這樣咱們在測試的時候,就不能只考慮到某一種瀏覽器。咱們須要考慮到多種瀏覽器的兼容性。

兼容性測試可能會涉及到:

  • 不一樣廠商的瀏覽器及相同廠商不一樣版本的瀏覽器。
  • 不一樣的設備終端及操做系統
  • 不一樣的屏幕分辨率
  • 不一樣的用戶軟件環境(好比是否禁用了cookie、是否能夠鏈接外網等)

2.2 安全性測試

咱們的測試人員還須要關注到開發軟件的安全性。這涉及到:

  • 用戶隱私信息是否加密
  • 須要權限的資源是否有沒有權限也能夠被拿到的風險
  • 會不會受到跨站腳本的攻擊
  • 會不會受到sql注入攻擊
    等等

2.3 壓力測試

測試人員也須要考慮的軟件是否可以承載其需求所需的壓力,例如:

  • 軟件是否能在合理的時間內響應用戶行爲
  • 軟件是否可能承載足夠的請求
  • 軟件在處理大數據量時會不會產生資源鎖死
    等等

三、總結

相關文章
相關標籤/搜索