對數據驅動測試的支持是 Rational Functional Tester(RFT)的重要特性之一??墒橇硪环矫?,RFT 所提供的數據池訪問方式相對單一,限制了對用戶實現較為復雜的測試策略的可能性。本文介紹了如何使用順序迭代器之外的迭代器靈活訪問 RFT 數據池的方法,并提供自定義迭代器供用戶實現不同的數據選擇策略。
1. RFT 與數據驅動測試
數據驅動測試是一項單個腳本使用不同的輸入和響應數據重復執行的技術。在數據驅動測試中,自動化測試腳本使用從外部數據源中讀取的變量,而不是直接使用文字值(Literal value)。數據驅動測試的優勢在于其將數據與測試腳本分離,從而可以在不修改測試腳本的情況下通過更新測試數據完成對測試用例的增加、更改和刪除。
RFT 中通常使用數據池(Datapool)作為數據驅動測試的數據源。數據池是一系列數據記錄的集合。這些記錄作為測試腳本回放時的變量輸入。RFT 數據池為表格結構(Tabular)。要創建數據池,用戶可以通過 RFT 所提供的數據池編輯器直接操作,也可以從 Excel 或者 Rational Test Manager 中導入數據。數據池建立后,將其與 RFT 的測試腳本相關聯,被關聯的測試腳本就可以通過迭代器讀取數據池的記錄,從而實現數據驅動測試了。
2. 實例分析——數據驅動測試
為了更好的說明如何使用 RFT 的迭代器,下面我們給出了一個例子。在這個例子中,待驗證的是一個計算器程序 Calculator,該程序提供 cal 方法:
public double cal(String expression); |
cal 方法接受一個算術表達式作為輸入,并返回該表達式的結果。
為了驗證該方法,我們設計了分別包含加減乘除運算的表達式作為輸入的測試用例。這些用例對應的數據池如圖 3。數據池的第一列為測試用例的名稱,同時也是數據記錄的標識,第二列為輸入的表達式,第三列則為預期的結果。
通過這個例子我們可以更好的理解數據驅動測試?;诓煌臄祿斎?,我們可以驗證待測試程序是否對各種類型的運算都能給出正確的結果。當需要增加測試用例時(比如增加覆蓋括號運算的測試用例),我們不需要更改原測試腳本,只需要在數據池中增加一條新的記錄即可。在后面的章節中我們會以此為例介紹使用不同的迭代方式來實現不同數據選擇策略的數據驅動測試。
圖 3: 為驗證計算器程序而設計的數據池
3. RFT 默認支持的迭代器——順序迭代訪問和隨機迭代訪問
原文轉自:http://www.anti-gravitydesign.com