自動化測試,個人以為,很重要的兩個方面:一是能夠做到無人值守的情況,自動化測試過程能夠順利進行。二是能夠做到有詳細的結果報告。將其具體在細節上分,則有幾個重要的部分,一是:自動化測試用例的組織管理。二是:自動化測試的執行方式。三是:自動化測試對異常的處理。四是自動化測試的日志。五是自動化測試的報告反饋形式。接下來,結合RFT來從技術實現上說明自動化測試細節的設計之道。
一、自動化測試工具的應用方向
個人覺得,RFT的優點就在于其豐富和開放的API,你完全可以基于這些API,脫離RFT的IDE,因此,最好的方式是盡量將RFT提供的功能進行刪減。
個人認為:伴隨著這么些強大工具的推出,為什么還有好多一些公司的自動化測試一直不能規?;?,究其原因是因為自動化測試的具體“戰術”是根據環境變化的,而自動化測試工具設計的時候只是為了做出一款集成的測試工具,是根據工具設計人員對自動化測試理念設計出來面向大眾的,大多中小公司拿到工具之后,以自動化工具為中心去做自動化測試,而漸漸脫離了做自動化測試的本質。
所以,做自動化測試,需以公司需求為中心,盡量將自動化測試工具給拆離(拆離的方法便是從底部開始,例如RFT,就可以從其API入手),然后將其滿足需求的部分應用到自身的自動化框架中。
二、自動化測試框架重要方面簡述
其重要方面,一為執行無人值守;二為結果定位準確。
其實,自動化測試,個人認為,分為兩種情況:一是輔助手工測試;二是回歸版本測試。第一種情況就是在手工測試的執行過程中,有一些重復的測試步驟或者很繁瑣的步驟(做自動化比手工測試執行的時間和效率高),這種自動化測試其實也可以認為是半自動化測試,它主要是幫助測試人員解決一些無味的工作。第二種自動化測試可以俗稱為“例行測試”,它必須做到無人值守的情況下執行,其主要作用是回歸版本,加速產品發布速率,并且保障產品質量。因此在這種測試過程中,其結果的定位尤其重要,在例行執行完畢之后,需要有一份總的結果報告,并且有問題的情況下能夠根據LOG記錄詳細定位問題。
三、自動化測試框架的具體細節設計
這是自動化測試框架設計很重要的一個方面,管理的方式可以通過“EXCEL表、CSV文件、數據庫等”,然后應用“自動化測試框架執行引擎”去解析“自動化測試用例表”去執行自動化測試。而其中自動化測試用例表中可以依靠一些關鍵字對自動化測試用例的執行方式和狀態進行定義和查看。
2、自動化測試執行方式
通過“執行引擎”去解析自動化測試用例表,根據其用例表的“執行狀態”的關鍵字判斷其是否需要執行。并且下一個測試用例的執行還需要讀取上一個用例的“完成狀態”為“完成”之后,才執行,否則,一直處于等待過程。
3、自動化測試對異常的處理
自動化測試過程中往往會出現一些異常造成自動化測試過程的中斷,因此如何去處理這些異常,保證自動化測試的不間斷執行,個人設計的方式是:在具體的測試用例中加入異常判斷處理(try-catch),然后判斷過程為只要抓到Exception,測試過程則會關閉整個測試過程,并且在“自動化測試用例表”中將相應的“測試完成”狀態置為“完成”,將“測試結果”置為“失敗”,并且進行下一個測試用例。
4、自動化測試日志
RFT的日志反饋太過于凌亂,并且不好與自動化測試框架的結合,因此,個人認為,可以將其日志去掉,建立自己的LOG機制,在每個方法中設計其LOG的輸出,而當遇到異常時,則進行異常的輸出,這樣的話,就能夠從全局上把握其測試的結果了。
5、自動化測試結果
對于結果的查看,可以在“自動化測試用例表”中進行統一查看,由關鍵字“result”定義,若有錯誤的,則再根據具體的日志去定位問題。
總之,以上只是一些自動化測試設計的細節想法,當然,一定還有人有更好的方式,希望能夠共同探討。但是,個人堅信,工具本身是為測試需求服務的,所以,大家一定要警惕自動化測試工具的陷阱,不能陷入以“自動化測試工具”為中心的漩渦中,而要以自身的自動化測試框架為中心,將自動化測試框架插入其中,這樣你才能做到“收發自如”。
順便一句:其實我們的人生又何嘗不是這樣呢,吾以為:人生的最大追求為能夠掌握自己的內心,真正做到“收發自如”,但若限制太多,抓不住本質,又何能做到此呢。
正所謂:
花開花謝,云卷云舒,靜看日出日落,臥聽雨滴天明
以何吾能達此狀態矣?吾問吾心,答曰:自然而為之~
與君共勉之…
原文轉自:http://www.anti-gravitydesign.com