用Visual Basic 6.0實現自動化測試
最後更新:2017-02-28
來源:互聯網
上載者:User
visual 摘要:本文探討了Visual Basic 6.0在測試自動化中應用的可能性,並列舉了一些在實際工作中應用的例子
一 現有自動化測試載入器的不足
當前,一個擺在軟體測試自動化面前的一個很明顯的事實是目前可用的工具並不能做一切我們想要它們做的事情;指望任何一種工具能夠完全支援眾多不同應用的測試自動化是不現實的。由於很難找到一個能完全滿足測試自動化需要的測試載入器,而且測試自動化工具都十分昂貴,所以常用的做法是使用一種主要的自動化測試載入器,然後用傳統的程式設計語言如Java, C++ 和 Visual Basic編寫自動化測試指令碼以彌補該工具的不足之處。
二 Visual Basic 應用於自動化測試的優點和局限性
利用Visual Basic之所以能實現一些比測試自動化工具更好的功能的原因在於它畢竟是針對實際的項目而編寫測試指令碼,而且,事實上Visual Basic確實存在比其他程式設計語言更明顯的優點可應用於測試自動化項目。
眾所周知,Visual Basic 不是一種測試載入器,但它是一種非常流行的軟體開發語言;使用Visual Basic最大的好處是它是一種非常流行的語言,它簡單、易學易用和有非常廣泛的懂得Basic語言的使用者群基礎,即使對不熟識Visual Basic 的測試工程師,要熟悉它也可以輕易找到大量有關的出版物和資料。
Visual Basic本身擁有一些能支援測試過程的特性,例如,它具有返回有關測試平台和被測應用程式的重要訊息的功能。Visual Basic 的Shell函數和SendKeys函數可以啟動一個應用程式和操作它的圖形化使用者介面,用Visual Basic可以編寫所需要的一些指令碼程式,例如,裝載一個測試應用程式。Visual Basic中整合的可視化資料管理器可以直接連接一個資料庫並查看它的資料結構。此外,Visual Basic 還可以用來測試一些後台操作的應用程式,例如,可以編寫一些指令碼存取初始設定檔案(.ini檔案)和Windows註冊表。從Visual Basic 中訪問Windows 的應用程式介面(API)對操縱受測應用程式和報告一些重要訊息都是非常有效,而且Visual Basic語言比當前其他的程式設計語言花更少的時間去掌握和有更高的編程效率,適合要求快速建立測試指令碼的測試自動化工作需要。
由於Visual Basic不是一種專業的測試載入器,因而有其局限型,首先它不包含目前已經成熟的自動化測試載入器所具有的大部分的功能,例如,Visual Basic本身不提供缺陷報告、測試設計和文件管理等功能;它還缺乏錄製功能和任何自動化測試設定,要在Visual Basic 測試代碼中包含這些功能,需要手工編寫這部份功能代碼,而且目前大部分有關Visual Basic 的出版物和資料都是針對開發人員而不是測試者。雖然如此,依然有一些不需要很多的投入而使Visual Basic應用於自動化測試專案的基本方法。
三 Visual Basic中支援測試自動化的工具集
Visual Basic 6.0 包含一套不需任何編碼就能支援測試的工具集,包括豐富的嚮導,可視化資料工具和物件瀏覽器等。
1嚮導和模板
在Visual Basic 中有眾多的嚮導可以使用。其中一個對測試人員非常有用的嚮導是資料表單嚮導,它可以建立一個能串連Access或ODBC資料庫的資料視窗,該資料視窗可以設定成單獨地查看單個記錄或者用表格形式批量瀏覽資料記錄,因而可以實現一個能快速定製而又便於使用的用來檢查資料庫內容的測試載入器。
表單模板不但可以快速建立一個標準的視窗,而且能同時伴隨著這些視窗產生原始碼,這些自動產生的代碼可以部分或全部應用到為測試而定製的視窗中,這對提高測試效率是非常有效。
此外,一些其他的嚮導如資料對象嚮導,ActiveX 控制項視窗嚮導都可以實現花費最少的編碼工作量去建立和配置一些有用的測試對象。
2可視化資料管理器
可視化資料管理器可以快速地串連到ODBC或OLEDB資料來源,去查看資料庫結構,資料表,視圖和其他基本的對象。通過它去檢查後台資料庫實現資料庫應用程式測試。也就是說如果被測應用程式套件組合含一個在SQL Server,Sybase ,Oracle和 Access的資料庫,則可以通過可視化資料管理器去檢查所有的這些資料庫而不需要分別登入DBMS介面。通過Visual Basic作為一個通用的前台資料庫管理員去管理一個用ODBC或OLEDB存取的後台資料庫,可以節省測試工程師的測試時間和可能花在熟悉這些資料庫產品而花的培訓時間。
可視化資料管理器通過資料庫輸入和測試SQL語句支援白盒測試。利用它可以修改後台資料,甚至建立新資料對象如資料表,預存程序和資料檢視。一些被用來測試資料的SQL語句(通常用來檢索重複的資料行和暴露有關完整性的缺陷)甚至必要時可以在這裡建立和執行。
3 Object Browser物件瀏覽器
物件瀏覽器是另一個非常有用的Visual Basic工具,通過它去檢查對象輸出的屬性和方法以及各種必要的參數;測試人員可以利用這些資訊建立這些對象的驗證性和功能性的測試,特別是對物件導向測試,非常有用而且非常有效。
物件瀏覽器可以顯示一個定製COM對象的資訊庫,這個庫列出了該對象的屬性,方法和事件,而這個對象可以用任何支援COM物件模型的語言來開發。在物件瀏覽器裡設定一個對象相關資訊的捕獲和查看對一個缺乏測試培訓的測試人員而言只需很短的時間,當然,要建立Visual Basic測試指令碼去測試對象的屬性,方法,事件需要做一些編寫代碼工作。
四 Visual Basic在自動化測試工作的應用舉例
下面列舉了一些在實際測試工作中應用Visual Basic通過簡單的編碼實現測試自動化或相關工作的例子,如記錄測試結果資訊、簡單的GUI測試等。
1 利用文字檔記錄測試資訊
例1
Open "testlog.txt" For Input As #1 ‘開啟記錄檔案
Print #1,FileDateTime(“c:\windows\calc.exe”) ‘記錄被測試程式建立的日期和時間
Print #1,FileLen("c:\windows\calc.exe") '記錄被測試程式的長度
Print #1,CurDir '記錄目前的目錄路徑
Print #1,Environ("Windir") '記錄當前Windows 目錄路徑
Print #1,Now '記錄測試開始日期和時間
……. ‘記錄測試過程資訊
Close #1 ‘關閉記錄檔案
在測試過程中經常要做的一項工作是為了尋找錯誤資訊而檢查應用程式的登入檔案,這些登入檔案通常是文字檔,而對任何程式設計語言來說利用本身基本的檔案操作函數都很容易取開啟和讀取這些檔案。而另一項工作是記錄測試過程資訊和測試結果,它實質上跟上面所說的是使用相同的函數功能:一個簡單的記錄方法是將測試結果寫進一個文字檔。例1所示的代碼就是實現了這些記錄功能。
2 GUI功能測試
例2
Shell("c:\windows\calc.exe") '啟動計算機
For i = 1 To 100 '設定計算迴圈
SendKeys I & "{+}", True '發送擊鍵動作到計算機
Next I '累加每一次I的值
SendKeys "=", True '計算總和
在黑箱測試中,實現自動化測試要編寫測試指令碼去類比使用者日常的操作輸入。使用Visual Basic的Shell函數和Sendkeys函數可以簡單有效地實現一些GUI功能測試。
例子2的所示代碼開啟了一個Windows計算機,然後發送擊鍵動作類比使用者輸入,計算一系列數值(1到100)的總和;啟動程式調用Visual Basic的Shell函數,SendKeys指令被用來發送擊鍵動作到應用程式去類比使用者輸入和計算結果。
3讀取和設定註冊表資訊
例3
Dim astrSettings() as string ‘定義變數
lstSettings.Clear ‘清除列表框內容
astrSettings = GetAllSettings(testAppname, txtSection) ‘調用專用函數返回VB
‘專用位置的註冊表資訊
For iCount = 0 To UBound(astrSettings) ‘通過迴圈將註冊表資訊
‘顯示在列表框中
lstSettings.AddItem astrSettings(iCount, 0) & ": " _
& astrSettings(iCount, 1)
Next iCount
註:testAppname是被測試應用程式的名稱
測試人員很多時候都要檢查註冊表,註冊表是一個儲存應用程式安裝設定、選項等重要訊息的地方。Visual Basic 6.0 包含了一些可以從預留給Visual Basic 應用軟體專用的註冊表索引值位置返回資訊的新的功能函數。這些功能函數簡單地設定和返回這些註冊表索引值,這對測試用Visual Basic 開發的應用程式尤其有用。
例子3所示代碼返回註冊表中位置"HKEY_CURRENT_USER\VB and VBA Program Settings\"中的所有註冊表資訊並把這些資訊顯示在一個名為lstSettings的列表框中。如要存取其他位置的註冊表資訊,需要調用Windows API函數。
五 小結
由此可見,為彌補當前自動化測試載入器的不足,選擇用一些編程開發語言編寫一些測試指令碼或測試協助工具輔助在實際工作中證明是切實可行的,而Visual Basic 6.0由於其強大的功能,易學易用,有廣泛使用者群基礎等優點而成為應用於測試自動化比較有應用前景的工具之一。
參考書目
1 《軟體測試自動化技術》美 Mark Fewster & Dorothy Graham 著,電子工業出版社 2000年1月
3 《軟體工程---實踐者的研究方法》(美)Rgoer S.Press著,機械工業出版社,2000年9月
2 《Visual Bsaic 6 技術內幕》(美)Steven Holzner著,機械工業出版社,1999年4月