標籤:style http color os 使用 ar java for strong
?
|
Clayton Neal在軟體測試和品質保證方面有超過13年的經驗,其中有八年的Windows, web,和行動裝置 App程式的測試自動化經驗。他在測試領域的所有等級都工作過。最近他在Bloomberg and Misys擔任QA經理。同時他還是Sogeti的自動化測試顧問。Clayton對自動化測試超迷戀,還見識了如何親自成功實施測試自動化。 |
?
測試自動化的好處我們都很清楚,更快地反饋問題,減少手工測試,持續整合就是其中隨口可舉的。測試團隊成員越多,公司使用自動化越多,就越好。為此,我們必須脫離實施測試自動化的技術方面,而去考慮編寫和運行自動化測試的非技術員工層面。無論Team Dev是否在做敏捷接受度測試驅動開發(ATDD),敏捷行為驅動開發(BDD)或使用傳統的瀑布方法,團隊可用來進行自動化的成員越多,自動化測試覆蓋範圍就越廣。
關鍵字驅動測試是一種由自動化工程師開發被測應用程式內可重複使用行為的方法。然後非技術使用者就可以用任何輸入參數將所得的可重複使用的關鍵字行為庫進行排序,確定測試案例。比如,一個關鍵字可以是點擊按鈕(在一個按鈕控制項上點擊)或輸入文本(在一個文字框控制項中輸入文本),然後這些關鍵字就可以被用來填寫一個登入表格並點擊 OK按鈕。該方法的好處是:自動化工程師集中幹他們擅長的,即開發關鍵字的測試自動化的指令碼或編程;非技術測試員和企業使用者使用這些關鍵字並基於他們的領域和產品知識來編寫測試案例,最後使得自動化更加有效。
?機器人架構是一個一般的基於關鍵字的測試自動化架構,它不依賴於任何一個特定的自動化工具(如:QTP, Ranorex, TestComplete, Selenium等),卻讓自動化工程師插入用這類自動化工具的關鍵字。機器人已經安裝了許多關鍵字並擁有一個非常成熟的功能集,包括:關鍵字的條件執行
? 測試案例和測試集的[setup]和[teardown]
? 資料驅動關鍵字檔案,目錄及流程管理的FOR迴圈
? HTML測試報告
?詹金斯CI整合將變數變為一個關鍵字並從測試案例關鍵字的關鍵字標註返回
?最後列出的功能即能夠在現有關鍵字上建立關鍵字,確保1所示的“關鍵字金字塔”的增長。
金字塔最底層是由自動化工程師開發的技術關鍵字構成:最頂端是應用程式內進行單個功能行為的功能關鍵字:最後,我們將基於功能關鍵字的商務程序關鍵字總結為在應用程式內構建商務程序。這種分層的一個例子如表1所示。
表1. 關鍵字分層
這裡,技術關鍵字是基於運行帶有展示控制項的自動化行為;功能關鍵字在應用程式中運行單個功能步驟;更高層的商務程序測試應用程式內端到端的流程。
即用機器人架構可以從Python和Java庫中載入新的關鍵字;為了使用在.NET中開發的關鍵字,就要利用遠程服務介面。該介面是XMLRPC介面,機器人架構在上面給一個遠程服務發送請求,執行一個關鍵字。當然這種遠程服務可以用任何一種支援XMLRPC的語言來開發。尤其是,一個遠程服務可以用.NET開發讓機器人架構執行關鍵字裝配中的基於.NET的關鍵字。這個方法2所示。
圖2. 遠程服務結構圖
N機器人遠程(見http://code.google.com/p/nrobotremote/)是一個可以建立.NET關鍵字庫並通過XMLRPC協議將之公開給機器人架構的.NET機器人架構遠程伺服器。結合了N機器人遠端機器人架構可以讓最初的自動化工作用來計劃哪些測試需要被自動化以及這些測試需要開發什麼關鍵字,而不是在自動化測試計劃可以開始前設計編寫一個自動化架構。為N機器人遠程開發.NET關鍵字僅僅就是開發一個公開方法的類。每個方法都被視作一個關鍵字——例如:
該關鍵字類公開了兩個關鍵字:ClickButton和EnterText。通過在N機器人遠程中建立關鍵字類並把機器人架構指向XMLRPC地址,這些都可以用選擇的自動化測試載入器實現且可以通過機器人架構來調用。3所示。
圖3.使用N機器人遠端機器人架構測試案例
在上面這個例子裡,設定一列告訴機器人架構,http://localhost:8271上有一個遠程關鍵字服務(注意:除了本地主機,也可能是在另一機器上),且來自遠程伺服器的關鍵字將有首碼N機器人遠程(任何首碼都可以)。測試案例一列則定義了一個叫做管理員登入的測試案例,調用關鍵字EnterText去輸入使用者名稱和密碼,關鍵字ClickButton去點擊OK。這樣一個測試有可能是在開發早期一個非技術測試員或企業使用者所寫的。關鍵字庫本身可以被視作被測應用程式的領域模型之上的薄薄一層。比如,如果使用selenium頁面對象,那麼關鍵字層就可以4所示,按順序調用頁面對象和方法。
圖4. 關鍵字和域層
這種抽象概念在被測應用程式變化時提供了靈活性,經常,當應用程式變化時,只有領域模型和關鍵字實施隨之改變。測試案例實施並不需一直不變,因為它建在更高層。使用機器人架構和.NET關鍵字也可以使不同的自動化工具在測試案例水平彼此整合,讓自動化工程師可以靈活地為所需關鍵字行為選擇最佳自動化工具。例如,如果在一家更大的公司,幾支自動化團隊已經被選去使用針對不同產品模組的不同自動化工具,每隊就可以用他們各自的開發語言為其模組開發一個領域模型,如機器人架構可以載入Python,Java和(通過N機器人遠程).NET關鍵字。測試案例編寫者也同樣可以在他們的測試案例裡使用來自所有自動化團隊的關鍵字。
總結
通過允許非技術使用者在開發各個階段編寫測試案例,將自動化行為從抽象變為可以傳給非技術測試員和業務使用者以減少自動化工程師的瓶頸的可複用關鍵字。機器人架構,作為一個成熟的一般性的關鍵字架構,允許自動化項目一開始集中研究自動化測試和所需關鍵字,而不是設計並實施一個測試架構。使用機器人架構和N機器人遠程將關鍵字測試自動化擴大到.NET,允許關鍵字利用.NET架構和.NET中自動化工具的優勢,並允許把來自Python和Java的關鍵字與相同的測試案例相結合。
著作權聲明:本文出自 SPASVO澤眾軟體測試網:http://www.spasvo.com/news/html/2014101194841.html
原創作品,轉載時請務必以超連結形式標明本文原始出處、作者資訊和本聲明,否則將追究法律責任。
?
帶有機器人架構的.NET自動化測試