版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
單元測試軟件測試技術主要內(nèi)容
單元測試概述單元測試的環(huán)境單元測試的內(nèi)容單元測試策略單元測試方法Junit使用6.1單元測試概述1.概念單元測試又稱模塊測試,是針對軟件設計的最小單位——程序模塊,進行正確性檢驗的測試工作。單元測試的內(nèi)容包括單元的內(nèi)部結構、單元的功能和可觀測的行為。2.測試對象:“單元”結構化編程語言單元測試對象是函數(shù)或者子過程。面向對象語言單元測試對象是類或者類的方法。如一個菜單、屏幕顯示界面或對話框等3.目標(1)檢查代碼實現(xiàn)是否符合設計測試依據(jù)是詳細設計描述(2)盡早發(fā)現(xiàn)錯誤6.2
單元測試環(huán)境基本單元本身不是一個獨立的程序,自己不能運行,要靠其它部分來調用和驅動。驅動模塊(driver)
樁模塊(stub)驅動模塊(Driver)被測基本單元的主程序,它接收測試數(shù)據(jù),并把數(shù)據(jù)傳送給被測單元,最后輸出實測結果。樁模塊(Stub)用來代替被測基本單元調用的其他基本單元。單元測試環(huán)境單元測試環(huán)境測試結果驅動模塊樁模塊1被測模塊測試用例樁模塊3樁模塊2舉例:BACDE待測試模塊被測模塊B
驅動模塊(模擬模塊A)樁模塊(模擬模塊E)測試用例測試結果舉例:6.3單元測試的內(nèi)容單元測試主要對模塊的五個基本特性進行評價錯誤處理模塊接口局部數(shù)據(jù)結構
重要的執(zhí)行路徑邊界條件模塊一、模塊接口測試對通過被測模塊的數(shù)據(jù)流進行測試,檢查進出模塊的數(shù)據(jù)是否正確。檢查列表
:調用本模塊的輸入?yún)?shù)是否正確;本模塊調用子模塊時輸入給子模塊的參數(shù)是否正確;全局量的定義在各模塊中是否一致;
二、模塊局部數(shù)據(jù)結構測試檢查局部數(shù)據(jù)結構能否保持完整性檢查列表
:不正確或不一致的數(shù)據(jù)類型說明變量沒有初始化變量名拼寫錯或書寫錯數(shù)組越界非法指針全局數(shù)據(jù)對模塊的影響三、模塊邊界條件測試檢查臨界數(shù)據(jù)是否正確處理檢查列表:普通合法數(shù)據(jù)是否正確處理普通非法數(shù)據(jù)是否正確處理邊界內(nèi)最接近邊界的(合法)數(shù)據(jù)是否正確處理邊界外最接近邊界的(非法)數(shù)據(jù)是否正確處理四、模塊獨立執(zhí)行路徑測試對模塊中重要的執(zhí)行路徑進行測試。檢查由于計算錯誤、判定錯誤、控制流錯誤導致的程序錯誤。檢查列表:死代碼錯誤的計算優(yōu)先級精度錯誤(比較運算錯誤、賦值錯誤)表達式的不正確符號循環(huán)變量的使用錯誤五、模塊內(nèi)部錯誤處理測試檢查內(nèi)部錯誤處理設施是否有效檢查列表:是否檢查錯誤出現(xiàn)出現(xiàn)錯誤,是否進行錯誤處理
拋出錯誤、通知用戶、進行記錄錯誤處理是否有效6.4
單元測試策略自頂向下的單元測試自底向上的單元測試孤立單元測試自頂向下的單元測試方法:先對最頂層的基本單元進行測試,把所有調用的單元做成樁模塊。然后再對第二層的基本單元進行測試,使用上面已測試的單元做驅動模塊。依此類推直到測試完所有基本單元。BACDE待測試模塊自頂向下的單元測試(續(xù))優(yōu)點:在集成測試前提供早期的集成途徑。在執(zhí)行上和詳細設計的順序一致。不需要開發(fā)驅動模塊。缺點:隨著測試的進行,測試過程越來越復雜,開發(fā)和維護成本增加。總結:比孤立單元測試的成本高很多,不是單元測試的一個好的選擇。自底向上的單元測試方法:先對最底層的基本單元進行測試,模擬調用該單元的單元做驅動模塊。然后再對上面一層進行測試,用下面已被測試過的單元做樁模塊。依此類推,直到測試完所有單元。BACDE待測試模塊優(yōu)點:在集成測試前提供系統(tǒng)早期的集成途徑。不需要開發(fā)樁模塊。缺點:隨著測試的進行,測試過程越來越復雜??偨Y:比較合理的單元測試策略,但測試周期較長。自底向上的單元測試(續(xù))孤立單元測試方法:不考慮每個單元與其它單元之間的關系,為每個單元設計樁模塊或驅動模塊。每個模塊進行獨立的單元測試。優(yōu)點:簡單、容易操作,可達到高的結構覆蓋率。缺點:不提供一種系統(tǒng)早期的集成途徑。總結:好的單元測試策略。單元測試的難點到底要測試到什么程度草草了事/過猶不及/何處是平衡點確定測試的標準之一:覆蓋率大量的測試代碼和測試用例生成、共享、管理、標注很麻煩盡量使用測試工具測試過程中工具用的最多的地方:單元測試、后期的回歸測試、負載測試、缺陷管理6.5單元測試的方法靜態(tài)代碼分析檢查是否符合編程規(guī)范找出代碼中流程設計問題代碼的重構單元結構測試代碼執(zhí)行的覆蓋率——白盒測試方法單元功能測試程序的功能實現(xiàn)——黑盒測試方法Junit簡介Junit特性在Eclipse中使用JUnit4進行單元測試6.6Junit什么是Junit一個測試框架由ErichGamma和KentBeck創(chuàng)造是Java的測試標準開源IBM'sCPLJunit特性對于測試結果的直接斷言測試組件便于組織管理圖形化或者文本化的執(zhí)行器與IDE的融合JBuilderEclipseNetBeansJDeveloperIntegration如何得到Junit網(wǎng)站:/index.htmEclipse中的JunitEclipse提供了Junit的GUI和運行框架也可以在Eclipse之外使用Junit也自帶TestRunner示例:在Eclipse中使用JUnit4進行單元測試第一步:將JUnit4單元測試包引入項目在該項目上點右鍵,點“屬性”選擇“JavaBuildPath”,選擇“Libraries”標簽,點擊“AddLibrary…”按鈕第二步,生成JUnit測試框架在Eclipse的PackageExplorer中選中Calculate.java,右鍵單擊選擇new->“JUnitTestCase”第二步,生成JUnit測試框架Eclipse自動生成的框架Eclipse導入相應的包第三步:編寫測試用例第四步:Eclipse中運行測試類右擊測試類->RunAs->JUnitTest第五步:測試結果:CalculatorTest失敗第三步:編寫測試用例1、創(chuàng)建一個待測試的對象要測試哪個類,首先就要創(chuàng)建一個該類的對象。本例為了測試Calculator類,必須創(chuàng)建一個calculator對象。如何編寫測試用例2、測試方法的聲明在測試類中,并不是每一個方法都是用于測試的,必須使用“標注”來明確表明哪些是測試方法。@Test、@Ignore、@Before、@After@Test標注使用@Test標注,以表明這是一個測試方法。方法名字可以隨便取,但規(guī)范寫法是test+方法名,方法名第一個子母大寫。方法的返回值必須為void,方法不能有任何參數(shù)。如果違反這些規(guī)定,運行時會拋出一個異常assertEquals(5,calculator.getResult());是用來判斷期待結果和實際結果是否相等JUnit自動進行測試并把測試結果反饋給用戶3、忽略測試某些尚未完成的方法加上@Ignore標注的含義是“某些方法尚未完成,暫不參與此次測試”。4、Fixture“固定代碼段”@Before,@After是每個方法測試時候必然被調用的代碼保證每一個測試都是獨立的,相互之間沒有任何耦合度@BeforeClass或@AfterClass只在測試用例初始化時執(zhí)行@BeforeClass方法,當所有測試執(zhí)行完畢之后,執(zhí)行@AfterClass進行收尾工作用于測試讀取文件等耗時的方法。該方法必須是public和static的執(zhí)行過程測試開始->setUp->testXXXX->tearDown->測試結束5、限時測試對于那些邏輯很復雜,循環(huán)嵌套比較深的程序采用限時測試函數(shù)設定一個執(zhí)行時間,超過了這個時間,他們就會被系統(tǒng)強行終止,并且系統(tǒng)還匯報該函數(shù)結束的原因是因為超時6、測試異常expected屬性用來測試函數(shù)應該拋出的異常7、Runner(運行器)JUnit中有一個默認Runner,如果沒有指定,那么系統(tǒng)自動使用默認Runner來運行代碼@RunWith是用來修飾類,可以指定需要的Runner8、參數(shù)化測試可以將所有參數(shù)集中起來一起測試。步驟:1:為測試專門生成一個新的類2:定義一個待測試的類,并且定義兩個變量,一個用于存放參數(shù),一個用于存放期待的結果3:定義測試數(shù)據(jù)的集合,用@Parameters標注進行修飾4:創(chuàng)建構造函數(shù)對先前定義的兩個參數(shù)進行初始化方法必須由Parameters注解修飾方法必須為publicstatic的方法必須返回Collection類型方法沒有參數(shù)二維數(shù)組的類型必須是Object類型的二維數(shù)組中的數(shù)據(jù)是為測試Calculator中的square()方法而準備的二維數(shù)組中的每一個元素中的數(shù)據(jù)都對應著構造方法SquareTest()中的參數(shù)的位置測試的執(zhí)行流程首先執(zhí)行data()方法,將準備好的數(shù)據(jù)作為一個Collection返回然后根據(jù)準備好的數(shù)據(jù)調用構造方法。Collection中有幾個元素,該構造方法就會被調用幾次。例中被調用3次,會產(chǎn)生3個該測試類的對象Collection中的數(shù)據(jù)是由JUnit傳給SquareTest
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年高級會計實務操作與財務分析考試題庫
- 2026年建筑工程施工員試題及答案詳解
- 2026年外貿(mào)英語商務考試題庫國際貿(mào)易術語翻譯
- 2026年電子商務運營營銷策略制定實戰(zhàn)題庫
- 《農(nóng)產(chǎn)品質量安全》-第1 章
- 大學校區(qū)做電氣預防性試驗的施工技術方案
- 圍墻拆除施工方案
- 2025年河北開放大學馬克思主義基本原理概論期末考試模擬題及答案解析(必刷)
- 2025年阿壩縣幼兒園教師招教考試備考題庫帶答案解析
- 2025年資溪縣招教考試備考題庫帶答案解析
- DB37∕T 4491-2021 三倍體單體牡蠣淺海筏式養(yǎng)殖技術規(guī)范
- 2025年注冊監(jiān)理工程師繼續(xù)教育市政公用工程專業(yè)考試題及答案
- 雅思2025年閱讀真題解析試卷(含答案)
- (2025)新課標義務教育數(shù)學(2022年版)課程標準試題庫(附含答案)
- 金太陽陜西省2028屆高一上學期10月月考物理(26-55A)(含答案)
- 2025年青海省事業(yè)單位招聘考試教師物理學科專業(yè)知識試卷解析
- 成都城投集團招聘筆試試題
- 2025年安全生產(chǎn)知識教育培訓考試試題及標準答案
- 2025年廣西壯族自治區(qū)中央遴選真題及參考答案(b類)
- 品牌管理指南的建模指南
- 氣動安全知識培訓課件
評論
0/150
提交評論