• <em id="6vhwh"><rt id="6vhwh"></rt></em>

    <style id="6vhwh"></style>

    <style id="6vhwh"></style>
    1. <style id="6vhwh"></style>
        <sub id="6vhwh"><p id="6vhwh"></p></sub>
        <p id="6vhwh"></p>
          1. 国产亚洲欧洲av综合一区二区三区 ,色爱综合另类图片av,亚洲av免费成人在线,久久热在线视频精品视频,成在人线av无码免费,国产精品一区二区久久毛片,亚洲精品成人片在线观看精品字幕 ,久久亚洲精品成人av秋霞

            單元測試方法(常用的單元測試方法)

            更新時間:2023-02-28 21:06:22 閱讀: 評論:0

            怎么進行單元測試?

            創(chuàng)建單元測試,該工具可以對任何類、接口、結(jié)構(gòu)等實體中的字段、屬性、構(gòu)造函數(shù)、方法等進行單元測試。創(chuàng)建單元測試大致可以分為兩類:
            整體測試,整體測試是在類名稱上右擊鼠標(biāo),在下拉菜單中點擊創(chuàng)建單元測試選項。這樣就可以為整個類創(chuàng)建單元測試了,這時他會為整個類可以被測試的內(nèi)容全部添加測試方法。開發(fā)人員直接在這些自動生成的測試方法中添加單元測試代碼就可以了。
            單獨測試,如果只想單獨對某個方法、屬性、字段進行測試,則可以將鼠標(biāo)焦點放在這個待測試的項目名稱之上,然后點擊鼠標(biāo)右鍵,在右鍵菜單中選擇創(chuàng)建單元測試選項。這樣就可以單獨為某個方法創(chuàng)建單元測試了。
            運行單元測試-》查看測試結(jié)果

            有哪些方法可以進行Java單元測試

            在軟件開發(fā)過程中,每個單元的運行都是非常關(guān)鍵的,并且直接關(guān)系到后期程序員的運行。那么在進行軟件開發(fā)過程中,經(jīng)常使用到的單元測試方法有哪些呢,一個好的單元測試是如何進行實現(xiàn)的?下面云南電腦培訓(xùn)為大家介紹進行Java單元測試的具體方法。


            1、使用框架進行單元測試

            Java能夠提供單元測試方法的框架,在測試過程中,測試NG和JUnit是現(xiàn)在流行的測試框架。JUnit和TestNG框架測試有幾個重要功能:設(shè)置和運行很容易;允許忽略或分組,并一起運行多個測試;支持參數(shù)化測試,并且云南IT培訓(xùn)發(fā)現(xiàn)能夠通過在運行時指定不同的值來執(zhí)行單元測試。

            2、謹慎使用測試驅(qū)動開發(fā)

            測試驅(qū)動開發(fā)是一個軟件開發(fā)的過程。在整個開發(fā)過程中,在開始編碼的時候,應(yīng)該根據(jù)程序的需求進行編程測試。但是昆明IT培訓(xùn)發(fā)現(xiàn)由于這個時候還沒有進行編程,所以初次測試會面臨失敗,只需要寫入少量的代碼就能通過測試,進行重置代碼。

            3、測試代碼的覆蓋率

            代碼覆蓋率是以百分比測定執(zhí)行單元測試時進行的代碼量。通常,高覆蓋率的代碼包含未被檢測出的錯誤的概率較低,因為更多的源代碼在測試中被執(zhí)行。測試代碼覆蓋率的工具有:Clover,Corbetura,JaCoCo。使用工具測試能夠更好的提高測試質(zhì)量。

            4、將測試數(shù)據(jù)外部優(yōu)化

            在JUnit4之前,測試用例執(zhí)行的數(shù)據(jù)必須被測試用例硬編碼,這會引起限制。為了使用不同的數(shù)據(jù)執(zhí)行測試,必須修正測試用例代碼。但是,昆明電腦培訓(xùn)認為JUnit4以及TestNG支持外部化測試數(shù)據(jù),無需變更源代碼,就可以對不同的數(shù)據(jù)組執(zhí)行測試用例。



            五個方法讓你做更好的java單元測試?

            單元測試是我們在軟件開發(fā)過程中經(jīng)常用到的一種軟件測試的方法,而今天我們就一起來了解一下,一個好的單元測試都是如何來編輯完成的。


            1.使用框架來用于單元測試


            Java提供了若干用于單元測試的框架。TestNG和JUnit是流行的測試框架。JUnit和TestNG的一些重要功能:


            易于設(shè)置和運行。


            支持注釋。


            允許忽略或分組并一起執(zhí)行某些測試。


            支持參數(shù)化測試,即通過在運行時指定不同的值來運行單元測試。


            通過與構(gòu)建工具,如Ant,Maven和Gradle集成來支持自動化的測試執(zhí)行。



            EasyMock是一個模擬框架,是單元測試框架,如JUnit和TestNG的補充。EasyMock本身不是一個完整的框架。它只是添加了創(chuàng)建模擬對象以便于測試的能力。例如,我們想要測試的一個方法可以調(diào)用從數(shù)據(jù)庫獲取數(shù)據(jù)的DAO類。在這種情況下,EasyMock可用于創(chuàng)建返回硬編碼數(shù)據(jù)的MockDAO。這使我們能夠輕松地測試我們意向的方法,而不必擔(dān)心數(shù)據(jù)庫訪問。


            2.謹慎使用測試驅(qū)動開發(fā)!


            測試驅(qū)動開發(fā)(TDD)是一個軟件開發(fā)過程,在這過程中,在開始任何編碼之前,我們基于需求來編寫測試。由于還沒有編碼,測試初會失敗。然后寫入小量的代碼以通過測試。然后重構(gòu)代碼,直到被優(yōu)化。


            目標(biāo)是編寫覆蓋所有需求的測試,而不是一開始就寫代碼,卻可能甚至都不能滿足需求。TDD是偉大的,因為它導(dǎo)致簡單的模塊化代碼,且易于維護。總體開發(fā)速度加快,容易發(fā)現(xiàn)缺陷。此外,單元測試被創(chuàng)建作為TDD方法的副產(chǎn)品。


            然而,TDD可能不適合所有的情況。在設(shè)計復(fù)雜的項目中,專注于簡單的設(shè)計以便于通過測試用例,而不提前思考可能會導(dǎo)致巨大的代碼更改。此外,TDD方法難以用于與遺留系統(tǒng),GUI應(yīng)用程序或與數(shù)據(jù)庫一起工作的應(yīng)用程序交互的系統(tǒng)。另外,測試需要隨著代碼的改變而更新。


            因此,在決定采用TDD方法之前,應(yīng)考慮上述因素,并應(yīng)根據(jù)項目的性質(zhì)采取措施。


            3.測量代碼覆蓋率


            代碼覆蓋率衡量(以百分比表示)了在運行單元測試時執(zhí)行的代碼量。通常,高覆蓋率的代碼包含未檢測到的錯誤的幾率要低,因為其更多的源代碼在測試過程中被執(zhí)行。云南電腦培訓(xùn)http://www.kmbdqn.cn/發(fā)現(xiàn)測量代碼覆蓋率的一些佳做法包括:


            使用代碼覆蓋工具,如Clover,Corbetura,JaCoCo或Sonar。使用工具可以提高測試質(zhì)量,因為這些工具可以指出未經(jīng)測試的代碼區(qū)域,讓你能夠開發(fā)開發(fā)額外的測試來覆蓋這些領(lǐng)域。



            單元測試有哪些步驟?各個步驟有哪些實施內(nèi)容?

            1、單元測試的步驟

            通常單元測試在編碼階段進行。在源程序代碼編制完成,經(jīng)過評審和驗證,確認沒有語法錯誤之后,就開始進行單元測試的測試用例設(shè)計。利用設(shè)計文檔,設(shè)計可以驗證程序功能、找出程序錯誤的多個測試用例。對于每一組輸入,應(yīng)有預(yù)期的正確結(jié)果。

            模塊并不是一個獨立的程序,在考慮測試模塊時,同時要考慮它和外界的聯(lián)系,用一些輔助模塊去模擬與被測模塊相聯(lián)系的其它模塊。這些輔助模塊分為兩種:

            驅(qū)動模塊:相當(dāng)于被測模塊的主程序。它接收測試數(shù)據(jù),把這些數(shù)據(jù)傳送給被測模塊,最后輸出實測結(jié)果。

            樁模塊:用以代替被測模塊調(diào)用的子模塊。樁模塊可以做少量的數(shù)據(jù)操作,不需要把子模塊所有功能都帶進來,但不允許什么事情也不做。

            被測模塊、與它相關(guān)的驅(qū)動模塊及樁模塊共同構(gòu)成了一個“測試環(huán)境”。

            2、單元測試的內(nèi)容

            模塊接口測試:對通過被測模塊的數(shù)據(jù)流進行測試。為此,對模塊接口,包括參數(shù)表、調(diào)用子模塊的參數(shù)、全程數(shù)據(jù)、文件輸入/輸出操作都必須檢查。

            局部數(shù)據(jù)結(jié)構(gòu)測試:設(shè)計測試用例檢查數(shù)據(jù)類型說明、初始化、缺省值等方面的問題,還要查清全程數(shù)據(jù)對模塊的影響。

            路徑測試:選擇適當(dāng)?shù)臏y試用例,對模塊中重要的執(zhí)行路徑進行測試。對基本執(zhí)行路徑和循環(huán)進行測試可以發(fā)現(xiàn)大量路徑錯誤。

            錯誤處理測試:檢查模塊的錯誤處理功能是否包含有錯誤或缺陷。例如,是否拒絕不合理的輸入;出錯的描述是否難以理解、是否對錯誤定位有誤、是否出錯原因報告有誤、是否對錯誤條件的處理不正確;在對錯誤處理之前錯誤條件是否已經(jīng)引起系統(tǒng)的干預(yù)等。

            邊界測試:要特別注意數(shù)據(jù)流、控制流中剛好等于、大于或小于確定的比較值時出錯的可能性。對這些地方要仔細地選擇測試用例,認真加以測試。

            此外,如果對模塊運行時間有要求的話,還要專門進行關(guān)鍵路徑測試,以確定最壞情況下和平均意義下影響模塊運行時間的因素。這類信息對進行性能評價是十分有用的。

            擴展資料:

            單元測試的優(yōu)點:

            1、它是一種驗證行為。

            程序中的每一項功能都是測試來驗證它的正確性。它為以后的開發(fā)提供支援。就算是開發(fā)后期,我們也可以輕松的增加功能或更改程序結(jié)構(gòu),而不用擔(dān)心這個過程中會破壞重要的東西。而且它為代碼的重構(gòu)提供了保障。這樣,我們就可以更自由的對程序進行改進。

            2、它是一種設(shè)計行為。

            編寫單元測試將使我們從調(diào)用者觀察、思考。特別是先寫測試(test-first),迫使我們把程序設(shè)計成易于調(diào)用和可測試的,即迫使我們解除軟件中的耦合。

            3、它是一種編寫文檔的行為。

            單元測試是一種無價的文檔,它是展示函數(shù)或類如何使用的最佳文檔。這份文檔是可編譯、可運行的,并且它保持最新,永遠與代碼同步。

            4、它具有回歸性。

            自動化的單元測試避免了代碼出現(xiàn)回歸,編寫完成之后,可以隨時隨地的快速運行測試。


            單元測試主要的測試技術(shù)不包括

            1、單元測試的基本方法

            單元測試的基本方法有:人工靜態(tài)分析、自動靜態(tài)分析、自動動態(tài)測試,人工動態(tài)測試。

            人工靜態(tài)分析:通過人工閱讀代碼來查找錯誤,一般是程序員交叉查看對方的代碼,可能發(fā)現(xiàn)有特征錯誤和無特征錯誤。

            自動靜態(tài)分析:使用工具掃描代碼,根據(jù)某些預(yù)先設(shè)定的錯誤特征,發(fā)現(xiàn)并報告代碼中的可能錯誤,自動靜態(tài)分析只能發(fā)現(xiàn)語法特征錯誤。

            自動動態(tài)測試:使用工具自動生成測試用例并執(zhí)行被測試程序,通過捕捉某些行為特征(如產(chǎn)生異常/程序崩潰等)來發(fā)現(xiàn)并報告錯誤,自動動態(tài)測試只能發(fā)現(xiàn)行為特征錯誤,對無特征錯誤完全無能為力,例如,前面所說的加法函數(shù),代碼可以說是最簡單的,錯誤也是最簡單的,但是自動動態(tài)測試仍然無法發(fā)現(xiàn),因為測試工具不可能自動了解代碼的功能。

            人工動態(tài)測試:人工設(shè)定程序的輸入和預(yù)期的正確輸出,執(zhí)行程序,并判斷實際輸出是否符合預(yù)期,如果不符合預(yù)期,自動報告錯誤。這里所說的"人工",僅指測試用例的輸入和預(yù)期輸出是人工設(shè)定的,其他工作可以由人工完成,也可以借助工具自動完成。人工動態(tài)測試可以發(fā)現(xiàn)有特征錯誤和無特征錯誤,例如,前面所說的加法函數(shù),只要人工建立一個測試用例,輸入兩個1,并判斷輸出是否等于2,運行測試,就可以發(fā)現(xiàn)代碼中含有錯誤。

            以上四種方法還可以進一步細分,例如,人工動態(tài)測試又有多種設(shè)計測試用例的方法,如果根據(jù)程序的功能來設(shè)計測試用例,就是黑盒測試,如果根據(jù)代碼及代碼的邏輯結(jié)構(gòu)來設(shè)計測試用例,就是白盒測試。

            2、測試方法的選擇

            工作中是不是把各種測試方法不分輕重都做一遍呢?顯然不行,項目工期和預(yù)算不會允許這么做,也不符合效益原則,應(yīng)該選擇一種方法作為主要測試方法,其他視情況取舍。

            自動靜態(tài)分析、自動動態(tài)測試只能發(fā)現(xiàn)有特征錯誤,這兩種方法加起來,做到最好也僅限于發(fā)現(xiàn)有特征錯誤,而多數(shù)語法特征錯誤編譯器就能發(fā)現(xiàn),很多行為特征錯誤會在開發(fā)過 程中,或集成測試和系統(tǒng)測試中自動暴露出來,所以這兩種方法不宜作為主要測試方法。

            人工靜態(tài)分析雖然可能發(fā)現(xiàn)有特征錯誤和無特征錯誤,但是要徹底找出所有錯誤來,顯然太難了。

            人工動態(tài)測試可以發(fā)現(xiàn)有特征錯誤和無特征錯誤,并且具有廣闊的發(fā)揮空間,可以作為主要測試方法。

            3、黑盒測試與白盒測試

            常常見到"單元測試是白盒測試","單元測試也有黑盒"之類的說法,容易引起混亂。黑盒與白盒其實是測試方法,黑盒就是針對系統(tǒng)的外部特性進行測試,把目標(biāo)系統(tǒng)看作一個黑盒子,不考慮內(nèi)部結(jié)構(gòu);白盒就是針對系統(tǒng)的內(nèi)部結(jié)構(gòu)進行測試。各個測試階段都可以使用黑盒方法和白盒方法,即無論是單元測試、集成測試、系統(tǒng)測試階段都可以使用黑盒方法和白盒方法。

            黑盒測試又叫功能測試,我們首先要測試程序是否實現(xiàn)了基本功能,因此,黑盒測試是基本測試。黑盒測試的主要缺陷是難于衡量完整性,而白盒測試正好可以彌補個缺陷。

            白盒測試通過邏輯覆蓋率來衡量完整性,具有可以精確統(tǒng)計的數(shù)字指標(biāo)。邏輯單位主要有:語句、分支、條件、條件值、條件值組合,路徑。語句覆蓋就是覆蓋所有的語句,其他類推。另外還有一種判定條件覆蓋,其實是分支覆蓋與條件覆蓋的組合。跟條件有關(guān)的覆蓋就有三種,解釋一下:條件覆蓋是指覆蓋所有的條件表達式,即所有的條件表達式都至少計算一次,不考慮計算結(jié)果;條件值覆蓋是指覆蓋條件的所有可能取值,即每個條件的取真值和取假值都要至少計算一次;條件值組合覆蓋是指覆蓋所有條件取值的所有可能組合。與條件直接有關(guān)的錯誤主要是邏輯操作符錯誤,例如:||寫成&&,漏了寫!什么的,采用分支覆蓋與條件覆蓋的組合,基本上可以發(fā)現(xiàn)這些錯誤,而條件值覆蓋與條件值組合覆蓋往往需要大量的測試用例,因此,條件值覆蓋和條件值組合覆蓋的效費比偏低,比較有價值的覆蓋率是語句覆蓋、條件覆蓋、分支覆蓋、路徑覆蓋。

            4、測試用例

            人工動態(tài)測試需要人工設(shè)計測試用例。一個測試用例,就是設(shè)定輸入數(shù)據(jù),執(zhí)行被測試程序,并判斷輸出是否符合預(yù)期。輸出符合預(yù)期,則測試通過,否則測試失敗。一般來說,測試工具要能自動報告失敗的測試。

            測試用例的主要內(nèi)容是輸入數(shù)據(jù)和預(yù)期輸出,簡稱輸入輸出,其中輸入是核心,輸入確定了,再根據(jù)程序的功能設(shè)定預(yù)期的正確輸出。

            如果我們把函數(shù)看作測試單元,那么,輸入數(shù)據(jù)就是被測試函數(shù)所讀取的外部數(shù)據(jù)及這些數(shù)據(jù)的初始值。"外部數(shù)據(jù)"是對于被測試函數(shù)來說的,就是除了局部變量以外的其他數(shù)據(jù),分為幾類:參數(shù)、成員變量、全局變量、IO媒體。IO媒體是指文件、數(shù)據(jù)庫或其他儲存或傳輸數(shù)據(jù)的媒體,例如,被測試函數(shù)要從文件或數(shù)據(jù)庫讀取數(shù)據(jù),那么,文件或數(shù)據(jù)庫中的原始數(shù)據(jù)也屬于輸入數(shù)據(jù)。


            單元測試的策略有哪些

            邏輯覆蓋、循環(huán)覆蓋、同行評審、桌前檢查、代碼走查、代碼評審、景泰數(shù)據(jù)流分析
            單元測試是對軟件基本組成單元進行測試,
            這里的基本單元不一定是指一個具體的函數(shù)

            Function

            Procedure

            或一個類的方法,

            單元

            具有一些基本屬性,
            如:
            明確的功能、
            規(guī)格定義,明確的接口定義,可清晰地與同一程序的其它單元劃分開來。

            在純
            C
            語言的代碼中,為了操作方便期間,我們一般認為一個函數(shù)就是一個單元。

            1.2.2
            單元測試的主要目的:

            1.
            驗證代碼是與設(shè)計符合的

            2.
            跟蹤需求和設(shè)計的實現(xiàn)

            3.
            發(fā)現(xiàn)設(shè)計和需求中存在的錯誤

            4.
            發(fā)現(xiàn)在編碼過程中引入的錯誤

            1.2.3
            何時開展單元測試

            一般地,
            在編碼階段就應(yīng)開展單元測試,
            邊寫程序邊測試是一個好習(xí)慣。
            一個組織不要
            孤立的劃分出編碼和單元測試兩個階段,也不要等代碼都寫完了才開始單元測試。

            有時候需要將單元測試時間推后到集成階段,甚至系統(tǒng)完成階段。

            單元測試可以分為計劃、設(shè)計、實現(xiàn)、執(zhí)行幾個階段。

            計劃

            是作好人和時間的安排。

            設(shè)計

            確定采用什么樣的測試方法,
            達到一個什么樣的覆蓋率標(biāo)準(zhǔn)等。

            實現(xiàn)

            是設(shè)計生成各
            個測試用例。

            執(zhí)行

            包括驅(qū)動和樁函數(shù)的設(shè)計實現(xiàn),測試數(shù)據(jù)準(zhǔn)備,測試結(jié)果驗證等等。

            本文發(fā)布于:2023-02-28 18:55:00,感謝您對本站的認可!

            本文鏈接:http://www.newhan.cn/zhishi/a/167758958248875.html

            版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除。

            本文word下載地址:單元測試方法(常用的單元測試方法).doc

            本文 PDF 下載地址:單元測試方法(常用的單元測試方法).pdf

            標(biāo)簽:單元測試   方法   常用
            相關(guān)文章
            留言與評論(共有 0 條評論)
               
            驗證碼:
            推薦文章
            排行榜
            Copyright ?2019-2022 Comsenz Inc.Powered by ? 實用文體寫作網(wǎng)旗下知識大全大全欄目是一個全百科類寶庫! 優(yōu)秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 国产人成亚洲第一网站在线播放| 97人人模人人爽人人喊电影 | 国产小嫩模无套中出视频| 亚洲爆乳WWW无码专区| 999久久久免费精品播放| 老司机亚洲精品一区二区| 国产成人AV无码精品天堂| 线观看的国产成人av天堂| 免费又爽又大又高潮视频| 国产精品色哟哟成人av| 中国女人熟毛茸茸A毛片| 少妇粗大进出白浆嘿嘿视频| 狠狠色综合网站久久久久久久| 亚洲粉嫩av一区二区黑人| 日韩爱爱视频| 色偷偷一区| 精品日韩亚洲av无码| 亚洲国产综合性亚洲综合性| 国产精品一码在线播放| 中文字幕理伦午夜福利片| 久久久久久久波多野结衣高潮| 国产日产亚洲系列av| 久久亚洲国产成人精品v| 日日碰狠狠添天天爽| 男女激情一区二区三区| 国产专区精品三级免费看| 麻豆亚洲精品一区二区| 亚洲va成无码人在线观看天堂| 久久精品中文字幕少妇| 亚洲欧美国产另类视频| 国产AV一区二区精品久久凹凸 | 乌克兰丰满女人a级毛片右手影院 人妻中文字幕不卡精品 | 最近中文字幕日韩有码| 99久久精品视香蕉蕉| 欧美色丁香| 欧洲一区二区中文字幕| 特级做a爰片毛片免费看无码| 国产精品午夜福利清纯露脸 | 久久精品国产亚洲av麻豆长发| 强奷乱码中文字幕| 国产精品久久毛片|