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

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

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

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

    JAVA測試模式

    發布: 2008-7-15 15:24 | 作者: 不詳 | 來源: www.51testing.com | 查看: 47次 | 進入軟件測試論壇討論

    領測軟件測試網
    關鍵字:JAVA測試
    測試模式是一種針對軟件測試領域的某種高頻率出現問題而采取并經過實踐證明行之有效的專門化、高效的解決途徑(方法),它在軟件理論和實踐兩者之間起著 “ 橋梁 ” 的作用。在面向對象語言 JAVA 程序測試的過程中,一個較為棘手的問題就是 JAVA 的可視性問題。 “ 信息隱蔽 ” 固然是面向對象語言設計的一個突出的優點,但是同時也給測試帶來諸多不便,有關 “ 隱蔽信息 ” 的可測試性成為這類測試的一大突出結癥。為此我們針對 JAVA 類不同的 “ 可視性 ” 要求的場合,采取相應的測試模式來支撐相關 JAVA 類(包)的測試。本文主要總結五個常用的 JAVA 測試模式,以饗讀者。這五個模式同樣適合于其它面向對象類(包)的測試,只不過在具體細節上要考慮與 JAVA 語言信息隱蔽性的差異。比如: JAVA 的可視性以包為界,同一個包內的類對其他類具有相同的存取權限。而 C++ 則以類為界,只有子類和友員函數方可對基類的隱蔽信息進行存取。 

    我們在下面以圖表的方式給出 五個常用 JAVA 測試模式詳細描述,有關模式的描述類目分別是模式名稱、測試對象、針對問題、約束條件、解決方法、實例、約束解決方式和該測試的設計原理。 

    模式(一) Main 模式 

    模式名稱 
     Main 
     
    測試對象 
     JAVA 類 
     
    針對問題 
     測試人員不知道在何處編寫驅動和初始化被測試類的測試代碼 
     
    約束 
     測試必須容易運行、測試代碼能夠訪問該類所有的特征(所有的屬性和方法) 
     
    解決方法 
     將測試代碼放入類的 public static void main(String[] args) 方法中去 
     
    實例 
     public static void main(String[] args){ 

    SomeClass result; 

    // perform the test… 

    System.out.print(“result is..”); 

    }
     
    約束解決 
     該測試代碼能夠率先被激活和執行、并能夠訪問被測試類所有的特征 
     
    設計原理 
     JAVA 類可以擁有 public static void main(String[] args) 方法,它是類在 JVM 中被率先執行的方法,控制著整個類的執行邏輯, main 方法能夠訪問所在類的所有屬性和方法 
     

    模式(二) toString 模式 

    模式名稱 
     toString 
     
    測試對象 
     作為運算結果的類 
     
    針對問題 
     測試人員不知道如何檢驗一個運算對象的中間結果和最終結果 
     
    約束 
     測試結果代表對象內部的一個狀態,而該狀態必須能夠被測試 
     
    解決方法 
     通過使用 toString 方法來對類狀態進行描述,描述結果可以通過打印與預期結果進行比較 
     
    實例 
     class SomeClass { 

    //… 

    public String toString(){ 

    // custom representation 




     
    約束解決 
     類的內部狀態通過字符串來進行表示因而得以解決 
     
    設計原理 
     在基類定義的 toString() 方法能夠提供特定對象的狀態的描述,通過將對象狀態描述進行打印和顯示來判定對象狀態是否與預期相符 
     

    模式(三) Equal 模式 

    模式名稱 
     Equal 
     
    測試對象 
     JAVA 類 
     
    針對問題 
     作為運算結果的類 
     
    約束 
     測試人員不知道如何檢驗一個運算對象的中間結果和最終結果 
     
    解決方法 
     定義 equals 方法比較實際結果與預期結果進行比較 
     
    實例 
     class SomeClass { 

    //… 

    public boolean equals(Object o){ 

    // custom comparison 




     
    約束解決 
     保持某個狀態的對象需要與預期對象進行比較,通過比較后的布爾值來確定是否與預期結果相符合 
     
    設計原理 
     在基類定義的 public boolean equals(Object) 能夠對比對象間的差異并以布爾值形式返回比較結果 
     

    模式(四) Internal Tester Class 模式 

    模式名稱 
     Internal Tester Class 
     
    測試對象 
     JAVA 包 
     
    針對問題 
     測試人員不知在何處編寫測試代碼測試包中的類 
     
    約束 
     測試代碼與運行代碼必須分開來,測試代碼能夠訪問到類的所有特性,測試代碼起到的是一個包的客戶端的角色。 
     
    解決方法 
     新建一個類并將該類的包路徑與被測試類的包路徑相同,然后在該類里寫入所有的測試代碼 
     
    實例 
     package theOne; 

    public class InternalTestClass { 

    //… 


     
    約束解決 
     所有的測試代碼均與運行代碼分離,由于它與運行代碼在同一包路徑下,所以它與普通的客戶端相比具有更多的可視性 
     
    設計原理 
     將測試代碼定義在一個特定的類中。由于測試類與運行類在同一個包路徑下,因此它能訪問測試類的類的所有特性。因此,它遠比客戶端測試具有更大的可視性。 
     

    模式(五) Extern Tester Class 模式 

    模式名稱 
     Extern Tester Class 模式 
     
    測試對象 
     JAVA 包 
     
    針對問題 
     測試人員不知在何處編寫測試代碼測試包中的類 
     
    約束 
     測試代碼與運行代碼必須分開來,測試代碼能夠訪問到類的可視特征,測試代碼起到的是一個包的客戶端的角色。 
     
    解決方法 
     新建一個類,指定與被測試類不同的包路徑,然后在該類里寫入所有的測試代碼 
     
    實例 
     package anotherOne; 

    public class ExternalTestClass { 

    //… 


     
    約束解決 
     所有的測試代碼均與運行代碼分離,由于它與運行代碼在不同的包路徑下,所以它與普通的客戶端的可視性相同 
     
    設計原理 
     將測試代碼定義在一個特定的類中。由于測試類與運行類不在同一個包路徑下,因此它不能訪問測試類的所有屬性和方法。但是它與客戶端具有相同的可視性。因此,它可以替代客戶端進行測試。 
     

    上面五個模式的作用關系如圖-1所示:  

     

    圖-1 JAVA 測試模式圖解 

    了解上述所述的模式有助于測試人員在具體 JAVA 代碼測試中編寫測試類,同時上述的這些 JAVA 測試模式還可以借助 JUnit 這樣的測試框架來實現。 

    注:本文根據 Marco Torchiano 的《 Patterns for Java Program Testing 》刪減改編而成 



     

    延伸閱讀

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

    TAG: java JAVA Java 模式


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(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>