隨筆 - 251  文章 - 504  trackbacks - 0
          <2006年11月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          本博客系個人收集材料及學習記錄之用,各類“大俠”勿擾!

          留言簿(14)

          隨筆分類

          收藏夾

          My Favorite Web Sites

          名Bloger

          非著名Bloger

          搜索

          •  

          積分與排名

          • 積分 - 202782
          • 排名 - 284

          最新評論

          1、幾個相關(guān)的概念

          白盒測試——把測試對象看作一個打開的盒子,程序內(nèi)部的邏輯結(jié)構(gòu)和其他信息對測試人員是公開的。

          回歸測試——軟件或環(huán)境的修復或更正后的“再測試”,自動測試工具對這類測試尤其有用。

          單元測試——是最小粒度的測試,以測試某個功能或代碼塊。一般由程序員來做,因為它需要知道內(nèi)部程序設計和編碼的細節(jié)。

          JUnit ——是一個開發(fā)源代碼的Java測試框架,用于編寫和運行可重復的測試。他是用于單元測試框架體系xUnit的一個實例(用于java語言)。主要用于白盒測試,回歸測試。

          2、單元測試概述

          2.1、單元測試的好處

          A、提高開發(fā)速度——測試是以自動化方式執(zhí)行的,提升了測試代碼的執(zhí)行效率。

          B、提高軟件代碼質(zhì)量——它使用小版本發(fā)布至集成,便于實現(xiàn)人員除錯。同時引入重構(gòu)概念,讓代碼更干凈和富有彈性。

          C、提升系統(tǒng)的可信賴度——它是回歸測試的一種。支持修復或更正后的“再測試”,可確保代碼的正確性。

          2.2、單元測試的針對對象

          A、面向過程的軟件開發(fā)針對過程。

          B、面向?qū)ο蟮能浖_發(fā)針對對象。

          C、可以做類測試,功能測試,接口測試(最常用于測試類中的方法)。

          2.3、單元測試工具和框架

          目前的最流行的單元測試工具是xUnit系列框架,常用的根據(jù)語言不同分為JUnit(java),CppUnit(C++),DUnit (Delphi ),NUnit(.net),PhpUnit(Php )等等。該測試框架的第一個和最杰出的應用就是由Erich Gamma (《設計模式》的作者)和Kent Beck(XP(Extreme Programming)的創(chuàng)始人 )提供的開放源代碼的JUnit。
          3.Junit入門簡介

          3.1、JUnit的好處和JUnit單元測試編寫原則

          好處:

          A、可以使測試代碼與產(chǎn)品代碼分開。

          B、針對某一個類的測試代碼通過較少的改動便可以應用于另一個類的測試。

          C、易于集成到測試人員的構(gòu)建過程中,JUnit和Ant的結(jié)合可以實施增量開發(fā)。

          D、JUnit是公開源代碼的,可以進行二次開發(fā)。

          C、可以方便地對JUnit進行擴展。

          編寫原則:

          A、是簡化測試的編寫,這種簡化包括測試框架的學習和實際測試單元的編寫。

          B、是使測試單元保持持久性。

          C、是可以利用既有的測試來編寫相關(guān)的測試。

          3.2、JUnit的特征

          A、使用斷言方法判斷期望值和實際值差異,返回Boolean值。

          B、測試驅(qū)動設備使用共同的初始化變量或者實例。

          C、測試包結(jié)構(gòu)便于組織和集成運行。

          D、支持圖型交互模式和文本交互模式。

          3.3、JUnit框架組成

          A、對測試目標進行測試的方法與過程集合,可稱為測試用例(TestCase)。

          B、測試用例的集合,可容納多個測試用例(TestCase),將其稱作測試包(TestSuite)。

          C、測試結(jié)果的描述與記錄。(TestResult) 。

          D、測試過程中的事件監(jiān)聽者(TestListener)。

          E、每一個測試方法所發(fā)生的與預期不一致狀況的描述,稱其測試失敗元素(TestFailure)

          F、JUnit Framework中的出錯異常(AssertionFailedError)。

          JUnit框架是一個典型的Composite模式:TestSuite可以容納任何派生自Test的對象;當調(diào)用TestSuite對象的run()方法是,會遍歷自己容納的對象,逐個調(diào)用它們的run()方法。(可參考《程序員》2003-6期)。
          3.4、JUnit的安裝和配置

          JUnit安裝步驟分解:

          http://download.sourceforge.net/junit/中下載JUnit包并將Junit壓縮包解壓到一個物理目錄中(例如C:\Junit3.8.1)。
          記錄Junit.jar文件所在目錄名(例如C:\Junit3.8.1\Junit.jar)。
          進入操作系統(tǒng)(以Windows2000操作系統(tǒng)為準),按照次序點擊“開始 設置 控制面板”。
          在控制面板選項中選擇“系統(tǒng)”,點擊“環(huán)境變量”,在“系統(tǒng)變量”的“變量”列表框中選擇“CLASS-PATH”關(guān)鍵字(不區(qū)分大小寫),如果該關(guān)鍵字不存在則添加。
          雙擊“CLASS-PATH”關(guān)鍵字添加字符串“C:\Junit3.8.1\Junti.jar”(注意,如果已有別的字符串請在該字符串的字符結(jié)尾加上分號“;”),這樣確定修改后Junit就可以在集成環(huán)境中應用了。
          對于IDE環(huán)境,對于需要用到的JUnit的項目增加到lib中,其設置不同的IDE有不同的設置 。
          3.5、JUnit中常用的接口和類

          Test接口——運行測試和收集測試結(jié)果

          Test接口使用了Composite設計模式,是單獨測試用例 (TestCase),聚合測試模式(TestSuite)及測試擴展(TestDecorator)的共同接口。
          它的public int countTestCases()方法,它來統(tǒng)計這次測試有多少個TestCase,另外一個方法就是public void run( TestResult ),TestResult是實例接受測試結(jié)果, run方法執(zhí)行本次測試。
          TestCase抽象類——定義測試中固定方法

          TestCase是Test接口的抽象實現(xiàn),(不能被實例化,只能被繼承)其構(gòu)造函數(shù)TestCase(string name)根據(jù)輸入的測試名稱name創(chuàng)建一個測試實例。由于每一個TestCase在創(chuàng)建時都要有一個名稱,若某測試失敗了,便可識別出是哪個測試失敗。
          TestCase類中包含的setUp()、tearDown()方法。setUp()方法集中初始化測試所需的所有變量和實例,并且在依次調(diào)用測試類中的每個測試方法之前再次執(zhí)行setUp()方法。tearDown()方法則是在每個測試方法之后,釋放測試程序方法中引用的變量和實例。
          開發(fā)人員編寫測試用例時,只需繼承TestCase,來完成run方法即可,然后JUnit獲得測試用例,執(zhí)行它的run方法,把測試結(jié)果記錄在TestResult之中。
          Assert靜態(tài)類——一系列斷言方法的集合

          Assert包含了一組靜態(tài)的測試方法,用于期望值和實際值比對是否正確,即測試失敗,Assert類就會拋出一個AssertionFailedError異常,JUnit測試框架將這種錯誤歸入Failes并加以記錄,同時標志為未通過測試。如果該類方法中指定一個String類型的傳參則該參數(shù)將被做為AssertionFailedError異常的標識信息,告訴測試人員改異常的詳細信息。
          JUnit 提供了6大類31組斷言方法,包括基礎斷言、數(shù)字斷言、字符斷言、布爾斷言、對象斷言。
          其中assertEquals(Object expcted,Object actual)內(nèi)部邏輯判斷使用equals()方法,這表明斷言兩個實例的內(nèi)部哈希值是否相等時,最好使用該方法對相應類實例的值進行比較。而assertSame(Object expected,Object actual)內(nèi)部邏輯判斷使用了Java運算符“==”,這表明該斷言判斷兩個實例是否來自于同一個引用(Reference),最好使用該方法對不同類的實例的值進行比對。asserEquals(String message,String expected,String actual)該方法對兩個字符串進行邏輯比對,如果不匹配則顯示著兩個字符串有差異的地方。ComparisonFailure類提供兩個字符串的比對,不匹配則給出詳細的差異字符。
          TestSuite測試包類——多個測試的組合

          TestSuite類負責組裝多個Test Cases。待測得類中可能包括了對被測類的多個測試,而TestSuit負責收集這些測試,使我們可以在一個測試中,完成全部的對被測類的多個測試。
          TestSuite類實現(xiàn)了Test接口,且可以包含其它的TestSuites。它可以處理加入Test時的所有拋出的異常。
          TestSuite處理測試用例有6個規(guī)約(否則會被拒絕執(zhí)行測試)
          A 測試用例必須是公有類(Public)

          B 測試用例必須繼承與TestCase類

          C 測試用例的測試方法必須是公有的( Public )

          D 測試用例的測試方法必須被聲明為Void

          E 測試用例中測試方法的前置名詞必須是test

          F 測試用例中測試方法誤任何傳遞參數(shù)

          n TestResult結(jié)果類和其它類與接口

          TestResult結(jié)果類集合了任意測試累加結(jié)果,通過TestResult實例傳遞個每個測試的Run()方法。TestResult在執(zhí)行TestCase是如果失敗會異常拋出
          TestListener接口是個事件監(jiān)聽規(guī)約,可供TestRunner類使用。它通知listener的對象相關(guān)事件,方法包括測試開始startTest(Test test),測試結(jié)束endTest(Test test),錯誤,增加異常addError(Test test,Throwable t)和增加失敗addFailure(Test test,AssertionFailedError t)
          TestFailure失敗類是個“失敗”狀況的收集類,解釋每次測試執(zhí)行過程中出現(xiàn)的異常情況。其toString()方法返回“失敗”狀況的簡要描述


          posted on 2006-11-26 15:14 matthew 閱讀(304) 評論(0)  編輯  收藏 所屬分類: 軟件測試技術(shù)
          主站蜘蛛池模板: 罗山县| 岫岩| 三江| 修水县| 铜陵市| 栖霞市| 茶陵县| 称多县| 洛川县| 荥经县| 封开县| 青冈县| 宣武区| 乌鲁木齐县| 扎赉特旗| 青神县| 宣城市| 尼玛县| 凤阳县| 称多县| 明光市| 商南县| 新绛县| 内黄县| 札达县| 喀喇沁旗| 大余县| 望城县| 新丰县| 丁青县| 平安县| 陇南市| 隆化县| 灯塔市| 潮州市| 社旗县| 林州市| 海伦市| 元谋县| 兴山县| 巴彦县|