版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單元測(cè)試過(guò)程第1頁(yè),共34頁(yè),2023年,2月20日,星期三2本章大綱討論與單元測(cè)試相關(guān)的內(nèi)容,包括什么是單元測(cè)試單元測(cè)試活動(dòng)設(shè)計(jì)單元測(cè)試用例單元測(cè)試工具介紹JUnitIBMRationalPurifyandPurecoverage第2頁(yè),共34頁(yè),2023年,2月20日,星期三3定義軟件單元是在組件設(shè)計(jì)時(shí)定義的可以獨(dú)立測(cè)試的個(gè)體單元可能是:一個(gè)過(guò)程(函數(shù))一個(gè)菜單一個(gè)類一個(gè)網(wǎng)頁(yè)或者一組過(guò)程、一組菜單,一組類,一組網(wǎng)頁(yè)單元的最重要屬性是不管它是一個(gè)或者一組過(guò)程、菜單、類還是網(wǎng)頁(yè),它可以與其他的部分獨(dú)立開(kāi)來(lái)單元測(cè)試是針對(duì)單個(gè)或一組單元執(zhí)行的測(cè)試什么是單元測(cè)試第3頁(yè),共34頁(yè),2023年,2月20日,星期三4單元測(cè)試過(guò)程單元測(cè)試過(guò)程第4頁(yè),共34頁(yè),2023年,2月20日,星期三5根據(jù)IEEEStd.1008–1987forSoftwareUnitTesting,主要的單元測(cè)試活動(dòng)包括制定總體計(jì)劃,包括方法,資源和進(jìn)度確定待測(cè)特性精化總體測(cè)試計(jì)劃設(shè)計(jì)測(cè)試用例實(shí)現(xiàn)精化的計(jì)劃和設(shè)計(jì)執(zhí)行測(cè)試過(guò)程檢查測(cè)試是否可以終止評(píng)估測(cè)試效率和被測(cè)單元質(zhì)量單元測(cè)試活動(dòng)第5頁(yè),共34頁(yè),2023年,2月20日,星期三6計(jì)劃單元測(cè)試采用基于第六章提供的測(cè)試計(jì)劃模版定義自己的單元測(cè)試計(jì)劃設(shè)計(jì)單元測(cè)試用例單元測(cè)試是根據(jù)軟件單元的邏輯和結(jié)構(gòu)進(jìn)行的,通常由單元的開(kāi)發(fā)人員執(zhí)行為了設(shè)計(jì)單元測(cè)試用例,應(yīng)該:基于軟件設(shè)計(jì),確定測(cè)試單元單元測(cè)試用于測(cè)試單元的如下部分接口局部數(shù)據(jù)結(jié)構(gòu)邏輯結(jié)構(gòu):基本路徑,分支和循環(huán)單元測(cè)試活動(dòng)第6頁(yè),共34頁(yè),2023年,2月20日,星期三7單元測(cè)試用于測(cè)試單元的如下部分錯(cuò)誤處理運(yùn)行時(shí)特征,如內(nèi)存分配、動(dòng)態(tài)綁定、運(yùn)行時(shí)類型信息等。這些通常被單元測(cè)試人員忽略運(yùn)用測(cè)試用例設(shè)計(jì)方法設(shè)計(jì)單元測(cè)試用例。在單元測(cè)試中,使用最多的測(cè)試技術(shù)是白盒測(cè)試。當(dāng)然可以使用其它技術(shù),重要的一點(diǎn)是所選取的測(cè)試技術(shù)適合于相應(yīng)的測(cè)試需求可以通過(guò)結(jié)構(gòu)化自然語(yǔ)言描述測(cè)試用例,也可以用編程語(yǔ)言實(shí)現(xiàn)測(cè)試用例。設(shè)計(jì)單元測(cè)試用例第7頁(yè),共34頁(yè),2023年,2月20日,星期三8單元測(cè)試環(huán)境執(zhí)行單元測(cè)試的軟硬件環(huán)境待測(cè)單元單元測(cè)試用例因?yàn)閱卧钦麄€(gè)系統(tǒng)的一部分,它不能單獨(dú)運(yùn)行。為了執(zhí)行單元測(cè)試用例需要開(kāi)發(fā)如下的測(cè)試代碼驅(qū)動(dòng):模擬調(diào)用函數(shù)的一段代碼,它可以替代調(diào)用被測(cè)單元的模塊樁:模擬被測(cè)單元所調(diào)用函數(shù)的一段代碼,它可以替代被被測(cè)單元調(diào)用的模塊搭建單元測(cè)試環(huán)境第8頁(yè),共34頁(yè),2023年,2月20日,星期三9方法單元測(cè)試可以完全手工執(zhí)行,也可以借助工具執(zhí)行或者使用兩者的結(jié)合單元測(cè)試中的缺陷跟蹤缺陷一定要記錄一般采用簡(jiǎn)化流程執(zhí)行單元測(cè)試第9頁(yè),共34頁(yè),2023年,2月20日,星期三10常用單元測(cè)試工具靜態(tài)測(cè)試工具靜態(tài)分析工具動(dòng)態(tài)測(cè)試工具JUnitFramework/projects/Junit/IBMRationalPurecoverageIBMRationalPurifyIBMRationalQuantify可以從IBM網(wǎng)站獲得試用版本
/software/sw-atoz/indexR.html執(zhí)行單元測(cè)試第10頁(yè),共34頁(yè),2023年,2月20日,星期三11RationalPurifyRationalPurify可以檢測(cè).NET和Java應(yīng)用程序中方法和對(duì)象級(jí)別上的內(nèi)存管理問(wèn)題VisualC/C++應(yīng)用程序的運(yùn)行時(shí)錯(cuò)誤和內(nèi)存泄漏問(wèn)題運(yùn)行Purify與Purecovery一樣,有三種運(yùn)行Purify的方法通過(guò)Purify自帶的用戶界面在IDE如MicrosoftVisualStudio6,VisualStudio.NETandIBMWebSphereStudio中運(yùn)行通過(guò)命令行第11頁(yè),共34頁(yè),2023年,2月20日,星期三12檢測(cè)C/C++程序內(nèi)存泄漏方法為了檢測(cè)C/C++程序運(yùn)行時(shí)錯(cuò)誤,只需要通過(guò)Purify運(yùn)行被測(cè)程序就會(huì)獲得所需的信息下面以Purify自帶的示例“Hello.c”為例,演示如何利用Purify檢測(cè)C程序中的內(nèi)存泄漏等運(yùn)行時(shí)問(wèn)題第12頁(yè),共34頁(yè),2023年,2月20日,星期三13檢測(cè)C/C++程序內(nèi)存泄漏第一步:指定被測(cè)程序:“purifyinstalldir\PurifyPlus\PurifySamples\hello.c”,點(diǎn)擊Run第13頁(yè),共34頁(yè),2023年,2月20日,星期三14檢測(cè)C/C++程序內(nèi)存泄漏第2步:等待Purify完成對(duì)被測(cè)程序的插樁動(dòng)作,點(diǎn)擊被測(cè)程序“確定”按鈕第14頁(yè),共34頁(yè),2023年,2月20日,星期三15檢測(cè)C/C++程序內(nèi)存泄漏第3步:被測(cè)程序運(yùn)行結(jié)束后,Purify會(huì)在數(shù)據(jù)瀏覽窗口顯示相應(yīng)的信息這些有色圖標(biāo)顯示被測(cè)程序存在運(yùn)行錯(cuò)誤內(nèi)存泄漏信息第15頁(yè),共34頁(yè),2023年,2月20日,星期三16檢測(cè)C/C++程序內(nèi)存泄漏第4步:檢查可疑代碼,修復(fù)缺陷第16頁(yè),共34頁(yè),2023年,2月20日,星期三17檢測(cè)C/C++程序內(nèi)存泄漏作出的修改第17頁(yè),共34頁(yè),2023年,2月20日,星期三18檢測(cè)C/C++程序內(nèi)存泄漏第5步:重復(fù)步驟1~4,運(yùn)行修改后代碼”better.c”。Wow~~~!這次沒(méi)有出現(xiàn)運(yùn)行時(shí)問(wèn)題第18頁(yè),共34頁(yè),2023年,2月20日,星期三19檢測(cè)Java程序內(nèi)存泄漏執(zhí)行如下步驟分析內(nèi)存使用情況通過(guò)Purify運(yùn)行Java或.NET程序在被測(cè)程序初始化完成后,提取第一次內(nèi)存快照運(yùn)行懷疑可能存在內(nèi)存泄漏的代碼,完成后再提取第二次內(nèi)存快照比較兩次快照以識(shí)別可能引起內(nèi)存泄漏的方法檢查代碼中不再使用對(duì)象的可疑方法或者包含引用不再使用對(duì)象的對(duì)象。下面以Purify自帶的樣例“LeakSample.java”為例演示如何檢測(cè)Java內(nèi)存泄漏第19頁(yè),共34頁(yè),2023年,2月20日,星期三20檢測(cè)Java程序內(nèi)存泄漏第一步運(yùn)行Purify第20頁(yè),共34頁(yè),2023年,2月20日,星期三21檢測(cè)Java程序內(nèi)存泄漏第2步指定被測(cè)程序“purifyinstalldir\PurifyPlus\PurifySamples\Java\LeakSample\LeakSample.class”,點(diǎn)擊Run,將顯示一個(gè)小窗口第21頁(yè),共34頁(yè),2023年,2月20日,星期三22檢測(cè)Java程序內(nèi)存泄漏第3步:待被測(cè)程序初始化完成后,點(diǎn)擊工具條上的“GarbageCollect”按鈕,提取第一次內(nèi)存快照第22頁(yè),共34頁(yè),2023年,2月20日,星期三23檢測(cè)Java程序內(nèi)存泄漏第4步:選擇“LeakContinuously”,點(diǎn)擊“Start”按鈕。你會(huì)發(fā)現(xiàn)內(nèi)存使用隨程序的運(yùn)行不斷地增加,紅點(diǎn)是JAVA程序自動(dòng)產(chǎn)生的垃圾回收點(diǎn)第23頁(yè),共34頁(yè),2023年,2月20日,星期三24檢測(cè)Java程序內(nèi)存泄漏第5步:點(diǎn)擊被測(cè)程序的“stop”按鈕第24頁(yè),共34頁(yè),2023年,2月20日,星期三25檢測(cè)Java程序內(nèi)存泄漏第6步:再次點(diǎn)擊工具條上的“GarbageCollect”按鈕,提取第二次快照,對(duì)兩次內(nèi)存快照進(jìn)行比較后發(fā)現(xiàn),在兩次快照間存在相當(dāng)?shù)膬?nèi)存差異,這表明你的程序中存在內(nèi)存泄漏問(wèn)題memorygap第25頁(yè),共34頁(yè),2023年,2月20日,星期三26檢測(cè)Java程序內(nèi)存泄漏第7步:點(diǎn)擊待被測(cè)程序的“Exit”按鈕,Purify的數(shù)據(jù)瀏覽窗口打開(kāi)同時(shí)”LeakSample$Processor”方法高亮顯示第26頁(yè),共34頁(yè),2023年,2月20日,星期三27檢測(cè)Java程序內(nèi)存泄漏第8步:右鍵點(diǎn)擊”LeakSample$Processor”,選擇源文件第27頁(yè),共34頁(yè),2023年,2月20日,星期三28檢測(cè)Java程序內(nèi)存泄漏第9步:檢查”LeakSample.java”源文件中可疑的方法修正缺陷可能是這里出了問(wèn)題第28頁(yè),共34頁(yè),2023年,2月20日,星期三29改成for(i=0;
i<cnt;i++)檢測(cè)Java程序內(nèi)存泄漏第29頁(yè),共34頁(yè),2023年,2月20日,星期三30第10步:采用與1~9相同的步驟運(yùn)行修改后的”LeakSample.java”。這次運(yùn)行結(jié)果顯示兩次快照之間不存在內(nèi)存差異了沒(méi)有內(nèi)存差異檢測(cè)Java程序內(nèi)存泄漏第30頁(yè),共34頁(yè),2023年,2月20日,星期三31其他單元測(cè)試工具靜態(tài)分析工具PC-LintforC/C++LogiscopeXXUnit系列工具(都可從/下載)CUnittestingFrameworkNUnitforC#DUnitforDelphiXMLUnitJsUnitforclient-sideJavaScriptSimpleTestforPHP….第31頁(yè),共34頁(yè),2023年,2月20日,星期三32模版基于第10章介紹的模版編寫(xiě)單元測(cè)試報(bào)告主要內(nèi)容單元測(cè)試報(bào)告總結(jié)了整個(gè)單元測(cè)試過(guò)程并可提供有利于過(guò)程改進(jìn)的信息,如:計(jì)劃的測(cè)試用例數(shù)修改的測(cè)試用例數(shù)刪除的測(cè)試用例數(shù)實(shí)際執(zhí)行的測(cè)試用例數(shù)未測(cè)用例數(shù)量和未測(cè)原因發(fā)現(xiàn)的嚴(yán)重缺陷數(shù)量掛起缺陷數(shù)量評(píng)估測(cè)試單元改進(jìn)建議單元測(cè)試報(bào)告第32頁(yè),共34頁(yè),2023年,2月20日,星期三33下面的建議可能很有幫助單元測(cè)試前執(zhí)行代碼檢視由開(kāi)發(fā)被測(cè)單元的程序員執(zhí)行單元測(cè)試完成代碼后修改單元測(cè)試用例記得測(cè)試運(yùn)行時(shí)問(wèn)題測(cè)試程序越簡(jiǎn)單越好開(kāi)發(fā)測(cè)試程序編程規(guī)范在單元測(cè)試時(shí)使用裁減的缺陷
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年環(huán)境治理與生態(tài)保護(hù)合同項(xiàng)目?jī)?nèi)容與責(zé)任分配
- 2024年社區(qū)商業(yè)中心物業(yè)全面管理與維護(hù)合同2篇
- 2024版國(guó)際技術(shù)貿(mào)易須知
- 2025年度新能源項(xiàng)目投資咨詢與市場(chǎng)分析協(xié)議3篇
- 2024年行動(dòng)協(xié)調(diào)與信息共享協(xié)議3篇
- 2024年環(huán)保項(xiàng)目投資無(wú)息借款合同3篇
- 2024年簡(jiǎn)化離婚合同書(shū)范例不含子女撫養(yǎng)版B版
- win003-server-pop3-smtp郵件服務(wù)器搭建詳細(xì)圖解教程
- 專題07-語(yǔ)法填空之名詞性從句專練-2023屆英語(yǔ)語(yǔ)法填空強(qiáng)化100題-原卷版
- 2024舞蹈賽事組織舞蹈教練聘請(qǐng)合同3篇
- GB/T 2317.1-2000電力金具機(jī)械試驗(yàn)方法
- 供應(yīng)商ROHs審核表
- JESD22~B117A中文版完整詳細(xì)
- 五大發(fā)電公司及所屬電廠列表及分部精編版
- 小學(xué)數(shù)學(xué)聽(tīng)課記錄 精選(范文20篇)
- 住宅工程公共區(qū)域精裝修施工組織設(shè)計(jì)(217頁(yè))
- 冷卻塔技術(shù)要求及質(zhì)量標(biāo)準(zhǔn)介紹
- 光伏電站設(shè)備監(jiān)造與性能驗(yàn)收
- 10kV架空線路施工方案
- 2018江蘇蘇州中考英語(yǔ)真題解析
- 10KV戶外封閉型噴射式熔斷器技術(shù)規(guī)范書(shū)
評(píng)論
0/150
提交評(píng)論