1. 程式人生 > >測試用例的幾種設計方法

測試用例的幾種設計方法

測試用例常見的設計方法有:等價類劃分法、邊界值分析法、錯誤推測法、判定表法、正交實驗法。

  一.等價類劃分法

  顧名思義,等價類劃分,就是將測試的範圍劃分成幾個互不相交的子集,他們的並集是全集,從每個子集選出若干個有代表性的值作為測試用例。

  例如,我們要測試一個使用者名稱是否合法,使用者名稱的定義為:8位數字組成的字元。

  我們可以先劃分子集:空使用者名稱,1-7位數字,8位數字,9位或以上數字,非數字。

  然後從每個子集選出若干個有代表性的值:

  空使用者名稱:“”      (無效等價類例項,指對於軟體規格說明而言,沒有意義的、不合理的輸入)

  1-7位數字:"234"     (無效等價類例項)

  8位數字:"00000000"   (有效等價類例項,能檢驗程式是否實現了規格說明中所規定的功能和效能)

  9位或以上數字:"1234567890"   (無效等價類例項)

  非數字:"abc&!!!"               (無效等價類例項)

  他們5個,就是用等價類劃分選出的測試用例。實際上,對於1-7位數字的子集來說,選“234”和“11111”沒有本質的區別。

  等價類的劃分,最關鍵的是子集的劃分。實際上,非數字還可以繼續劃分子集:字母,特殊字元。

  究竟要劃分到何種程度才合適呢?我請教過做測試的朋友,他的意見是,看你有多少資源和時間,還有,看是否值得。

  對此,我表示贊同,畢竟無論你怎麼測試,總會有未發現的缺陷存在,所以,先解決容易被發現的問題再說。

  二.邊界值分析法

  長期的測試工作經驗告訴我們,大量的錯誤是發生在輸入或輸出範圍的邊界上,而不是發生在輸入輸出範圍的內部。因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。選出的測試用例,應選取正好等於、剛剛大於、剛剛小於邊界的值,例如,對於在區間min,max的值,測試用例可以記為min,min+,max,max-。

  例如,假定 X 為整數,10≤X≤100,那麼 X 在測試中應該取的邊界值為:10,11,99,100。

  注:上面只是說邊界值,如果是完整的測試,除了邊界值外,還需要一個正常值,即12-98之間的任意值。

  三.錯誤推測法

  錯誤推測法是指:在測試程式時,人們可以根據經驗或直覺推測程式中可能存在的各種錯誤,從而有針對性地編寫檢查這些錯誤的測試用例的方法。

  這種方法沒有固定的形式,依靠的是經驗和直覺,很多時候,我們都會不知不覺的使用到。

  四.判定表法

  又稱為策略表,基於策略表的測試,是功能測試中最嚴密的測試方法。該方法適合於邏輯判斷複雜的場景,通過窮舉條件獲得結果,對結果再進行優化合並,會得到一個判斷清晰的策略表。

  五.正交實驗法

  用語言描述正交實驗法會很抽象難懂,簡單說,就是在各因素互相獨立的情況下,設計出一種特殊的表格,找出能以少數替代全面的測試用例。

  其中,上面所說的特殊表格就是正交表,是按照一定規則生成的表。

  雖然說是特殊的表格,實際表現形式跟一般的表格沒有什麼區別,正交表的主要特徵是,“均勻分佈,整齊劃一”,正是因為“均勻”的,所以才能以少數代替全部。

  當組合條件不多的時候,窮舉暫時沒問題,但是,一旦條件多了,組合個數就會以指數形式增長。

  這個時候,就要用到正交表了,通過選出有代表性的測試例項,達到以少數代替全面的效果。

  正交表如何設計呢,這個問題實際很複雜,涉及到組合統計的數學知識,有的正交表甚至到目前為止,還未得出演算法。

  我們只能通過已知的模型套上去。

  例如,Dr. Genichi Taguchi 設計的正交表

  首先,我們來看看基本的概念。

  因素:被測的元素稱為因素,例如上面的性別,班級,成績,均為因素,因素的個數我們記為k,此處k=3

  水平:因素的可能值,稱為水平。例如班級的可能值為1或2。水平的個數我們記為m,此處正好每個因素的水平都是2,此處m=2。

  那麼正交表的行數n的計算公式為,n=k*(m-1)+1,此處為n=3*(2-1)+1=4。即共有4行。

  我們通常用L表示這個正交表,完整的表示為Ln(mk)

  如果每個因素的水平數相等,我們稱之為單一水平正交表,例如本例子就是,L4(23)

  各列水平數不完全相同的正交表稱為混合水平正交表。如L8(4124),表示有一個因素的水平為4,有4個因素的水平為2。

  按照這個表示式,我們可以去套用已知的正交表。

  六.總結

  功能測試方法還有很多,例如因果圖法,狀態轉換測試法等,他們都略為複雜,像正交實驗法一樣,有各自的一套東西,不過本質都是通過畫圖,讓我們更好的思考,最後轉化成判定表。

  實際上常用的是前面五種方法,包括:等價類劃分法、邊界值分析法、錯誤推測法、判定表法、正交實驗法。