版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
建立單元測(cè)試原則是時(shí)候出新版本了。那么應(yīng)當(dāng)把什么包括進(jìn)來(lái)?顯然,它應(yīng)當(dāng)包括每個(gè)模塊的最新的最佳的版本。對(duì)吧?“最新的和最佳的”基于一種假設(shè):最新的版本就是最佳的版本。最新的版本添加了特性,糾正了問(wèn)題,簡(jiǎn)而言之,改善了之前的版本。怎么會(huì)不是最佳的呢?不過(guò),實(shí)際上,事情并不是你想象的那么簡(jiǎn)樸。那些新的特性也許與其他既有的功能不兼容。顧客依賴(lài)的東西也許消失了。新的特性也許減弱了可用性(尤其是對(duì)新顧客來(lái)說(shuō))。尚有,那些bug總是在這些新的變化的代碼中出現(xiàn)。因此,我們?cè)鯓硬拍荑b定最新的就是最佳的?我們?cè)鯓佣么a真的準(zhǔn)備好了被包括到下一種build中?諸多開(kāi)發(fā)組通過(guò)建立升級(jí)原則來(lái)處理這個(gè)問(wèn)題。升級(jí)原則是有關(guān)某個(gè)模塊與否準(zhǔn)備好包括在一種build版本中的鑒定方略。單元測(cè)試原則雖然可以把諸多別的東西包括到你的升級(jí)原則中來(lái),不過(guò)單元測(cè)試是所有這些原則的基礎(chǔ)。幾乎每個(gè)組織都假設(shè)軟件開(kāi)發(fā)人員在做合適的單元測(cè)試。不過(guò)不幸的是,不一樣的人對(duì)“合適”的測(cè)試傾向于采用非常不一樣樣的理解。好的實(shí)踐規(guī)定開(kāi)發(fā)人員文檔化它們的測(cè)試,并且對(duì)那些測(cè)試進(jìn)行同行評(píng)審以保證有合適的覆蓋率。假如使用自動(dòng)化測(cè)試,那么開(kāi)發(fā)人員能簡(jiǎn)樸地為開(kāi)發(fā)工具創(chuàng)立測(cè)試腳本,并且提交那些腳本用于評(píng)審。當(dāng)然,對(duì)于什么應(yīng)當(dāng)包括在單元測(cè)試中必須建立一種小組的原則。作為一種開(kāi)發(fā)組,有關(guān)應(yīng)當(dāng)做什么測(cè)試要到達(dá)一致的共識(shí)需要花費(fèi)某些時(shí)間和做出某些權(quán)衡,不過(guò)花在這里的時(shí)間會(huì)從對(duì)的的構(gòu)建過(guò)程中得到加倍的回報(bào)!讓我們看看某些單元測(cè)試期望的例子。功能當(dāng)然,每個(gè)模塊必須被測(cè)試以保證它滿(mǎn)足設(shè)計(jì)的規(guī)定,并且保證它做了真正應(yīng)當(dāng)做的對(duì)的的事情。它應(yīng)當(dāng)處理什么樣的輸入?必須完畢什么工作?會(huì)提供什么服務(wù)?它應(yīng)當(dāng)產(chǎn)生怎樣的輸出?它必須管理什么數(shù)據(jù),應(yīng)當(dāng)怎樣使用那些數(shù)據(jù)?我們必須保證這個(gè)模塊真正做了它需要做的事情。負(fù)面測(cè)試然后是錯(cuò)誤處理。當(dāng)出現(xiàn)錯(cuò)誤時(shí)這個(gè)模塊會(huì)做“對(duì)的”的事情嗎?當(dāng)它處理某些特殊的輸入時(shí)會(huì)出現(xiàn)什么狀況?缺乏數(shù)據(jù)構(gòu)成或數(shù)據(jù)輸入的次序被打亂的時(shí)候會(huì)怎樣?當(dāng)需要輸入數(shù)值數(shù)據(jù)時(shí)給它非數(shù)值數(shù)據(jù)會(huì)怎樣?數(shù)據(jù)溢出?假如它接受到一種從數(shù)據(jù)庫(kù)或網(wǎng)路接口返回的錯(cuò)誤狀態(tài)時(shí)會(huì)怎樣?它會(huì)怎樣處理?一種模塊在被認(rèn)為完畢之前,必須對(duì)的地處理所有錯(cuò)誤條件。覆蓋我們都懂得完全的測(cè)試不是軟件測(cè)試的一種合理目的。太多的輸入組合,事件的發(fā)生有太多的也許次序,太多不一樣的出錯(cuò)方式,因此完整地測(cè)試所有東西,雖然是一種很小的程序,也是不也許的。不過(guò)代碼和途徑覆蓋是單元測(cè)試可到達(dá)的一種目的。實(shí)際上,單元測(cè)試階段是把完整覆蓋代碼和途徑作為一種合理的目的的唯一時(shí)間。-代碼覆蓋在單元測(cè)試過(guò)程中,規(guī)定代碼的每一行都被執(zhí)行到,這一點(diǎn)都不過(guò)度(并且有諸多分析工具可以協(xié)助我們保證這點(diǎn))。某些代碼(尤其是錯(cuò)誤處理)是不能被測(cè)試到的,除非采用額外的環(huán)節(jié)(例如編寫(xiě)一種傳遞壞數(shù)據(jù)的函數(shù),或者把錯(cuò)誤代碼注入到內(nèi)存中),不過(guò)這些不僅僅是適合做的,并且對(duì)于保證程序可以處理多種應(yīng)當(dāng)處理的狀況來(lái)說(shuō)非常關(guān)鍵的!-途徑覆蓋除了代碼行覆蓋,測(cè)試代碼的每一種途徑也是非常合理的。例如,我們可以保證每一種“if”的分支都通過(guò)了,并且保證每一種“case”的所有分支都得到了執(zhí)行。我們還可以保證每一種循環(huán)途徑的初始化和終止條件都是對(duì)的的?;貧w測(cè)試這些都是“新鮮出爐”的代碼應(yīng)當(dāng)測(cè)試的內(nèi)容,不過(guò)假如變化了一點(diǎn)點(diǎn)的代碼模塊應(yīng)當(dāng)做多少測(cè)試呢?在單元級(jí)別,應(yīng)當(dāng)做多少回歸測(cè)試呢?這是很輕易誤解的地方:由于只是很小的變化,因此不值得花費(fèi)諸多的時(shí)間去測(cè)試它。確實(shí),對(duì)于每次一小行的代碼的變化我們不能進(jìn)行完整的測(cè)試。不過(guò),同步,這些“很小”的改動(dòng)一般帶來(lái)潛在的、重大的、非預(yù)期的影響。最佳的措施是恰當(dāng)?shù)卦u(píng)估回歸測(cè)試:結(jié)合基于風(fēng)險(xiǎn)的測(cè)試和區(qū)域影響測(cè)試?;陲L(fēng)險(xiǎn)的測(cè)試基于風(fēng)險(xiǎn)的測(cè)試指基于缺陷的風(fēng)險(xiǎn)來(lái)選擇測(cè)試。對(duì)于風(fēng)險(xiǎn)有兩個(gè)方面:也許性和影響程度。也許性是判斷更改會(huì)導(dǎo)致某些問(wèn)題的機(jī)會(huì)。我們應(yīng)當(dāng)測(cè)試那些也許出現(xiàn)問(wèn)題的地方。評(píng)估代碼變化的地方是其中一種判斷的方式,此外一種是尋找曾經(jīng)出現(xiàn)的類(lèi)似變化。影響程度是有關(guān)程序出現(xiàn)錯(cuò)誤時(shí)導(dǎo)致的損失程度(不管出現(xiàn)的也許性)。那些高影響程度的地方應(yīng)當(dāng)被重現(xiàn)測(cè)試。例如,程序常常被使用到的關(guān)鍵功能、影響安全的地方。區(qū)域影響測(cè)試區(qū)域影響測(cè)試是指專(zhuān)注于發(fā)生變化的代碼區(qū)域的測(cè)試。例如:-開(kāi)發(fā)人員應(yīng)當(dāng)完全覆蓋測(cè)試增長(zhǎng)的或變化的代碼模塊。-對(duì)應(yīng)地,他應(yīng)當(dāng)測(cè)試所有受變化影響的途徑。-并且,開(kāi)發(fā)人員應(yīng)當(dāng)對(duì)那些與所修改的代碼關(guān)聯(lián)的地方做某些相對(duì)沒(méi)有那么嚴(yán)格的測(cè)試。例如:假如代碼變化的是參數(shù)的集合,那么應(yīng)當(dāng)測(cè)試那些參數(shù)被用到的地方。單元測(cè)試的客觀證據(jù)計(jì)劃所有這些測(cè)試都是好的,不過(guò)也需要某些客觀的方式來(lái)驗(yàn)證測(cè)試被真正執(zhí)行了。應(yīng)當(dāng)搜集和保留什么證據(jù)來(lái)表明開(kāi)發(fā)人員已經(jīng)執(zhí)行了那些測(cè)試?并且測(cè)試得到期待的成果?我們?cè)鯓佣盟形覀儧Q定要做的這些
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)校圖書(shū)閱覽室管理制度范文
- 消防隊(duì)籃球賽題目及答案
- 浙江中醫(yī)藥藥學(xué)題目及答案
- 養(yǎng)老院老人生活照料服務(wù)規(guī)范制度
- 養(yǎng)老院老人緊急救援人員職業(yè)發(fā)展規(guī)劃制度
- 體育賽事面試題目及答案
- 教招編制考試題目及答案
- 辦公室員工工作環(huán)境改善制度
- 鐵路營(yíng)業(yè)線施工三會(huì)制度
- 進(jìn)貨檢驗(yàn)驗(yàn)收制度
- 成都市高新區(qū)2025-2026學(xué)年七年級(jí)上數(shù)學(xué)期末試題及答案
- DB45∕T 2364-2021 公路路基監(jiān)測(cè)技術(shù)規(guī)范
- 智能客戶(hù)服務(wù)實(shí)務(wù)-教案
- 2025年云南省中考數(shù)學(xué)真題試卷及答案
- 2022危險(xiǎn)廢物管理計(jì)劃和管理臺(tái)賬制定技術(shù)導(dǎo)則
- CISP(CISO與CISE)題庫(kù)及答案解析(700道)
- 《CAD的簡(jiǎn)介和作用》課件
- 配電箱移交協(xié)議書(shū)模板
- 2024-2030年中國(guó)桉葉(油)素市場(chǎng)專(zhuān)題研究及市場(chǎng)前景預(yù)測(cè)評(píng)估報(bào)告
- 攝像機(jī)基礎(chǔ)知識(shí)攝像機(jī)基礎(chǔ)知識(shí)
- 齒軌卡軌車(chē)資料
評(píng)論
0/150
提交評(píng)論