1.步驟和數據的分離:
好的測試用例,在執行的步驟(Step)的表達上應該是盡可能和數據相分離。舉例來講,有一個ATM機取款的功能,可能有以下幾個場景:
1. 密碼正確的登錄
2. 密碼錯誤的登錄
3. 密碼輸入三次錯誤,卡被鎖定
4. 取少于余額的款項
5. 嘗試取大于余額的款項
6. 嘗試取等于余額的款項(考慮手續費)
6. 取款額度大于當次的限制
7. 取款額度大于當天的限制
7. 取款次數大于限制次數
等等
不管你用什么用例設計的方法論來做指導,作為這個簡單的例子,有經驗的人都應該能看出,此處的很多步驟是可以重用的,總結下來如下(此處只列出了操作的步驟,略去了系統的交互中的反饋結果):
(1) 插入卡->A:輸入密碼->B:按“確定”鍵->重復A-B
(2) A:選擇取款功能->B:填寫取款金額->C:點擊“確定取款”的按鈕->D:取現金->重復A-D
因此,我們只需要寫出兩套比較完整的步驟,將密碼和取款金額多數字用參數來表達即可。這樣是不是簡單了很多呢?
2. 單獨的測試基礎數據準備工作
第一個例子中的輸入數據比較簡單,但我們同樣需要考慮的一個問題是:在測試中究竟我們輸入什么樣的具體數據呢?什么是“正確的密碼”?什么又是“大于余額的款項”呢?
對于大的應用系統,數據之間的關系和準備過程都會很復雜,甚至也有其他外部系統導入、傳輸或計算出的數據。 一個比較好的做法是,將這些測試數據提前準備好,在每個階段性測試前導入到系統中。一個比較典型的例子,假設要求你單獨去測試幾張復雜的財務報表,用其他的模塊和外部系統,自己逐一的去創造數據,那會非常耗時耗力。這時,基礎數據的準備就顯得尤為重要,以此才能保證測試工作是高效的、測試結果是精確的。
如果有可能,復雜的測試基礎數據最好是提前準備好的,類似這里例子中簡單的 一個帳號為1234567890,密碼為66666的有效銀行卡,里面有人民幣1000元正,等等。將這些內容預先準備好(可以用自動化工具來準備,或導出已有的數據為一個SQL的腳本),寫到你單獨的測試數據準備文檔中,而不是分散到 所有使用到它的case中才去描述。
文章來源于領測軟件測試網 http://www.kjueaiud.com/