編者注:本文是基于使用IBM® Rational® Functional Tester for Java™和Web 6.1以及Windows XP Professional SP2進行編寫的。代碼范例將使用Java語言,但是所有概念也同樣適用于Rational Functional Tester的.NET版本。
抽象、封裝,以及其它計算機科學術語
我通常不會大量使用術語,但是由于模塊化框架是基于一些計算機科學基本原理的,所以看起來我們要花一些時間來談論這些基本原理。一個模塊化框架的第一個基本原理是,努力嘗試在一個時間關注于一個邏輯功能塊,也稱作為抽象。使用抽象,您可以減少和排除一些細節,不用立即關聯到您要進行編碼的功能上。在模塊中,您要關注于將控制從您的測試用例中分解出來。通過控制,我的意思是被測試應用程序中的用例流和功能。對比數據驅動的框架(本系列中所涵蓋的下一個框架),在那您更加關注于將數據從您的測試用例中提取出來。而控制的抽象就是活動的抽象。
模塊化框架的第二個基本原理與抽象緊密相關。這就是封裝的基本原理。在封裝中,您要將關系緊密的程序元素(腳本、類等等)放在一個更大的、更抽象的實體(其它腳本和類)中。封裝為您提供了將相關聯的任務和操作集成在一起的技術。它也通過提供一個穩定的接口來為您保護您的腳本免受程序變更的影響,此接口能夠隱藏您的腳本所執行的實際操作。這是一類隱藏的信息,您將在這里保護您的測試腳本;讓它們都調用相同的腳本和類集合,這樣在您需要進行變更時,這些變更將自然地對您的所有測試腳本生效。
模塊化框架的第三個基本原理關注分離。關注分離是將一個程序分解成在功能上盡可能少重疊的獨立特性。這個基本原理在您執行封裝時會給您提供指導。通常,在您計劃如何為被測試應用的特性和行為進行分離和組織測試代碼時,您將會使用關注分離這個基本原理。
在本系列的三個框架中,模塊化應當是最容易理解和掌握的。以上描述的這三個基本原理是眾所周知的編程方法,并且今天的大多數開發人員在使用它們時甚至沒有積極地思考過。模塊化框架的目標就是通過應用這些基本原理,以改進您的自動化測試套件的可維護性和可擴展性。讓我們看一下模塊化的幾個簡單例子,然后我們將返回來,討論一下有關這種方法的優勢和劣勢。
使用一個類來實現模塊化
在這個例子中,我們將使用對www.BookPool.com的一個測試。在列表1中所顯示的記錄腳本啟動了訪問BookPool.com的瀏覽器,搜索有關軟件測試方面的書籍,并驗證應當在第一個返回結果頁面中的三本書。
列表1.記錄的BookPool.com搜索腳本
在我查看這段測試腳本時,我看到了某些我想要能夠在許多其它腳本--執行一個搜索(圖1)--中做的東西。有三行代碼用于搜索:在qs域上的點擊,用于我們的搜索標準的inputChars,以及在搜索按鈕上的點擊。
圖1:BookPool.com搜索表單
我們知道,有可能開發人員某天會修改qs域的名字,或者他們可能使用一個搜索按鈕的不同gif文件,您應當創建一個模塊為您做這件事情。使用這種方式,如果您在某一時間必須修改您搜索的方法,您可以在一個地方修改它,它會在您所有調用該模塊的測試腳本中生效。除此之外,您在您所有的測試腳本中,減少了執行一個搜索的代碼行數量,從三個減少到一個。
列表2顯示了此搜索模塊的代碼。
列表2.BookPool.com搜索類
列表3.顯示了新的測試腳本:
列表3.模塊化的BookPool.com搜索腳本
|
這和創建一個搜索類并復制和粘貼搜索代碼相比,并不完全一樣簡單(就像上面的代碼所體現的)。我也必須更改腳本的幫助類。如果您注意到列表3,現在有一個bookpoolHelper類代替了原來的bookpool_search_recordHelper類。這個步驟是一個簡單的復制和粘貼。我們在新的bookpoolHelper類中所有必須修改的就是類的名字。如果您不熟悉IBM® Rational® Functional Tester中幫助類的概念,您需要花一些時間閱讀在線幫助來熟悉它們。除了特別細節的任務描述,您將需要理解那里所有的內容。
要繼續這個例子,您現在可以增加您想要的類。您可能要增加一些類,處理主頁左邊上的BookPool.com的瀏覽樹。然后,所有這些類可以用到任何腳本中。所有您必須做的就是,在您增加更多的測試腳本和覆蓋更多的程序功能時,確保更新bookpoolHelper類。
共3頁: 1 [2] [3] 下一頁 |