使用Functional Tester的一項測試技術[2] 軟件測試
這項技術提供了以下好處:
一種詳細描述測試套件和測試腳本的形式化方法
在決策腳本中封裝測試套件邏輯
以決策點為中心的測試套件體系架構
測試邏輯可以很容易地使用決策表進行追蹤與變更,這樣可以被非程序員閱讀和填寫一個更加靈活的數據驅動的實現方法。
基于決策表的測試技術
在測試過程中當達到一個決策點時,測試人員會檢查AUT的狀態并決定測試活動。每一個決策點都可以用一個決策表來指定。一個決策表由兩部分組成:條件和活動。決策表列出了一個測試活動執行所需的條件。每一個條件表達了各種變量之間的關系是正確的還是錯誤的。所有可能的條件組合定義了一系列的選擇。對于每一個選擇,測試活動都要考慮到。選擇的數量使得條件種類呈指數級增加,可能會顯示為2NumberOfConditions。當決策表變得復雜時,一個新的決策表層級就會被創建。
由于一些選擇的情況是不存在的,所以一個測試策略應該是:1) 驗證所有可能實現的選擇。2) 描述AUT是如何在所有選擇環境下運轉的。有了決策表,我們就可以根據測試策略輕松的添加和刪除條件。我們可以根據測試策率的需要,通過反復的添加新的測試條件來增加測試的覆蓋率。
如圖2所示,決策表在指定,分析和測試復雜邏輯性時起到很重要的作用。它們可以很有效的描述不同條件產生不同的測試活動。它們還可以有效的查找到執行與規范中的錯誤。
圖2:一個決策表的例子
使用決策和數據驅動表
在每一個決策點,一個決策表要列出AUT(根據條件)需要校驗哪些內容,以及下一個活動是什么。由于決策表中已經定義了邏輯,所以測試人員不需要硬編碼任何測試邏輯。決策腳本只需在運行期間執行確認工作,比較決策表提供的驗證結果,并且如果找到了解決方案,返回并運行下一個測試腳本。