自動化測試是一個復雜的工作,隨著該領域的快速發展,雖然其熱度獲得了快速提升,但,但在體系和規模建設方面還相對落后,關鍵是大家對其的定位,很多公司以及很多人都知道做好自動化測試不簡簡單單的靠一個工具,而更需要一個框架,但其總是對“自動化測試框架”缺乏清晰的定位,很容易將其定位成了一個固定的框架。中培偉業《軟件自動化測試與持續集成最佳實踐》培訓專家陸老師指出,自動化測試框架不是一個模式,而是一系列思想的集合,是將各種自動化測試框架思想集合應用去搭建成的一個分層組織。
1、所謂模塊化思想,就是將一個測試用例中的幾個不同的測試點拆分并且將其單個點的測試步驟進行了封裝,形成了一個模塊。
例如:一個測試用例要對一個登錄程序進行測試,其中包括:用戶名輸入、密碼輸入、以及確定登錄;
那么就可以將用戶名輸入、密碼輸入、確定登錄、取消登錄四個操作分別封裝在四個不同的模塊中。測試時,只需調用其模塊即可。這樣的話,當一個模塊有變化,你只需單獨維護那個模塊即可,也可以根據模塊的不同組合成不同的測試用例。
2、所謂測試庫思想,就是模塊化思想的升華,其為應用程序的測試創造了庫文件(可以是APIs、DLLs等),這些庫文件為一系列函數的集合。其與模塊化思想不同的是,其拓展了接口思想,即可以通過接口去傳遞參數,而不是一個封死的模塊,可以說是一個多了一個“門”的交互型模塊。
例如:還是以上那個測試用例,只是將用戶名輸入、密碼輸入、確定登錄、取消登錄封裝成一個庫,這個庫含有一個函數Login,這個函數Login接收兩個參數“用戶名、密碼”,對輸入不同的用戶名和密碼可以進行不同的測試用例。也可以另外一個函數Cancle。
3、所謂數據驅動思想,眾說紛紜,很多人都覺僅僅依靠用EXCLE表進行不同數據的讀取僅是一個高級的參數化,其實怎么理解并不重要,關鍵是其思想能夠好的應用到你的框架中。而我的理解就是變量不變,數據驅動結果,不同的數據導致了不同的結果的產生。而對于數據的導入,可以通過很多方式,例如:EXCLE表、XML(用在WEB中)、數據庫(DB)、CSV文件、TXT等都可以。
4、所謂關鍵字思想,這個思想,我曾經一直思考,它與面向對象的關系,與交互模塊化思想的區別。后來個人理解,其實關鍵字驅動就是一種面向對象的思想,例如:QTP、RFT中,對象可以為一個數據或者一個關鍵字,對對象的抓取,可以將其測試對象封裝為一個關鍵字(即可以將gui元素封裝成了一個個關鍵字),這樣可以對其關鍵對象進行各種操作了,不同的對象可以驅動不同的測試流向與結果。
簡單的應用的方式可以用一個EXCEL表,里面包括“對象類型”“對象名稱”“對象操作名稱”“判斷方式”“預期結果”。這樣的話,可以通過導入不同的對象類型和名稱、不同的對象操作來構建成了一個測試用例表了。
以上只是對這些思想的個人理解,做好自動化測試,不是說你掌握了一個框架,而是要掌握其自動化的思想,然后根據這些思想,結合你不同的測試環境和流程來構建你自己的自動化測試框架。