軟件測試中使用QC和QTP構建自動測試體系
自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。通常,在設計了測試用例并通過評審之后,由測試人員根據測試用例中描述的規程一步步執行測試,得到實際結果與期望結果的比較。在此過程中,為了節省人力、時間或硬件資源,提高測試效率,便引入了自動化測試的概念。
如果要搭建自動測試體系,需要完成以下幾個工作:
1、規范測試腳本的配置管理
2、制定測試腳本的編碼規范,QTP腳本還要制定對象倉庫和VBS的規范
3、創建自動測試實驗室,通過控制臺指揮各個測試機分布式執行腳本,并集中收集測試結果
4、健全測試腳本的維護機制,腳本責任到人
下面先講一下第一點:腳本的配置管理,因為QTP本身提供了和QC集成的功能,使用QC作為配置管理工具非常合適,而且在組建測試實驗室的時候,QC也有很強的優勢,后面會講到。
只要利用QTP的QC連接功能,就可以直接把Test、對象倉庫等資源保存在QC服務器上,這里我主要講一下QC的目錄分類管理。在根目錄下可以建一個common目錄,里面主要存放vbs腳本文件,這些腳本文件提供了各個Test需要調用的公共方法,比如和數據庫交互。
然后在根目錄按照功能模塊的名稱建立文件夾,下面保存每個功能模塊的所有Test和資源。建議每個功能模塊目錄下面建三個大目錄,分別是framework、主要流程、功能點。
framework里面保存對象倉庫文件和此功能Test私有的vbs文件;“主要流程”和“功能點”保存測試腳本也就是Test!傲鞒獭崩锏拿總Test,都覆蓋了一個完整的、正常的、獨立的流程,Test的名稱就是流程的名稱,比如“注冊用戶”、“發布新帖子”。注意不要一個Test包含多個流程!肮δ茳c”中每個Test只覆蓋一個功能點,比如“檢查用戶是否已存在”、“密碼長度不能小于6字節”?傊,每個Test要做到獨立,請參考這篇文章:
《測試腳本的獨立性》
我們只要執行了“流程”的Test,就能保證基本的功能OK。但是這還遠遠不夠,還有一些重要的功能點需要覆蓋。其實我們的測試腳本并不需要覆蓋100%的功能點,根據28原則和我們的歷史經驗,大部分的bug都是集中在那一小部分(大約20%)主要的功能點中。我們的腳本要以這些功能點為主。當然,以后在回歸過程中,如果需要增加功能點的Test,就直接在這個目錄下新建Test即可,這一點非常重要,通過對功能點Test的不斷積累,就能讓我們的自動測試越來越完善。而流程的Test一般改動不多。
關于第二點測試腳本編碼規范,本文不做詳細介紹。大家需要注意的是,測試腳本就是我們的測試代碼,是代碼就需要編碼規范。如果要實現一個團隊的合作,必須有規范。關于對象倉庫的規范,請參考這篇文章:
《管理QTP測試腳本的對象倉庫》
構建測試實驗室的工作是比較開心的,我們可以準備一批PC作為測試機,也可以購買配置較好的服務器,安裝虛擬機,將虛擬機作為測試機。關于QC遠程調用QTP的相關設置,請參考這篇文章:
《QC遠程調用QTP》
通過以上的工作,技術問題基本解決了,我們還需要管理流程,來保證測試體系的健康。這里我只講一點:測試腳本責任到人。比如A君負責幾個模塊的自動測試,那么他需要做什么呢?這里總結了幾點:
1、主要流程的腳本編寫
2、確定主要功能點的范圍和組織團隊成員編寫腳本
3、保證QC中的腳本始終可用
4、如果需要增加功能點的Test,需要他來跟蹤并保證腳本質量
5、當腳本出現問題時負責解決問題
負責人并不需要完成所有的腳本編寫工作,他可以組織大家一起做,但是他需要保證腳本庫的健康,最好也能保證腳本的編碼規范。
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/