版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 第5章 面向?qū)ο筌浖臏y(cè)試5.1 面向?qū)ο蟮臏y(cè)試概述5.1.1 面向?qū)ο蟮幕靖拍蠲嫦驅(qū)ο罂梢钥闯墒乾F(xiàn)實(shí)世界模型的自然延伸,現(xiàn)實(shí)世界中的任何實(shí)體都可以看成是對(duì)象。傳統(tǒng)的過(guò)程式編程語(yǔ)言是以過(guò)程為中心,以算法為驅(qū)動(dòng)。因此,過(guò)程式編程語(yǔ)言是:程序=算法+數(shù)據(jù);而面向?qū)ο蟮木幊陶Z(yǔ)言是以對(duì)象為中心,以消息為驅(qū)動(dòng)。因此,面向?qū)ο蟮木幊陶Z(yǔ)言是:程序=對(duì)象+消息。面向?qū)ο蟮能浖_發(fā)以六個(gè)重要的基本概念為核心:對(duì)象、類、繼承、多態(tài)、消息和接口。5.1.2 面向?qū)ο蟮臏y(cè)試內(nèi)容1對(duì)象2類3封裝4繼承5多態(tài)6消息7接口5.1.3 面向?qū)ο蟮臏y(cè)試模型需求測(cè)試。設(shè)計(jì)測(cè)試。單元測(cè)試。子系統(tǒng)測(cè)試。系統(tǒng)集成測(cè)試。接受測(cè)試。5
2、.2 面向?qū)ο蟮膯卧獪y(cè)試5.2.1 基本步驟1)劃分類的優(yōu)先級(jí)2)靜態(tài)測(cè)試3)對(duì)需要執(zhí)行單元測(cè)試的類設(shè)計(jì)測(cè)試用例4)開發(fā)測(cè)試驅(qū)動(dòng)5)執(zhí)行測(cè)試,對(duì)測(cè)試結(jié)果進(jìn)行總結(jié)5.2.2 類的優(yōu)先級(jí)1、類的優(yōu)先級(jí)的設(shè)定1)類在系統(tǒng)中所起的作用2)類自身的復(fù)雜度和與其他類之間的交互復(fù)雜度3)開發(fā)該類的測(cè)試程序所需的成本5.2.2 類的優(yōu)先級(jí)2優(yōu)先級(jí)設(shè)定的一般方法由于測(cè)試程序的開發(fā)成本不便于估算,因此,一般僅從前兩個(gè)方面來(lái)計(jì)算類的測(cè)試價(jià)值,通過(guò)將測(cè)試價(jià)值量化來(lái)設(shè)定類的測(cè)試優(yōu)先級(jí),該值越大,對(duì)應(yīng)類的測(cè)試優(yōu)先級(jí)別越高。5.2.3 測(cè)試用例的設(shè)計(jì)1、案例說(shuō)明MyShape2.根據(jù)代碼設(shè)計(jì)用例3根據(jù)前置條件和后置條件6.
3、綜合策略5.根據(jù)方法特性5.2.4 測(cè)試驅(qū)動(dòng)的實(shí)現(xiàn)方式測(cè)試用例實(shí)際上屬于一個(gè)靜態(tài)的概念,若沒(méi)有測(cè)試腳本的支持,則測(cè)試用例只能以手工方式在調(diào)試環(huán)境下執(zhí)行,大量人力勞動(dòng)都將耗費(fèi)在測(cè)試數(shù)據(jù)的設(shè)定、程序的執(zhí)行、Watch窗口或Output窗口的觀察等簡(jiǎn)單重復(fù)的工作上,不僅效果差,容易出錯(cuò),而且完全不利于回歸測(cè)試。單元測(cè)試一定要實(shí)現(xiàn)自動(dòng)化,必須通過(guò)設(shè)計(jì)測(cè)試驅(qū)動(dòng)程序,讓測(cè)試用例自動(dòng)執(zhí)行、執(zhí)行結(jié)果自動(dòng)檢驗(yàn)、測(cè)試報(bào)告自動(dòng)給出。測(cè)試驅(qū)動(dòng)的設(shè)計(jì)本質(zhì)上是通過(guò)創(chuàng)建被測(cè)類的實(shí)例和測(cè)試這些實(shí)例的行為來(lái)測(cè)試類,但測(cè)試驅(qū)動(dòng)的形式是多種多樣的。下面介紹常見的測(cè)試驅(qū)動(dòng)設(shè)計(jì)方法。1.利用main方法在被測(cè)類中,利用main方法來(lái)實(shí)
4、現(xiàn)測(cè)試驅(qū)動(dòng)是一個(gè)最為簡(jiǎn)便的方式不需要考慮被測(cè)方法的訪問(wèn)權(quán)限,不需要考慮被測(cè)程序的文件管理,直接將每個(gè)測(cè)試都寫入main方法,測(cè)試結(jié)果可直接輸出到屏幕。用main方法,能夠撰寫測(cè)試代碼并可快速觀察到測(cè)試結(jié)果,但是導(dǎo)致的直接后果是:測(cè)試代碼與開發(fā)代碼混在一起,測(cè)試完畢后需將測(cè)試代碼從開發(fā)代碼中刪去,這樣完全無(wú)法進(jìn)行回歸測(cè)試,難以維護(hù)和復(fù)用測(cè)試代碼。2.嵌入靜態(tài)方法在被測(cè)類中嵌入靜態(tài)方法,在靜態(tài)方法內(nèi)部實(shí)現(xiàn)測(cè)試用例的執(zhí)行,測(cè)試結(jié)果直接輸出到屏幕,且不需要考慮被測(cè)方法的訪問(wèn)權(quán)限。當(dāng)需要測(cè)試時(shí),在別的地方調(diào)用這些靜態(tài)方法即可。用嵌入靜態(tài)方法,不需要將被測(cè)試類實(shí)例化就可以直接測(cè)試,但是測(cè)試代碼仍與開發(fā)代碼
5、放在一個(gè)文件中,測(cè)試完畢后需要將測(cè)試代碼從開發(fā)代碼中刪除,并且不能從根本上解決回歸測(cè)試問(wèn)題。3.獨(dú)立的測(cè)試類為了便于組織測(cè)試代碼和便于回歸測(cè)試,應(yīng)將測(cè)試代碼從開發(fā)代碼中完全獨(dú)立出來(lái),建立獨(dú)立的測(cè)試類。測(cè)試類可以處理被測(cè)類的實(shí)例化、對(duì)類的方法的測(cè)試、測(cè)試結(jié)果的自動(dòng)檢驗(yàn)和測(cè)試通過(guò)或失敗的統(tǒng)計(jì)等。創(chuàng)建獨(dú)立于被測(cè)類的測(cè)試驅(qū)動(dòng)類可以真正實(shí)現(xiàn)測(cè)試代碼與開發(fā)代碼的相互獨(dú)立,完全自動(dòng)化的測(cè)試可以大大提高回歸測(cè)試的效率,提高單元測(cè)試的效果,縮短集成測(cè)試的時(shí)間,同時(shí)確保軟件的質(zhì)量。然而,撰寫和維護(hù)測(cè)試代碼將給開發(fā)人員帶來(lái)額外的工作量,迫于進(jìn)度的壓力,開發(fā)人員往往疲于寫代碼,沒(méi)有時(shí)間來(lái)寫測(cè)試程序,且隨著需求、設(shè)計(jì)的
6、變化,被測(cè)類代碼也會(huì)發(fā)生變化,測(cè)試驅(qū)動(dòng)類需要密切關(guān)注被測(cè)類的這些變化,這在另外一個(gè)層面上也間接導(dǎo)致了開發(fā)人員不愿意寫測(cè)試代碼??傮w而言,獨(dú)立的測(cè)試類能夠起到事半功倍的效果,是開發(fā)人員應(yīng)首先選擇用來(lái)實(shí)現(xiàn)測(cè)試驅(qū)動(dòng)的方法,但要注意的是應(yīng)盡量利用現(xiàn)成的自動(dòng)化單元測(cè)試工具來(lái)輔助編碼,使得開發(fā)人員以最少的時(shí)間和精力來(lái)撰寫最有效的測(cè)試代碼,否則沒(méi)有人愿意做這些額外的工作。5.2.5 測(cè)試驅(qū)動(dòng)框架和代碼的組織1測(cè)試驅(qū)動(dòng)框架2代碼組織1測(cè)試驅(qū)動(dòng)框架1)設(shè)計(jì)目標(biāo) 自動(dòng) 簡(jiǎn)單 靈活2)設(shè)計(jì)思想構(gòu)建和執(zhí)行測(cè)試用例創(chuàng)建和操作被測(cè)類的Object實(shí)例 分析測(cè)試用例結(jié)果將測(cè)試過(guò)程記錄到日志文件5.2.5 測(cè)試驅(qū)動(dòng)框架和代碼
7、的組織2代碼組織1)與產(chǎn)品代碼放在一起2)放在產(chǎn)品代碼的目錄下4)與產(chǎn)品代碼的副本放在一起3)與產(chǎn)品代碼并行5.3 面向?qū)ο蟮募蓽y(cè)試和系統(tǒng)測(cè)試1集成測(cè)試 傳統(tǒng)的集成測(cè)試方法包括自頂向下、自底向上和三明治方法。集成測(cè)試需要進(jìn)行仔細(xì)的規(guī)劃,其中繼承測(cè)試應(yīng)該在一個(gè)類繼承另一個(gè)類后盡快進(jìn)行。類層、測(cè)試策略,因此系統(tǒng)集成需要不同類型的集成測(cè)試策略。2系統(tǒng)測(cè)試集成后的系統(tǒng)測(cè)試是軟件測(cè)試生命周期中一個(gè)主要階段。把測(cè)試活動(dòng)分布到不同階段除了可以在早期階段識(shí)別錯(cuò)誤外,也能減少在單獨(dú)一個(gè)階段中需要的工作量。系統(tǒng)測(cè)試包括健全測(cè)試、文檔測(cè)試、性能測(cè)試、壓力測(cè)試和邊界測(cè)試。系統(tǒng)測(cè)試是在軟件開發(fā)生命周期最后階段執(zhí)行的一
8、種測(cè)試,從廣義上講,系統(tǒng)測(cè)試可以包括集成后的系統(tǒng)測(cè)試和接收測(cè)試。根據(jù)機(jī)構(gòu)和被測(cè)試軟件情況,alfa測(cè)試、Bata測(cè)試或其它任何形式的測(cè)試都可以作為該測(cè)試方式的補(bǔ)充。系統(tǒng)測(cè)試的主要目標(biāo)是通過(guò)在一段時(shí)間內(nèi)觀察其行為,確定軟件系統(tǒng)是否為交付用戶做好準(zhǔn)備。它對(duì)集成后的整個(gè)系統(tǒng)進(jìn)行測(cè)試,判斷是否與需求一致。5.4 面向?qū)ο筌浖臏y(cè)試工具5.4.1 JUnit介紹JUnit是一個(gè)開放源代碼的Java測(cè)試框架;是迄今所開發(fā)的最重要的第三方Java庫(kù)由Eric Gamma和Kent Beck(XP方法論和Refacotr的先驅(qū)之一)開發(fā)。同時(shí),它引導(dǎo)并促進(jìn)了測(cè)試的盛行,使得Java代碼變得更健壯、更可靠,缺陷
9、也比以前更少。作為一個(gè)優(yōu)秀的單元測(cè)試框架,JUnit用于編寫和運(yùn)行可重復(fù)的測(cè)試,是專門針對(duì)Java代碼的單元測(cè)試,主要用于白盒測(cè)試和回歸測(cè)試。JUnit還可以擴(kuò)展用于功能測(cè)試、性能測(cè)試等。5.4.2 JTest介紹JTest是Parasoft公司開發(fā)的一款針對(duì)Java語(yǔ)言的自動(dòng)化白盒測(cè)試工具,通過(guò)自動(dòng)實(shí)現(xiàn)Java的單元測(cè)試和代碼標(biāo)準(zhǔn)效驗(yàn),來(lái)提高代碼的可靠性。JTest先分析每個(gè)Java類,然后自動(dòng)生成JUnit測(cè)試用例并執(zhí)行測(cè)試用例,從而實(shí)現(xiàn)代碼的最大覆蓋,并將代碼運(yùn)行時(shí)未處理的異常情況顯露出來(lái)。同時(shí),它也可以檢查DbC(Desgin by Contract)規(guī)范開發(fā)的代碼的正確性。用戶還可以通過(guò)擴(kuò)展測(cè)試用例的自動(dòng)生成起來(lái)添加更多的JUnit用例。JTest還能按照現(xiàn)有的超過(guò)350個(gè)編碼標(biāo)準(zhǔn)來(lái)檢查并自動(dòng)糾正大多數(shù)常見的編碼規(guī)則上的偏差,用戶可自定義這些標(biāo)準(zhǔn),通過(guò)簡(jiǎn)單的幾個(gè)點(diǎn)擊,就能預(yù)防類似于未處理異常、函數(shù)錯(cuò)誤、內(nèi)存泄露、性能問(wèn)題、安全隱患這樣的代碼問(wèn)題。另外,JTest采用Parasoft公司的AEP方法論來(lái)實(shí)現(xiàn)團(tuán)隊(duì)開發(fā)中隊(duì)代碼錯(cuò)誤的標(biāo)準(zhǔn)化管理,這個(gè)方法論,也是Parasoft提出的機(jī)遇團(tuán)隊(duì)開發(fā)模式下提到軟件質(zhì)量和可靠性的一套解決方案,其目前還處于探索階段。5.5 綜合案例5.6 本章小結(jié)面向?qū)ο鬄檐浖_發(fā)提供了一個(gè)新方向,能提高軟件可重
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年生態(tài)農(nóng)業(yè)化肥定制配送服務(wù)合同2篇
- 2025年度南匯農(nóng)業(yè)志修訂與多媒體制作合同4篇
- 2025年度綠色食品生產(chǎn)基地租賃合同模板4篇
- 2025年度門窗安裝與建筑保溫隔熱工程合同范本3篇
- 二零二五年度出渣車輛環(huán)保排放達(dá)標(biāo)改造合同4篇
- 2025年度個(gè)人農(nóng)田租賃與農(nóng)業(yè)品牌建設(shè)合同4篇
- 二零二五年度床上用品品牌形象設(shè)計(jì)合同8篇
- 二零二五年度農(nóng)商行農(nóng)村農(nóng)業(yè)科技推廣貸款合同范本4篇
- 二零二五年度城市地下綜合管廊樁基施工勞務(wù)分包合同文本3篇
- 2025年度木地板產(chǎn)品安全認(rèn)證與風(fēng)險(xiǎn)評(píng)估合同4篇
- 南通市2025屆高三第一次調(diào)研測(cè)試(一模)地理試卷(含答案 )
- 2025年上海市閔行區(qū)中考數(shù)學(xué)一模試卷
- 2025中國(guó)人民保險(xiǎn)集團(tuán)校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 重癥患者家屬溝通管理制度
- 法規(guī)解讀丨2024新版《突發(fā)事件應(yīng)對(duì)法》及其應(yīng)用案例
- IF鋼物理冶金原理與關(guān)鍵工藝技術(shù)1
- 小學(xué)二年級(jí)數(shù)學(xué)口算練習(xí)題1000道
- 凸優(yōu)化在經(jīng)濟(jì)學(xué)與金融學(xué)中的應(yīng)用
- 家譜、宗譜頒譜慶典講話
- 高速公路收費(fèi)員培訓(xùn)課件
- 【人才發(fā)展】新上崗干部的90天轉(zhuǎn)身計(jì)劃
評(píng)論
0/150
提交評(píng)論