菜鳥小白的測試基礎理論總結(二)

    今天我們來看一看軟體測試方法都有哪些?

等價類劃分

    數據輸入是我們都會遇到的情況,我們還是拿新建用戶來舉例,用戶名的輸入長度(1-32個字元)、允許輸入的內容(如:只允許輸入字母、數字和英文下劃線),我們如果想要把每一種情況都驗證到顯然是不可能;如果我們隨便驗證一兩個又有可能出現漏測,導致bug暴露給客戶。這個時候等價類劃分的方法就很重要了。

  • 等價類:指的是某個特定的子集合,集合內部所有的元素都具有相同的特性,對於測試來說就是為了簡化測試輸入,

  • 劃分:指的是互相不相交的一組子集,這些子集的並集是整個完整集合。對測試來說就是保證了測試的完備性。

  • 等價類劃分:就是將所有可能輸入的數據劃分為若干個等價類子集,然後從每個等價類子集中選取部分具有代表性的數據作為測試數據使用。所以每一個使用等價類劃分方法完成的測試用例都需要經歷劃分等價類和選取測試數據兩個過程。

    從上面的介紹我們可以看出等價類劃分是一種典型的黑盒測試方法,使用了等價類劃分的方法之後,我們將漫無邊際的隨機測試轉變成了有針對性的測試,極大的提高了測試效率和測試完備性。

    針對測試而言,等價類還區分有效等價類和無效等價類。其中:

  • 有效等價類指的是測試系統允許輸入的合法數據的等價類,測試的是正常輸入情況下,是否完成了規格中所規定的功能和性能。

  • 無效等價類指的是測試系統不允許輸入的不合法數據的等價類,測試的是異常輸入情況下,測試系統對異常輸入的處理是否合理,能否保證系統正常運行。

    在上面的新建用戶的例子中,符合輸入要求的等價類(輸入長度在1-32個字元之間、只允許輸入字母、數字和英文下劃線)就是有效等價類,不符合要求的等價類就是無效等價類。

邊界值分析

    邊界值分析也是一種黑盒測試方法,正好是對等價類劃分方法的補充。實踐證明,程式往往是在輸入輸出的邊界值情況下容易發生錯誤,就我們自己寫程式也有是經驗的,如果一個判斷條件沒有寫好,往往不是判讀條件的中間內容我們沒有弄清楚,一般都是我們判斷條件的邊界沒有考慮清楚。所以我們採用邊界值分析法就是一種極其高效的方式。

    邊界值分析我們一般會取高於或者低於其最低值的一些特定情況。還是用新建用戶名來舉例,用戶名的長度範圍在1-32個字元之間,那我們取稍高於或者稍低於邊界值的取值來進行驗證,我們分別輸入31個字元、32個字元和33個字元,系統能否正常允許新建31和32個字元的用戶名,而新建33個字元的用戶名時提示報錯。

    看過我上一篇總結的同學可能還記得,我是批評過這個測試用例的。需要說明的是,我今天僅僅是舉例說明邊界值分析方法如何使用,根據不同的實際情況,有些偏激測試例可以測出問題,但是發現的問題有沒有價值又是一種認識,不在學習測試方法的範疇。所以學習不是死學習,因地制宜,靈活使用學到的內容才是我們應該做到的。

因果圖法

    前面兩種方法說的都是單輸入和單輸出的情況,考慮的是單個點的合法性。但是我們在測試過程中不能僅僅考慮到單個點的合法性,我們往往還需要看不同輸入、輸出之間的邏輯關係。如果將不同點的邏輯關係整理清楚就需要我們使用因果圖法來梳理邏輯了。

    因果圖法分析的是輸入和輸入的關係或者輸入和輸出的邏輯關係

輸入和輸入的關係

輸入和輸入的關係

所有輸入條件中最多有一個產生,也可以一個沒有

 

或(or)

所有輸入條件中,最少有一個產生,或者多個產生,或者所有的都產生

 

唯一

所有的輸入條件中,有且只有一個條件產生

 

要求

所有輸入條件中,只要有一個產生,其它的都會跟著出現

輸入和輸出的關係

輸入和輸出的關係

恆等

當輸入條件發生時結果一定會出現

   

當輸入條件不發生時,結果一定不會出現

 

非(not)

當輸入條件發生時,結果一定不會出現

   

當輸入條件不發生時,結果一定會出現

 

與(and)

當多個輸入條件中,只有所有的輸入條件都發生,結果才會出現

 

或(or)

當多個輸入條件中,只要有一個輸入條件發生,結果就會出現

    我們還是用新建用戶的例子吧。我們新建一個用戶,用戶的參數有用戶名和電話號碼兩個,只有兩個都合法填寫後才能創建成功,錯誤提示是優先提示用戶錯誤,然後提示電話錯誤。

    根據這個規則我們可以得出如下的因果關係表。

序號

參數

1 2 3 4
用戶名 1 0 1 0
電話 1 1 0 0
創建成功 1 0 0 0
提示用戶名錯誤 0 1 0 1
提示電話錯誤 0 0 1 0

由於結果存在重複,所以我們表格優化一下,並可以輸出測試用例。

序號

參數

1 2/4 3
用戶名 1 0 1
電話 1 0
創建成功 1 0 0
提示用戶名錯誤 0 1 0
提示電話錯誤 0 0 1
用例 輸入合法用戶名和電話 輸入不合法的用戶名,輸入合法或者不合法的電話 輸入合法用戶名,輸入不合法電話

錯誤猜測

    這個完成依靠測試人員自身經驗,沒有什麼規律和技巧可言了。錯誤推測法一般用於軟體測試的最後部分,根據測試人員自身經驗尋找一些軟體的缺陷。

    好了,今天的分享就到這裡,我們明天再會~