下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第第頁(yè)讓軟件測(cè)試也可以變得有趣的措施[2]讓軟件測(cè)試也可以變得有趣的措施[2]
發(fā)表于:2023-01-29來(lái)源::點(diǎn)擊數(shù):標(biāo)簽:軟件測(cè)試措施
讓軟件測(cè)試也可以變得有趣的措施[2]軟件測(cè)試單元測(cè)試與功能測(cè)試單元測(cè)試向開(kāi)發(fā)人員表明代碼正確執(zhí)行操作;而功能測(cè)試向開(kāi)發(fā)人員表明代碼執(zhí)行正確的操作。單元測(cè)試單元測(cè)試是從程序員的角度編寫(xiě)的。它確保類的某個(gè)特定方法成功執(zhí)行一系列特定的任務(wù)。
讓軟件測(cè)試也可以變得有趣的措施[2]軟件測(cè)試
單元測(cè)試與功能測(cè)試
單元測(cè)試向開(kāi)發(fā)人員表明代碼正確執(zhí)行操作;而功能測(cè)試向開(kāi)發(fā)人員表明代碼執(zhí)行正確的操作。
單元測(cè)試
單元測(cè)試是從程序員的角度編寫(xiě)的。它確保類的某個(gè)特定方法成功執(zhí)行一系列特定的任務(wù)。每個(gè)測(cè)試都確保只要給定輸入,方法將輸出預(yù)期的結(jié)果。
如果沒(méi)有測(cè)試框架,編寫(xiě)一套可維護(hù)的自動(dòng)化單元測(cè)試幾乎是不可能的。在開(kāi)始編寫(xiě)測(cè)試之前,請(qǐng)選擇一個(gè)小組公認(rèn)的框架。您將經(jīng)常性地使用這個(gè)框架,因此您最好對(duì)它有點(diǎn)好感。極限編程網(wǎng)站提供了幾個(gè)單元測(cè)試框架(請(qǐng)參閱參考資源)。我最熟悉的框架是JUnit,它專門用來(lái)測(cè)試Java代碼。
功能測(cè)試
功能測(cè)試是從用戶的角度編寫(xiě)的。這種測(cè)試確保系統(tǒng)執(zhí)行用戶期望它執(zhí)行的工作。
很多時(shí)候,系統(tǒng)開(kāi)發(fā)好比建筑房屋。盡管這種類比不很恰當(dāng),但為了理解單元測(cè)試與功能測(cè)試的區(qū)別,我們可以擴(kuò)充這種類比。單元測(cè)試好比房屋建筑現(xiàn)場(chǎng)的建筑監(jiān)理員。他關(guān)心房屋的各個(gè)內(nèi)部系統(tǒng),如地基、構(gòu)架、供電系統(tǒng)和管道設(shè)備等。他確保(測(cè)試)房屋每一部分的工作都安全、正常,即符合建筑說(shuō)明。這種情況下,功能測(cè)試類似于視察同一建筑現(xiàn)場(chǎng)的房主。他假定內(nèi)部系統(tǒng)將正常運(yùn)作,并假定建筑監(jiān)理員在執(zhí)行其任務(wù)。房主關(guān)心的是住在這所房子里將會(huì)怎樣。他關(guān)心房子的外觀如何,各個(gè)房間的大小是否合適,房子能否滿足家庭的需要,以及窗戶的位置是否有利于采光。房主對(duì)房子執(zhí)行功能測(cè)試。他從用戶的角度考慮問(wèn)題。建筑監(jiān)理員對(duì)房子執(zhí)行單元測(cè)試。他從建筑工人的角度考慮問(wèn)題。
就像單元測(cè)試一樣,如果沒(méi)有測(cè)試框架,編寫(xiě)一套可維護(hù)的自動(dòng)化功能測(cè)試實(shí)際上是不可能的。JUnit非常適合編寫(xiě)單元測(cè)試;但是,當(dāng)試圖編寫(xiě)功能測(cè)試時(shí),它就顯得力不從心了。就功能測(cè)試而言,沒(méi)有與JUnit相當(dāng)?shù)目蚣?。也有幾種用于功能測(cè)試的產(chǎn)品,但我從來(lái)沒(méi)見(jiàn)過(guò)它們應(yīng)用于生產(chǎn)環(huán)境。如果找不到滿足您的需要的框架,您就必須創(chuàng)建一個(gè)。
無(wú)論我們多么擅長(zhǎng)于構(gòu)建手頭的項(xiàng)目,也不管我們正在創(chuàng)建的系統(tǒng)多么靈活,如果我們的產(chǎn)品不合用,那我們就是白費(fèi)時(shí)間。因此,功能測(cè)試是開(kāi)發(fā)最重要的部分。
由于兩種測(cè)試都必不可少,您就需要了解編寫(xiě)它們應(yīng)遵循的原則。
如何編寫(xiě)單元測(cè)試
剛開(kāi)始編寫(xiě)單元測(cè)試時(shí)很容易恢心。最佳的入手方式就是為新代碼創(chuàng)建單元測(cè)試。(盡管為現(xiàn)有代碼創(chuàng)建單元測(cè)試比較困難,但并非無(wú)法實(shí)現(xiàn))。首先從新代碼著手,待您習(xí)慣了整個(gè)過(guò)程以后,再針對(duì)現(xiàn)有代碼創(chuàng)建測(cè)試程序。
如上文所述,應(yīng)該首先編寫(xiě)單元測(cè)試,然后再編寫(xiě)這些單元測(cè)試要測(cè)試的代碼。如何為尚不存在的代碼編寫(xiě)測(cè)試呢?問(wèn)得非常好。掌握這一方法需要90%的思維加10%的技術(shù)。我的意思是,您只需假定您正在為其編寫(xiě)測(cè)試的類已經(jīng)存在。接下來(lái)的任務(wù)就是編寫(xiě)測(cè)試。起初會(huì)犯很多語(yǔ)法錯(cuò)誤,但您先別管它。這一步您要做的就是定義該類要實(shí)現(xiàn)的接口。下一步就是運(yùn)行您的單元測(cè)試,修正語(yǔ)法錯(cuò)誤(即,編寫(xiě)一個(gè)類,使它實(shí)現(xiàn)您的測(cè)試剛定義的接口),并再次運(yùn)行測(cè)試。重復(fù)這一過(guò)程,每次僅編寫(xiě)修正故障的代碼。運(yùn)行測(cè)試,直到測(cè)試全部通過(guò)為止。一旦通過(guò)全部單元測(cè)試,代碼也就完成了。
一般而言,類的每個(gè)公共方法都應(yīng)有一個(gè)單元測(cè)試。但是,功能簡(jiǎn)單的方法(例如,getter方法和setter方法)不需要單元測(cè)試,除非它們以某種特別的方式進(jìn)行獲取和設(shè)置。應(yīng)該遵循下面這條很好的原則:即只要您認(rèn)為有必要對(duì)代碼中的某個(gè)行為加注,就編寫(xiě)一個(gè)單元測(cè)試。如果您像其他許多程序員一樣不喜歡為代碼加注,則單元測(cè)試是記錄代碼行為的一種方法。
將單元測(cè)試與被測(cè)試的相關(guān)類放在同一個(gè)包內(nèi)。這種組織方式使每個(gè)單元測(cè)試都能訪問(wèn)被測(cè)試類中帶有package或protected訪問(wèn)修飾符的方法和引用變量。
在單元測(cè)試中避免使用域?qū)ο?。域?qū)ο笫翘囟ㄓ谀硞€(gè)應(yīng)用程序的對(duì)象。例如,一個(gè)電子表格應(yīng)用程序可能包含一個(gè)注冊(cè)對(duì)象;這個(gè)注冊(cè)對(duì)象就是一個(gè)域?qū)ο?。如果您有一個(gè)已知這些域?qū)ο蟮念悾瑒t在測(cè)試中完全可以使用這些對(duì)象。但是如果您有一個(gè)根本不使用這些域?qū)ο蟮念?,在測(cè)試中就不要將這些對(duì)象聯(lián)系到該類上。應(yīng)該避免這種情形完全是因?yàn)榇a重用。為某一項(xiàng)目創(chuàng)建的類經(jīng)常要用于其他項(xiàng)目。重用這些類可能很簡(jiǎn)單。但是,如果對(duì)重用類的測(cè)試中用到了另一個(gè)項(xiàng)目的域?qū)ο螅瑒t使測(cè)試能夠正常運(yùn)行這一工作就會(huì)相當(dāng)耗時(shí)。通常情況下,這個(gè)測(cè)試將被刪除或重寫(xiě)。
這些機(jī)制為您提供很好的幫助,但是如果您不運(yùn)行這些測(cè)試,一套綜合的單元測(cè)試就變得一文不值。盡早運(yùn)行測(cè)試通常使您在任何時(shí)候都對(duì)代碼充滿信心。您將隨著項(xiàng)目進(jìn)展不斷添加功能。運(yùn)行這些測(cè)試將會(huì)通知您剛剛實(shí)現(xiàn)的新功能是否對(duì)系統(tǒng)造成了破壞。
在您掌握了編寫(xiě)單元測(cè)試的技巧之后,我們?cè)賮?lái)看看現(xiàn)有代碼。為現(xiàn)有代碼編寫(xiě)測(cè)試可能是個(gè)挑戰(zhàn)。不要為測(cè)試而測(cè)試。當(dāng)您發(fā)現(xiàn)有必要對(duì)一個(gè)未經(jīng)很好測(cè)試(或者根本就沒(méi)有測(cè)試)的類進(jìn)行修改時(shí),請(qǐng)“隨時(shí)”編寫(xiě)測(cè)試?,F(xiàn)在是添加測(cè)試的時(shí)候了。像往常那樣,該類的單元測(cè)試應(yīng)該捕獲其每個(gè)方法的功能。找出應(yīng)該進(jìn)行哪些測(cè)試的最容易的方法之一是:查看現(xiàn)有代碼中的解釋。任何解釋都應(yīng)在單元測(cè)試內(nèi)捕獲。將位于方法開(kāi)頭、說(shuō)明該方法所起作用的解釋塊翻譯為單元測(cè)試。
如何編寫(xiě)功能測(cè)試
盡管功能測(cè)試很重要,但它卻沒(méi)有受到足夠的重視。多數(shù)項(xiàng)目都有單獨(dú)的一個(gè)組來(lái)做功能測(cè)試。通常有一大群人不斷地與系統(tǒng)交互,以確定系統(tǒng)是否正確工作。這種觀念和設(shè)置專門的功能測(cè)試小組的做法很不明智。
對(duì)功能測(cè)試的處理與對(duì)單元測(cè)試的處理不應(yīng)該有太大的區(qū)別。只要您編寫(xiě)的代碼用來(lái)產(chǎn)生要求用戶與之交互的組件(如對(duì)話框),就要編寫(xiě)測(cè)試,但實(shí)際上編寫(xiě)測(cè)試要在編寫(xiě)代碼之前進(jìn)行。請(qǐng)與用戶一起編寫(xiě)獲取用戶需求的功能測(cè)試。無(wú)論何時(shí)開(kāi)始一項(xiàng)新任務(wù),都要在功能測(cè)試框架中描述此任務(wù)。您的開(kāi)發(fā)工作將繼續(xù)向前發(fā)展,當(dāng)添加新代碼時(shí),請(qǐng)執(zhí)行單元測(cè)試。當(dāng)所有的單元測(cè)試
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度健身房連鎖加盟合同2篇
- 五年級(jí)數(shù)學(xué)(小數(shù)乘法)計(jì)算題專項(xiàng)練習(xí)及答案
- 2024年音響設(shè)備租賃服務(wù)合同
- 2024毛石石材藝術(shù)品定制與銷售合同3篇
- 2024年版權(quán)授權(quán)合同:創(chuàng)作者與機(jī)構(gòu)3篇
- 2025年度版權(quán)許可協(xié)議:音樂(lè)作品使用權(quán)限談判2篇
- 2024年項(xiàng)目融資協(xié)議式樣版B版
- 2024-2025年中國(guó)證券經(jīng)紀(jì)與交易行業(yè)發(fā)展趨勢(shì)及投資前景預(yù)測(cè)報(bào)告
- 2024-2029年中國(guó)氟硅材料行業(yè)發(fā)展監(jiān)測(cè)及市場(chǎng)發(fā)展?jié)摿︻A(yù)測(cè)報(bào)告
- 2019-2025年中國(guó)布藝窗簾行業(yè)市場(chǎng)調(diào)查研究及投資前景預(yù)測(cè)報(bào)告
- 管線管廊布置設(shè)計(jì)規(guī)范
- 提升教練技術(shù)--回應(yīng)ppt課件
- 招聘與錄用選擇題
- 《工資、薪金的個(gè)人所得稅的計(jì)算》教學(xué)設(shè)計(jì)
- 精品洲際酒店集團(tuán)皇冠酒店設(shè)計(jì)標(biāo)準(zhǔn)手冊(cè)
- 周視瞄準(zhǔn)鏡的初步設(shè)計(jì)-北京理工大學(xué)-光電學(xué)院小學(xué)期作業(yè)
- Writing寫(xiě)作教學(xué)設(shè)計(jì)
- 心房起搏電極的位置選擇ppt課件
- 四川省南充市2019-2020學(xué)年九年級(jí)上期末數(shù)學(xué)試卷(含答案解析)
- 上海市寶山區(qū)2019屆高三英語(yǔ)一模含答案
- 《數(shù)與形》教學(xué)反思
評(píng)論
0/150
提交評(píng)論