測試類型和測試質量
在黑盒測試的領域中,Kanner&Bach(參考Bach 2003b和Kanner,2002發布在www.testingeducation.org上的課程筆記,以及Kanner,Bach & Pettichord, 2002)描述了11種有優勢的黑盒測試:
●功能測試
●域測試
●基于規范的測試
●基于風險的測試
●壓力測試
●回歸測試
●用戶測試
●場景測試
●基于狀態模型的測試
●大批量的自動測試
●探索性測試
我和Bach收集了一些測試“范例”進行反復領會,其中的一兩個統治了測試組團隊或天才測試者的思想。經過分析,我們發現有趣的是:
如果我是一個“場景測試者”(主要根據場景測試的應用定義測試的人),我該如何實際地測這個程序?什么能使場景測試一個比一個好?我會遺漏哪類問題,對我來說難于發現或解釋什么,什么又特別簡單?
在這里,用一些怎樣的測試用例才算是“好的”的思想,來簡單的說明一下這些類型。 軟件測試
功能測試
獨立測試每個功能、性能、變量。
很多測試團隊都從非常簡單的功能測試開始,再轉換到另外一個,通常有若干功能之間的互相交叉,直到程序通過主要功能的測試。
依照這種方法,好的測試應聚焦于單一的功能,并用中庸的值來測它。我們不希望程序敗于這樣的測試,但還是會敗于有根本性錯誤的算法、失敗構建、或對程序其他部分有牽制力的變更。
這些測試具有很高的可靠性,并易于評價,但明顯沒有力度。
有些測試團隊會把大多數時間花費在功能測試上。對他們來說,當每一項都獨立徹底地測試過時,測試就完成了。依我的經驗,有力度的功能測試類似于域測試,有他們的實力。
域測試
這種測試的本質是取樣。我們把集合劃分(區分)成子集合(子域),把一個大的可能進行測試的集合分解成一個小組,并從子集合中選出有代表性的一兩個的方法。
在域測試中,我們關注變量、偶爾是變量的初始值。
為了測一個給定的變量,測試集把所有你能想象到的值(包括無效值)都賦給這個變量。把這個集合劃分成子域,在每個子域中至少進行一個典型測試。一般地,你進行了一個最具代表性的測試,也就是說,你用了一個至少像同類其他元素一樣可能暴露錯誤的值。如果這個變量能達到數據邊界,那么最具代表性的就是典型的邊界值。
大多數域測試的討論都是關于輸入變量值能否達到數據邊界線的討論。這些用例區間中最具代表性的是典型的邊界用例。
對于數字變量,一個好的域測試用例集合會檢測每個邊界值,包括最小值、最大值、一個小于最小值的值、以及一個大于最大值的值。
Whittaker(2003)提出了一個在軟件分析時關于許多不同類型變量的深入討論,包括輸入變量、輸出變量、中間計算結果、文件系統中存儲的值、以及發送到設備或其他程序的數據。
Kaner,Falk & Nguyen(1993)提出了關于變量(配置測試打印機類型)不能達到數據邊界的測試的詳細分析。
這些測試比不具代表性的或忽略某些子域(比如,人們經常忽視期望產生錯誤信息的測試用例)的測試更有力。
第一次運行這些測試用例,或重大相關變更之后,這些測試會產生很多有價值的信息,因為邊界/極限值錯誤是普遍發生的。
有時,會忽視這些測試發現的BUG,尤其是當你同時測試若干變量的極限值時。(這些測試叫做拐角用例。)他們不需要是可靠的,不需要代表用戶期望的,因此,他們也沒必要是為解決問題而設的。
文章來源于領測軟件測試網 http://www.kjueaiud.com/