java編程第11課白盒和單元測(cè)試_第1頁(yè)
java編程第11課白盒和單元測(cè)試_第2頁(yè)
java編程第11課白盒和單元測(cè)試_第3頁(yè)
java編程第11課白盒和單元測(cè)試_第4頁(yè)
java編程第11課白盒和單元測(cè)試_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

白盒測(cè)試和單元測(cè)試歡迎進(jìn)入特斯汀學(xué)院主講老師:RoyQQ:578225840班主任

QQ:1522599327課程回顧類(lèi)的多態(tài)的必要條件繼承重寫(xiě)父類(lèi)引用指向子類(lèi)對(duì)象接口的多態(tài)的必要條件在不同類(lèi)中實(shí)現(xiàn)接口。接口引用指向?qū)崿F(xiàn)類(lèi)的對(duì)象。接口的特性接口中定義的屬性都是常量。接口中定義的方法都是抽象方法,必須在實(shí)現(xiàn)接口的類(lèi)中通過(guò)重寫(xiě)實(shí)現(xiàn)。一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口,從而方便進(jìn)行功能的擴(kuò)展。降低類(lèi)之間的耦合度。目錄CONTENTPart.1白盒測(cè)試White-boxTestingPart.2單元測(cè)試UnitTestingPart.3JUnit單元測(cè)試框架UnitTestingbyJUnitPART1白盒測(cè)試White-boxTesting白盒測(cè)試定義白盒測(cè)試全面了解程序內(nèi)部邏輯結(jié)構(gòu)、對(duì)所有邏輯路徑進(jìn)行測(cè)試。白盒測(cè)試是窮舉路徑測(cè)試。在使用這一方案時(shí),測(cè)試者必須檢查程序的內(nèi)部結(jié)構(gòu),從檢查程序的邏輯著手,得出測(cè)試數(shù)據(jù)。貫穿程序的獨(dú)立路徑數(shù)是天文數(shù)字。方法常用的白盒測(cè)試方法有兩大類(lèi):靜態(tài)測(cè)試方法和動(dòng)態(tài)測(cè)試方法。靜態(tài)測(cè)試不要求在計(jì)算機(jī)上實(shí)際執(zhí)行所測(cè)程序,通過(guò)分析或檢查源程序的語(yǔ)法、結(jié)構(gòu)、過(guò)程、接口等來(lái)檢查程序的正確性。也就是常說(shuō)的codereview。動(dòng)態(tài)測(cè)試是通過(guò)輸入一組預(yù)先按照一定的測(cè)試準(zhǔn)則構(gòu)造的實(shí)例數(shù)據(jù)來(lái)動(dòng)態(tài)運(yùn)行程序,而達(dá)到發(fā)現(xiàn)程序錯(cuò)誤的過(guò)程。在動(dòng)態(tài)分析技術(shù)中,最重要的技術(shù)是路徑和分支測(cè)試。靜態(tài)白盒測(cè)試代碼審查市面上目前有許多代碼審查工具,比如SonarQube、CodeStriker等等,大家可以根據(jù)公司所用的工具選擇了解。關(guān)注問(wèn)題:編碼規(guī)范問(wèn)題:命名不規(guī)范、注釋不清晰、縮進(jìn)格式不正確等代碼結(jié)構(gòu)問(wèn)題:重復(fù)代碼、巨大的方法和類(lèi)、分層不當(dāng)、緊耦合工具、框架使用不當(dāng):Spring、Hibernate、AJAX實(shí)現(xiàn)問(wèn)題:錯(cuò)誤驗(yàn)證、異常處理、事務(wù)劃分、線程、性能、安全、實(shí)現(xiàn)過(guò)于復(fù)雜、代碼可讀性不佳、擴(kuò)展性不好測(cè)試問(wèn)題:測(cè)試覆蓋度不夠、可測(cè)試性不好代碼評(píng)審不負(fù)責(zé)檢查功能、邏輯是否正確。動(dòng)態(tài)白盒測(cè)試白盒測(cè)試方法與原則白盒測(cè)試的覆蓋標(biāo)準(zhǔn)包括邏輯覆蓋、循環(huán)覆蓋和基本路徑測(cè)試。其中邏輯覆蓋包括語(yǔ)句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋。1.語(yǔ)句覆蓋每條語(yǔ)句至少執(zhí)行一次。2.判定覆蓋每個(gè)判定的每個(gè)分支至少執(zhí)行一次。3.條件覆蓋每個(gè)判定的每個(gè)條件應(yīng)取到各種可能的值。4.判定/條件覆蓋同時(shí)滿(mǎn)足判定覆蓋條件覆蓋。5.條件組合覆蓋每個(gè)判定中各條件的每一種組合至少出現(xiàn)一次。6.路徑覆蓋使程序中每一條可能的路徑至少執(zhí)行一次。白盒測(cè)試實(shí)例根據(jù)流程圖結(jié)合白盒測(cè)試方法設(shè)計(jì)測(cè)試用例,覆蓋每條路徑的所有判斷和條件。結(jié)合邊界值等價(jià)類(lèi)方法進(jìn)行設(shè)計(jì)。PART2單元測(cè)試UnitTesting單元測(cè)試定義單元測(cè)試(unittesting)是指對(duì)軟件中的最小可測(cè)試單元進(jìn)行檢查和驗(yàn)證。對(duì)于單元測(cè)試中單元的定義,一般根據(jù)實(shí)際情況判定,如C語(yǔ)言中單元指一個(gè)函數(shù),Java里單元指一個(gè)類(lèi)或方法,圖形化的軟件中可以指一個(gè)窗口或一個(gè)菜單等??偟膩?lái)說(shuō),單元就是人為規(guī)定的最小的被測(cè)功能模塊。單元測(cè)試是在軟件開(kāi)發(fā)過(guò)程中要進(jìn)行的最低級(jí)別的測(cè)試活動(dòng),軟件的獨(dú)立單元將在與程序的其他部分相隔離的情況下進(jìn)行測(cè)試。意義執(zhí)行單元測(cè)試,就是為了證明這段代碼的行為和我們期望的一致。在軟件研發(fā)階段越早發(fā)現(xiàn)的Bug,修改的成本越低。單元測(cè)試是由程序員自己來(lái)完成,最終受益的也是程序員自己。TDD(測(cè)試驅(qū)動(dòng)開(kāi)發(fā))其實(shí)就是先編寫(xiě)單元測(cè)試代碼,再編寫(xiě)產(chǎn)品實(shí)現(xiàn)代碼。PART3JUnit單元測(cè)試框架UnitTestingbyJUnitJUnit單元測(cè)試框架定義右鍵->new->other->JUnit->JunitTestCase->Next->NewJuint4test->Name->setup->teardown->ClassUnderTest->Next->勾選你要測(cè)試的函數(shù)->Finish->提示引入JUnit庫(kù)->FinishJUnit基本注解注解用途@Before每一次運(yùn)行測(cè)試方法之前執(zhí)行的方法@After每一次運(yùn)行測(cè)試方法之后執(zhí)行的方法@BeforeClass被注解的方法在被測(cè)試類(lèi)開(kāi)始之前執(zhí)行一次@AfterClass被注解的方法在被測(cè)試類(lèi)開(kāi)始之后執(zhí)行一次@Test被注解的方法是JUnit單元測(cè)試的測(cè)試方法JUnit斷言斷言的作用斷言表示為一些布爾表達(dá)式,程序員相信在程序中的某個(gè)特定點(diǎn)該表達(dá)式值為真,可以在任何時(shí)候啟用和禁用斷言驗(yàn)證。簡(jiǎn)而言之,斷言用于判斷程序運(yùn)行結(jié)果是否符合預(yù)期,也就是測(cè)試用例的預(yù)期結(jié)果。JUnit常用斷言斷言用途fail本次執(zhí)行失敗,不寫(xiě)fail或其他斷言,默認(rèn)為passassertEquals判斷兩個(gè)值相等則pass,不等則failassertNull斷言一個(gè)對(duì)象為空assertTrue斷言一個(gè)布爾表達(dá)式為真JUnit參數(shù)化數(shù)據(jù)驅(qū)動(dòng)相關(guān)注解@RunWith(Parameterized.class):注解JUnit測(cè)試類(lèi),指定本次執(zhí)行使用參數(shù)化@Parameters:生成并返回測(cè)試數(shù)據(jù)相關(guān)方法在JUnit參數(shù)化的類(lèi)中,需要有一個(gè)構(gòu)造方法,用于存儲(chǔ)和傳遞測(cè)試數(shù)據(jù)。由@Parameters注解的靜態(tài)方法,是一個(gè)Collection或者Iterator,生成并返回測(cè)試數(shù)據(jù)。構(gòu)造方法需要用對(duì)應(yīng)的參數(shù)列表接收數(shù)據(jù)。這樣,數(shù)據(jù)將被傳遞到@Test注解的測(cè)試方法,逐條進(jìn)行測(cè)試,直到集合中不再有元素。JUnit用例管理創(chuàng)建TestSuite在包含JUnit4case的包中右鍵->new->other->JUnit=->JunitTestSuite>Next->NewJUnit4Suite->Name->選擇你需要執(zhí)行的Case->Finish。添加Case@SuiteClasses({JUnit4.class})在@SuiteClasses注解中指定要執(zhí)行的ca

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論