測試腳本的獨立性

這裏討論的測試腳本指的是:使用開發工具(比如Junit)開發的測試程序,或者是用自動測試工具(比如QTP)開發的測試腳本。
 
先說兩個測試工作中常見的問題。
1、A君用Junit開發了很多TestCase,但是這些case之間有着較強的邏輯關係,比如Case#1執行過後,Case#2才能執行。於是當#1出現錯誤,#2也無法正常測試了。
2、B君用QTP做的測試腳本,每個腳本覆蓋了很多功能點,包含了很多代碼,很多的對象,當進行腳本維護的時候,發現這些代碼之間關聯性太強,維護的成本很高。
 
問題的原因就是測試腳本不夠獨立。
道理雖然很清楚,但是我們在實際開發測試腳本的時候,由於測試設計考慮的不充分,很容易把一個腳本寫的很長,而且有時爲了省事,讓一個腳本的執行依賴於另一個腳本。這些都是不可取的。當你在運行、維護這些腳本時,肯定會被上面的問題困擾。
 
因此我們要把測試腳本“化整爲零”,把每個腳本“單元化”,這裏有幾個判斷腳本獨立性的準則:
  1. 每個腳本的執行不依賴於其他任何一個測試腳本
  2. 當一次運行很多腳本時,腳本的順序可以自由組合,不存在先後順序
  3. 每個腳本所覆蓋的功能點絕不能太多,最好只有一個,或者是幾個具有較強邏輯關係的功能點
  4. 每個腳本所需要準備的測試數據,在腳本執行的時候完成準備工作,並且在腳本執行結束前把這些數據全部回收
如果把腳本做的很獨立,那是不是每個腳本都要進行初始化的操作,要做很多重複的工作呢?這個問題這樣解決,就是完善測試腳本的框架,把一些常用的操作(準備數據、回收數據、用戶登錄等)在框架裏實現,這樣測試腳本只需要關注測試業務就可以了。

原文地址:http://blog.csai.cn/user1/37581/archives/2007/20447.html


發佈了10 篇原創文章 · 獲贊 7 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章