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

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

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

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

    追求代碼質量: 用 AOP 進行防御性編程

    發布: 2008-6-13 14:39 | 作者: 不詳 | 來源: 測試時代編輯整理 | 查看: 57次 | 進入軟件測試論壇討論

    領測軟件測試網

    開發人員測試的主要缺點是:絕大部分測試都是在理想的場景中進行的。在這些情況下并不會出現缺陷 —— 能導致出現問題的往往是那些邊界情況。

    什么是邊界情況呢?比方說,把 null 值傳入一個并未編寫如何處理 null 值的方法中,這就是一種邊界情況。大多數開發人員通常都不能成功測試這樣的場景,因為這沒多大意義。但不管有沒有意義,發生了這樣的情況,就會拋出一個 NullPointerException,然后整個程序就會崩潰。

    本月,我將為您推薦一種多層面的方法,來處理代碼中那些不易預料的缺陷。嘗試為應用程序整合進防御性編程、契約式設計和一種叫做 OVal 的易用的通用驗證框架。

    下載 OVal 和 AspectJ
    要實現本文中描述的編程解決方案,需要下載 OVal 和 AspectJ,F在請從 參考資料 中下載這些技術,并照著那些例子做。

    將敵人暴露出來

    清單 1 中的代碼為給定的 Class 對象(省去了 java.lang.Object,因為所有對象都最終由它擴展)構建一個類層次。但如果仔細看的話,您會注意到一個有待發現的潛在缺陷,即該方法對對象值所做的假設。


    清單 1. 不檢驗 null 的方法
    public static Hierarchy buildHierarchy(Class clzz){
    
     Hierarchy hier = new Hierarchy();
     hier.setBaseClass(clzz);
     Class superclass = clzz.getSuperclass();
    
     if(superclass != null && superclass.getName().equals("java.lang.Object")){
      return hier; 
     }else{      
      while((clzz.getSuperclass() != null) && 
        (!clzz.getSuperclass().getName().equals("java.lang.Object"))){
         clzz = clzz.getSuperclass();
         hier.addClass(clzz);
      }	        
      return hier;
     }
    } 

    剛編好這個方法,我還沒注意到這個缺陷,但由于我狂熱地崇拜開發人員測試,于是我編寫了一個使用 TestNG 的常規測試。而且,我還利用了 TestNG 方便的 DataProvider 特性,借助該特性,我創建了一個通用的測試用例并通過另一個方法來改變它的參數。運行清單 2 中定義的測試用例會產生兩個通過結果!一切都運轉良好,不是嗎?

    延伸閱讀

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

    TAG: aop AOP 代碼 質量 防御性


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