




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、單元測試10-1議題單元測試目標任務單元測試技術靜態(tài)分析測試設計單元測試流程管理流程測試文檔單元測試概況定義:檢驗程序最小單位有無錯誤。一般在編碼之后,由開發(fā)人員完成。單元:軟件開發(fā)中的最小的獨立部分C語言中的單元:函數或者是子過程C+語言中的單元:類目前狀況:實施效果非常好,但是實施阻力比較大(主要是人員和管理因素),一般只在關鍵的程序單元中實施有比較系統(tǒng)的理論和方法,但也依賴于系統(tǒng)的特殊性和開發(fā)人員的經驗有大量的輔助工具,開發(fā)人員也經常自己開發(fā)測試代碼和測試工具主要使用白盒測試和靜態(tài)分析,也使用黑盒測試單元測試目標1、檢查代碼實現(xiàn)是否符合設計不能檢查設計是否正確2、盡早發(fā)現(xiàn)錯誤Micros
2、oft applications10-20 defects/KLOC during unit testing0.5 defects/KLOC after release性價比最好單元測試的內容 模塊錯誤處理模塊接口局部數據結構 重要的執(zhí)行路徑邊界條件單元測試主要對模塊的五個基本特性進行評價單元測試任務1、模塊接口測試檢查進出模塊的數據是否正確Checklist:模塊的實際輸入與定義的輸入是否一致個數、類型、順序模塊中對于非內部/局部變量是否合理使用使用其他模塊時,是否檢查可用性和處理結果使用外部資源時,是否檢查可用性并及時釋放資源內存、文件、硬盤、端口等其他單元測試任務2、模塊局部數據結構測試
3、檢查局部數據結構能否保持完整性Checklist:變量從來沒有被使用可能別的地方使用了錯誤的變量名變量沒有初始化錯誤的類型轉換數組越界非法指針變量或函數名稱拼寫錯誤使用了外部變量或函數其他單元測試任務3、模塊邊界條件測試檢查臨界數據是否正確處理Checklist:普通合法數據是否正確處理普通非法數據是否正確處理邊界內最接近邊界的(合法)數據是否正確處理邊界外最接近邊界的(非法)數據是否正確處理其他單元測試任務4、模塊獨立執(zhí)行通路(路徑)測試檢查由于計算錯誤、判定錯誤、控制流錯誤導致的程序錯誤Checklist:死代碼錯誤的計算優(yōu)先級精度錯誤比較運算錯誤賦值錯誤表達式的不正確符號、=;=、=、!
4、=循環(huán)變量的使用錯誤錯誤賦值其他單元測試任務5、模塊內部錯誤處理測試檢查內部錯誤處理設施是否有效Checklist:是否檢查錯誤出現(xiàn)資源使用前后其他模塊使用前后出現(xiàn)錯誤,是否進行錯誤處理拋出錯誤通知用戶進行記錄錯誤處理是否有效在系統(tǒng)干預前處理報告和記錄的錯誤真實詳細其他單元測試技術靜態(tài)分析定義:不實際運行程序,而是通過檢查和閱讀等手段來發(fā)現(xiàn)錯誤并評估代碼質量的軟件測試技術。也稱為靜態(tài)測試技術。方法:走查:WalkThrough審查:Inspection評審:ReviewMichael Fagan IBM(1976)單元測試技術靜態(tài)分析-走查定義:開發(fā)組內部進行的,采用講解、討論和模擬運行的方式
5、進行的查找錯誤的活動。經驗:限時避免跑題參加人員經驗豐富的開發(fā)人員和本模塊相關的開發(fā)人員本項目組的新人由本模塊的開發(fā)者進行講解、回答問題并記錄不要現(xiàn)場修改檢查要點邏輯錯誤代碼標準/規(guī)范/風格單元測試技術靜態(tài)分析-審查定義:開發(fā)組內部進行的,采用講解、提問并使用Checklist方式進行的查找錯誤的活動。一般有正式的計劃、流程和結果報告。經驗:以會議的形式,制定會議目標、流程和規(guī)則,結束后要編寫報告參加人員經驗豐富的開發(fā)人員和本模塊相關的開發(fā)人員本項目組的新人由另外一名開發(fā)者進行講解、其他開發(fā)者主要按照Checklist進行提問并填表、本模塊開發(fā)者回答問題并記錄不要現(xiàn)場修改檢查要點設計需求代碼標
6、準/規(guī)范/風格單元測試技術靜態(tài)分析-評審定義:開發(fā)組、測試組和相關人員(QA、產品經理等)聯(lián)合進行的,采用講解、提問并使用Checklist方式進行的查找錯誤的活動。一般有正式的計劃、流程和結果報告。經驗:以會議的形式,制定會議目標、流程和規(guī)則,結束后要編寫報告。相關資料要在會議前下發(fā)并閱讀。參加人員經驗豐富的開發(fā)人員和本模塊相關的開發(fā)人員測試組和相關人員由另外一名開發(fā)者進行講解、其他開發(fā)者主要按照Checklist進行提問并填表、本模塊開發(fā)者回答問題并記錄不要現(xiàn)場修改檢查要點設計需求代碼標準/規(guī)范/風格文檔的完整性和一致性單元測試技術測試設計定義:依據模塊的內部結構,設計測試用例的過程。主要
7、采用白盒測試技術,關注邏輯覆蓋原則:1、保證沒有死代碼保證一個模塊中的每個獨立路徑都可能被使用到2、保證對所有的邏輯值都測試true和false3、在上下邊界和合法的范圍內運行所有的循環(huán)4、確保內部數據結構的有效性和完整性單元測試技術測試設計邏輯覆蓋測試方法:1、語句覆蓋選擇足夠的測試用例,使得程序中每一條可執(zhí)行語句至少被執(zhí)行一次。2、判定覆蓋選擇足夠的測試用例,使得程序中每一個分支判斷的每一種可能結果(主要指switch-case情況)都至少被執(zhí)行一次。判定覆蓋也叫分支覆蓋。3、條件覆蓋選擇足夠的測試用例,使得程序中每一個分支判斷中的每一個條件的可能結果都至少被執(zhí)行一次。單元測試技術測試設計
8、邏輯覆蓋測試方法:1、語句覆蓋2、判定覆蓋3、條件覆蓋4、判定/條件覆蓋選擇足夠的測試用例,使得同時滿足判定覆蓋和條件覆蓋。5、條件組合覆蓋選擇足夠的測試用例,使得程序中每一個分支判斷中的每一個條件的每一種可能組合結果都至少被執(zhí)行一次。6、路徑覆蓋選擇足夠的測試用例,使得程序中所有的可能路徑都至少被執(zhí)行一次。單元測試技術測試設計邏輯覆蓋測試方法:語句覆蓋判定覆蓋條件覆蓋判定/條件覆蓋條件組合覆蓋路徑覆蓋單元測試流程管理流程主要指動態(tài)測試應用流程測試計劃測試設計測試執(zhí)行測試記錄分析測試總結完畢缺陷跟蹤針對測試目標,規(guī)定測試任務、資源分配、人員角色、進度安排等。根據測試計劃,設計測試用例,包括:測
9、試步驟、測試場景、測試代碼、測試數據(包括預期結果)。根據測試計劃,配置測試環(huán)境,并手動或者自動執(zhí)行測試設計。根據測試計劃,忠實地記錄測試執(zhí)行的過程和結果。分析測試記錄,如果發(fā)現(xiàn)與預期結果不同,確定并重現(xiàn)缺陷。檢查測試設計是否全部執(zhí)行完畢,缺陷是否全部關閉。記錄、分發(fā)、評估、關閉缺陷報告。分析測試過程和缺陷報告,評估測試質量和測試效果,給出是否通過測試的建議。單元測試流程測試文檔主要指動態(tài)測試應用文檔測試計劃測試設計測試執(zhí)行測試記錄分析測試總結完畢缺陷跟蹤測試計劃文檔測試用例文檔測試記錄文檔缺陷跟蹤報告測試總結報告單元測試工具JunitWhat is JUnitDe facto Java un
10、it testing frameworkIntegrated nicely with IDEs and AntEasy to learnSupport many IDEsJBuilder, VisualAge, Eclipse 實例public class Car public int getWheels ()return 4;實例(cont.)public class TestCar public static void main(String args) Car car = new Car();if (4 = car.getWheels()System.out.println(Ok!);e
11、lseSystem.out.println(Error!);import junit.framework.TestCase;public class CarTest extends TestCase protected Car car;protected int expectedWheels;public static void main(String args) junit.swingui.TestRunner.run(CarTest.class); public CarTest(String arg0) super(arg0);實例(cont.) protected void setUp(
12、) throws Exception car = new Car();expectedWheels = 4; protected void tearDown() throws Exception super.tearDown();public void testGetWheels ()assertEquals(expectedWheels, car.getWheels();JUnit Rules and ConventionsSubclass TestCasePrior to v3.8, String-arg constructor requiredTest methodspublic voi
13、d testXXX() throws Any number of assertions per methodImplement main to run from command-line, but not necessaryOptionally add setUp / tearDown methods.TestCase lifecyclesetUptestXXX()tearDown()Repeats 1 through 3 for each testXXX methodAssert系列方法assertEquals(primExpected, primActual)assertEquals(ob
14、jExpected, objActual)assertSame(objExpected, objActual)assertNotSame(objExpected, objActual)assertNull(obj)assertNotNull(obj)assertTrue(boolean condition)assertFalse(boolean condition)e.g. assertEquals(0, epoch.getTime();TestSuiteimport junit.framework.*;public class AllTests public static void main (
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 整車制造綠色環(huán)保技術應用考核試卷
- 木材采伐作業(yè)成本控制考核試卷
- 衛(wèi)生材料的社會影響與企業(yè)責任考核試卷
- 在建工地安全課件模板
- 工廠院內改造合同范本
- 公司聘用合同范本6
- 土地小院出租合同范本
- 團隊合作合同范本
- 鋁廠服裝租借合同范本
- 小學生注意力課件
- 《調整心態(tài)迎接中考》主題班會
- 冠心病患者運動恐懼的現(xiàn)狀及影響因素分析
- 全國2018年10月自考00043經濟法概論(財經類)試題及答案
- 《又見平遙》課件
- 噴涂設備點檢表
- 廣東省佛山市《綜合基礎知識》事業(yè)單位國考真題
- 02 第2章 城市與城市化-城市管理學
- 六年級上冊英語教案-Culture 2 Going Green 第二課時 廣東開心英語
- 警察叔叔是怎樣破案的演示文稿課件
- 2019石景山初三一模語文試題及答案
- 09式 新擒敵拳 教學教案 教學法 圖解
評論
0/150
提交評論