使用Functional Tester的一項測試技術[3] 軟件測試
一個測試套件腳本包含很多決策腳本和測試腳本。一個測試套件的所有元素都在一個驅動表中被定義,在這個驅動表中列出了一系列無序的測試片斷。每一個測試片斷由在兩個決策腳本之間順序執行的測試腳本組成。對于每一個測試片斷來說,驅動表列出了一個源測試腳本和一個目標測試腳本之間的轉換。
隨著決策在執行期間被決策腳本動態的計算出來,需要為測試套件腳本實現一種通知機制,用來通過測試腳本通知下一個需要運行的測試腳本。當決策腳本通知測試套件腳本下一個應該運行的測試腳本時,測試套件腳本請求驅動表,查詢下一個應該運行的測試片斷。這個過程如圖3所示:
圖3:一個測試套件的元素
一般情況下,一個測試套件中的任何測試腳本都需要為數據輸入連接到一個數據池。當一個數據驅動表連接到測試套件時,我們就可以將輸入的各種組合的數據記錄列入到測試腳本和動態變化的AUT行為中。當AUT的行為發生變化時,每一個決策腳本提供的結果都會變化,因此通過AUT的測試路徑就會變化。通過一個簡單的測試套件腳本,我們可以驗證很多測試路徑。這樣可以輕松的合并輸入的數據和擴大測試套件的范圍,并在決策表中添加新條件。
這種方法清晰的將決策腳本中的測試邏輯封裝與測試腳本中執行的測試動作和驗證分離開來。AUT中決策點的識別,能夠幫助我們形式化并且精化從測試套件到測試腳本的分解。
使用 Functional Tester 實現此項技術
作為這個概念證明的一部分,我開發了一個Java庫,用來使用Functional Tester實現基于決策表的技術。請按照下列步驟建立一個測試套件腳本:
重用測試套件代碼模版并填寫測試套件驅動表
使用一個代碼模版建立決策腳本,并填寫決策表
填寫數據驅動表
基于決策表的測試庫
原文轉自:http://www.anti-gravitydesign.com