




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第第頁讓軟件測(cè)試也可以變得有趣的措施讓軟件測(cè)試也可以變得有趣的措施
發(fā)表于:2023-11-28來源:未知:領(lǐng)測(cè)軟件測(cè)試網(wǎng)采編點(diǎn)擊數(shù):標(biāo)簽:軟件測(cè)試
討厭!我一直討厭做測(cè)試。測(cè)試(單元測(cè)試和功能測(cè)試)是防礙“真正”工作的事情。每個(gè)人都確信自己的代碼是完美的,不是嗎?在確實(shí)需要更改代碼的極少數(shù)事件中,解釋編寫得如此之好,以致每個(gè)人都能領(lǐng)會(huì)其中的含義。我需要提高(或許還需要作一些咨詢)。在
討厭!我一直討厭做(測(cè)試)。(測(cè)試)(單元測(cè)試和功能測(cè)試)是防礙"真正'工作的事情。每個(gè)人都確信自己的代碼是完美的,不是嗎?在確實(shí)需要更改代碼的極少數(shù)事件中,解釋編寫得如此之好,以致每個(gè)人都能領(lǐng)會(huì)其中的含義。我需要提高(或許還需要作一些咨詢)。
在過去的幾年里,(單元測(cè)試)已成為我編寫軟件的核心環(huán)節(jié),多虧了一種稱為極限(編程)(XP)的簡便(編程)方法(請(qǐng)參閱參考資源)。這種方法要求我為添加的每個(gè)函數(shù)編寫(單元測(cè)試),并且要維護(hù)這些測(cè)試。如果單元測(cè)試失敗,我就無法整合任何代碼。隨著代碼庫的不斷增大,這些測(cè)試將使開發(fā)人員能夠很有把握地完成更改。
起初,我認(rèn)為有了單元測(cè)試,就沒必要再進(jìn)行(功能測(cè)試)。噢,又錯(cuò)了。(功能測(cè)試)與單元測(cè)試相差甚遠(yuǎn)。我花了很長一段時(shí)間理解二者的區(qū)別,以及如何結(jié)合使用兩者來改進(jìn)(開發(fā))過程。
本文探究單元測(cè)試與功能測(cè)試之間的區(qū)別。并概述了在日常開發(fā)中使用這兩種測(cè)試的方法。
測(cè)試與開發(fā)過程
測(cè)試對(duì)于開發(fā)人員極為重要,您必須在開發(fā)過程中不斷進(jìn)行測(cè)試。測(cè)試不應(yīng)該只屬于開發(fā)周期的某個(gè)特定階段。它絕不應(yīng)該是您將系統(tǒng)交給客戶前要完成的最后一項(xiàng)任務(wù)。如何才能知道您何時(shí)就完成了所有任務(wù)呢?如何才能知道對(duì)一個(gè)小錯(cuò)誤的修正是否破壞了系統(tǒng)的主要功能呢?目前想像中的系統(tǒng)如何才能演化為實(shí)實(shí)在在的系統(tǒng)呢?單元測(cè)試和功能測(cè)試都應(yīng)該是開發(fā)過程中不可分割的一部分。
單元測(cè)試應(yīng)成為您編寫代碼的核心環(huán)節(jié),當(dāng)您所做的項(xiàng)目時(shí)限很緊并且您希望控制開發(fā)進(jìn)度時(shí)尤其如此。由于單元測(cè)試是如此重要,所以您應(yīng)該先編寫測(cè)試,再編寫代碼。
一套適當(dāng)?shù)膯卧獪y(cè)試具有以下功能:
說明可能的最實(shí)用設(shè)計(jì)
提供類文檔的最佳格式
確定一個(gè)類何時(shí)完成
增強(qiáng)開發(fā)人員對(duì)代碼的信心
作為快速重構(gòu)的基礎(chǔ)
單元測(cè)試創(chuàng)建隨系統(tǒng)自然發(fā)展的設(shè)計(jì)文檔。再讀一遍上一句話。文檔隨系統(tǒng)自然發(fā)展,這是軟件開發(fā)的"圣杯'。有什么方法比通過提供一個(gè)(用例)編碼集來記錄一個(gè)類效果更好呢?那就是單元測(cè)試:一系列記錄類所做工作的(用例)代碼,提供輸出控制。這樣,由于單元測(cè)試必須通過,所以設(shè)計(jì)文檔總是最新的。
您應(yīng)該首先編寫測(cè)試,然后再編寫代碼。這樣就為要測(cè)試的類提供了一種設(shè)計(jì),這種設(shè)計(jì)使您每一時(shí)刻都只需集中考慮一小塊代碼。這種做法也使設(shè)計(jì)變得不再復(fù)雜。您沒有試圖為以后著想而實(shí)現(xiàn)一些不必要的功能。先編寫測(cè)試還使您知道該類何時(shí)完成。一旦通過所有測(cè)試,任務(wù)也就完成了。
最后,單元測(cè)試可使您高度自信,這又會(huì)轉(zhuǎn)化為開發(fā)人員的滿意度。如果只要更改代碼即運(yùn)行單元測(cè)試,您立即就能發(fā)現(xiàn)您所做的更改是否對(duì)系統(tǒng)造成了破壞。
功能測(cè)試比單元測(cè)試更重要,因?yàn)楣δ軠y(cè)試將驗(yàn)證系統(tǒng)是否可以發(fā)行了。功能測(cè)試以一種有用的方式對(duì)您的工作系統(tǒng)進(jìn)行說明。一套適當(dāng)?shù)墓δ軠y(cè)試具有以下功能:
以有效方式捕獲用戶需求
增強(qiáng)小組(用戶和開發(fā)人員)在系統(tǒng)滿足用戶(需求)方面的信心
功能測(cè)試以有效方式捕獲用戶需求。傳統(tǒng)開發(fā)通過用例來捕獲需求。通常,人們討論用例并花很長時(shí)間對(duì)它們進(jìn)行細(xì)化。他們最后所得到的只是一紙空文。功能測(cè)試就像自驗(yàn)證式用例。極限編程方法可解釋這一概念。XPStories將成為未來用戶與開發(fā)人員進(jìn)行溝通的協(xié)議。功能測(cè)試便是這種溝通的結(jié)果。未經(jīng)功能測(cè)試的Stories不可能很完善。
功能測(cè)試填補(bǔ)單元測(cè)試留下的空白,并可增強(qiáng)小組對(duì)代碼的信心。單元測(cè)試漏掉許多錯(cuò)誤。盡管它可以提供您所需的全部代碼,但它可能無法提供您所需的全部系統(tǒng)功能。功能測(cè)試將暴露單元測(cè)試遺漏的問題。一套適當(dāng)?shù)模ㄗ詣?dòng)化)功能測(cè)試也不可能捕捉到每個(gè)錯(cuò)誤,但是它能比最好的單一單元測(cè)試捕捉更多的錯(cuò)誤。
單元測(cè)試與功能測(cè)試
單元測(cè)試向開發(fā)人員表明代碼正確執(zhí)行操作;而功能測(cè)試向開發(fā)人員表明代碼執(zhí)行正確的操作。
單元測(cè)試
單元測(cè)試是從程序員的角度編寫的。它確保類的某個(gè)特定方法成功執(zhí)行一系列特定的任務(wù)。每個(gè)測(cè)試都確保只要給定輸入,方法將輸出預(yù)期的結(jié)果。
如果沒有測(cè)試框架,編寫一套可維護(hù)的自動(dòng)化單元測(cè)試幾乎是不可能的。在開始編寫測(cè)試之前,請(qǐng)選擇一個(gè)小組公認(rèn)的框架。您將經(jīng)常性地使用這個(gè)框架,因此您最好對(duì)它有點(diǎn)好感。極限編程網(wǎng)站提供了幾個(gè)單元測(cè)試框架(請(qǐng)參閱參考資源)。我最熟悉的框架是JUnit,它專門用來測(cè)試(Java)代碼。
功能測(cè)試
功能測(cè)試是從用戶的角度編寫的。這種測(cè)試確保系統(tǒng)執(zhí)行用戶期望它執(zhí)行的工作。
很多時(shí)候,系統(tǒng)開發(fā)好比建筑房屋。盡管這種類比不很恰當(dāng),但為了理解單元測(cè)試與功能測(cè)試的區(qū)別,我們可以擴(kuò)充這種類比。單元測(cè)試好比房屋建筑現(xiàn)場的建筑監(jiān)理員。他關(guān)心房屋的各個(gè)內(nèi)部系統(tǒng),如地基、構(gòu)架、供電系統(tǒng)和管道設(shè)備等。他確保(測(cè)試)房屋每一部分的工作都(安全)、正常,即符合建筑說明。這種情況下,功能測(cè)試類似于視察同一建筑現(xiàn)場的房主。他假定內(nèi)部系統(tǒng)將正常運(yùn)作,并假定建筑監(jiān)理員在執(zhí)行其任務(wù)。房主關(guān)心的是住在這所房子里將會(huì)怎樣。他關(guān)心房子的外觀如何,各個(gè)房間的大小是否合適,房子能否滿足家庭的需要,以及窗戶的位置是否有利于采光。房主對(duì)房子執(zhí)行功能測(cè)試。他從用戶的角度考慮問題。建筑監(jiān)理員對(duì)房子執(zhí)行單元測(cè)試。他從建筑工人的角度考慮問題。
就像單元測(cè)試一樣,如果沒有測(cè)試框架,編寫一套可維護(hù)的自動(dòng)化功能測(cè)試實(shí)際上是不可能的。JUnit非常適合編寫單元測(cè)試;但是,當(dāng)試圖編寫功能測(cè)試時(shí),它就顯得力不從心了。就功能測(cè)試而言,沒有與JUnit相當(dāng)?shù)目蚣?。也有幾種用于功能測(cè)試的產(chǎn)品,但我從來沒見過它們應(yīng)用于生產(chǎn)環(huán)境。如果找不到滿足您的需要的框架,您就必須創(chuàng)建一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 八年級(jí)物理第4章第4節(jié):光的折射
- 太陽能發(fā)電站智能維護(hù)技術(shù)考核試卷
- 有機(jī)肥料在農(nóng)業(yè)可持續(xù)發(fā)展中的作用考核試卷
- 意外傷害保險(xiǎn)與應(yīng)急救援體系的融合考核試卷
- 學(xué)術(shù)人才引進(jìn)與培養(yǎng)考核試卷
- 醫(yī)療設(shè)備在精準(zhǔn)醫(yī)療領(lǐng)域的創(chuàng)新應(yīng)用與挑戰(zhàn)解決策略考核試卷
- 醫(yī)療器械在跨學(xué)科協(xié)作中的價(jià)值考核試卷
- 文具行業(yè)品牌年輕化考核試卷
- 動(dòng)物藥品零售企業(yè)財(cái)務(wù)管理考核試卷
- 收購農(nóng)村車庫合同范本
- GB/T 19830-2023石油天然氣工業(yè)油氣井套管或油管用鋼管
- 現(xiàn)場簽證流程圖
- (新插圖)人教版四年級(jí)下冊(cè)數(shù)學(xué) 第2招 巧算24點(diǎn) 期末復(fù)習(xí)課件
- 駕駛員違規(guī)違章安全教育談話記錄表
- 2023年10月山東青島開放大學(xué)招考聘用工作人員(第二批)筆試歷年高頻考點(diǎn)試題含答案帶詳解
- 小兒抽動(dòng)癥中西醫(yī)治療
- 一年級(jí)下冊(cè)《綜合實(shí)踐活動(dòng)》全冊(cè)教案【完整版】
- 人教版小學(xué)一年級(jí)英語課本上冊(cè)課件
- 電子對(duì)抗原理與技術(shù)PPT完整全套教學(xué)課件
- 烹飪美學(xué)PPT完整全套教學(xué)課件
- 人美版初中美術(shù)知識(shí)點(diǎn)匯總九年級(jí)全冊(cè)
評(píng)論
0/150
提交評(píng)論