• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    軟件測試中如何提取一個測試層次結構

    發布: 2010-8-24 09:32 | 作者: 網絡轉載 | 來源: 領測軟件測試網采編 | 查看: 86次 | 進入軟件測試論壇討論

    領測軟件測試網

    軟件測試中如何提取一個測試層次結構

    問題:如果有多個共享一些通用對象的測試模塊,這些對象在用于實現測試模塊的幾個TestCase類中式重復的。你想要復用這些對象,而不是復制它們。

      情景:

      這個問題在編寫客戶端或端到端測試的時候尤為常見——就是那些為整個系統而不是為某個類所做的測試。偶爾Junit用戶——那些幾乎完全依賴 JUnit作為測試驅動的開發工具的人——會忘記那些從來不使用Junit的、非測試驅動程序員,因為JUnit提供了一個易于使用的Java框架來編寫測試程序。說這些是因為一個測試驅動的程序員會說:“如果你有一個這么大的測試模塊,那你的測試代碼就太大了,必須要修改測試代碼使其只專注于系統的一個方面。如果你這樣做了,那問題就會得到解決”。其實說的沒錯,可是這話是典型的數學家的語言:專注,精確,然而毫無用處。

      如果能夠精簡測試模塊或者能夠找出其中沒有被所有測試所共享的部分,那就更好了:我們更喜歡簡單的測試用例層次結構。如果已經無法將事情簡化——或者是看不出該如何做--那也至少應該試著將通用的測試模塊移到一個地方。

      技巧:

      解決這個問題的技巧說來很簡單:盡管編寫的是測試程序,但它們還是用方法和對象實現的,所以將其當作方法和對象來看待。一個從一組類中抽取重復行為的辦法是,應用抽取超類的重構方法創建一個類層次結構。具體步驟如下:

      1. 選擇兩個有通用測試模塊的測試用例類。

      2. 創建一個新的TestCase的子類,它是有重復的測試模塊的測試用例類的超類。在這里,我們將這個新類叫做BaseFixture,這個是各人自己取的。

      3. 將BaseFixture類聲明為抽象類,沒有必要創建這個類的實例。

      4. 修改測試用例類代碼,使其繼承自BaseFixture而不是直接繼承TestCase。

      5. 將重復的測試模塊復制到BaseFixture中——就是說,復制參數域和setUp()方法中初始化參數域的代碼?赡苄枰薷膮涤,將其聲明成受保護的而不是私有的,否則測試用例類就不能使用它們?梢詫涤蚍庋b在一個受保護的get方法里面,但是在這個例子中我們覺得沒必要這樣做。

      6. 從每一個測試用例類中刪除測試模塊參數域,從setUp()方法中刪除已經移到BaseFixture中的代碼。

      7. 在每個測試用例類的setUp()方法的開始加上一行super.setUp()。

      8. 現在可以重新編譯運行此測試程序,來驗證其行為并沒有改變?梢詫ΡM可能多的共享通過測試模塊對象的測試用例類重復上述步驟。

      另外在驗證了做完上述步驟沒有帶來任何問題以后,要看看那些setUp()方法中是否可以刪除一些空的或只有一行super.setUp()的方法。

      討論:

      可以將這個訣竅歸結為:“抽取測試用例類的超類,將其聲明為抽象的因為沒有理由去實例化它!

      1. 通過將重復的測試代碼移到一個超類中來消除重復性事一個好主意。

      2. 在重復代碼出現之前,我們一般想不到它。

      最后有個地方要注意:必要的時候調用方法super.setUp()和super.tearDown()。從TestCase類直接派生子類的時候,并不需要擔心這些,因為超類的實現中什么也沒有做;但是現在你的超類的每個方法的實現中都可能有很重要的部分。這是一個常犯的錯誤——一個我們所有人都會犯的錯誤,并將持續到我們的編程生涯的結束的那一天——所以不必為此感到難過。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: 結構 軟件測試


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>