




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
軟件測試系列培訓(xùn)課程之一單元測試軟件測試系列培訓(xùn)課程之一單元測試軟件測試系列培訓(xùn)課程之一單元測試目錄為什么要單元測試第一個單元測試測試哪些內(nèi)容討論一些話題從一個案例開始小萍和小迪共同負(fù)責(zé)一個項目,項目最后交付的期限越來越近了。小萍每天都在心急火燎的編寫代碼,寫完一個類又寫一個類,寫完一個函數(shù)又接著寫另一個函數(shù),還經(jīng)常不得不停下來做一些調(diào)整,使得代碼能夠通過編譯。小萍一直保持著這種工作方式,直到最后期限的前一天。而這時已經(jīng)到了演示所有代碼的時候了。小萍運(yùn)行了最上層的程序,但是一點(diǎn)輸出也沒有,什么也沒有。這時只好用調(diào)試器來單步跟蹤了?!绊E,絕不可能是這樣的,這個變量絕不是0啊”時間已經(jīng)越來越晚了,小萍終于找到并且糾正了這個BUG;但在這個過程中,小萍又找到了其他好幾個BUG;如此幾次之后,BUG還是存在,而程序輸出仍然沒有結(jié)果。小萍已經(jīng)精疲力盡了,一下子陷入到了無助和無奈的狀態(tài)。及此同時,小迪并沒有像小萍那么快的寫代碼。小迪在每寫一個函數(shù)的時候,會附帶寫一個簡短的測試程序來測試這個函數(shù)。用這個簡單的測試,來驗證函數(shù)的功能是否和程序員期望的一致。小迪在未對剛寫的函數(shù)做出確認(rèn)之前,是不會接著寫新代碼的。也就是說,只有等到已知函數(shù)都得到確認(rèn)之后,小迪才會繼續(xù)編寫下一個函數(shù)。最后期限終于到了,小萍沒有能完成任務(wù)。而小迪的代碼被集成到整個系統(tǒng)中,并且能夠很好地運(yùn)行。什么是單元測試開發(fā)者編寫的一小段代碼,用于檢驗被測代碼的功能是否正確。不寫測試的接口1.編寫單元測試太花時間了2.運(yùn)行測試的時間太長了3.測試代碼并不是我的工作4.我并不清楚代碼的行為,所以也就無從測試5.我寫的這些代碼都能夠編譯通過,所以都是沒有問題的,沒必要測試6.公司請我來是為了寫代碼,而不是寫測試7.如果我讓測試員或者QA人員沒有工作,那我我會很內(nèi)疚8.我的公司并不會讓我在真實(shí)系統(tǒng)中運(yùn)行單元測試為什么需要單元測試計劃你的測試思考一下如何測試下面這個方法:StaticintFindMax(int[]list);比如:給定一個數(shù)組[7,8,9],結(jié)果應(yīng)該返回9,這就是一個很合理的測試。除此之外,你還想到了多少測試呢?對于一個給定的List而言,元素的位置對該方法的結(jié)果不會產(chǎn)生影響:[7,8,9]→9[9,8,7]→9[8,9,7]→9如果list中有兩個相等的最大值呢?[7,9,8,9]→9[7,9,9,8]→9如果list中包含負(fù)數(shù),會怎樣呢?[-8,-9,-7]→-7如果list中只包含一個數(shù)呢[1]建議借助測試工具快速構(gòu)建單元測試本培訓(xùn)試圖拋開語言束縛,旨在讓開發(fā)人員重視單元測試,執(zhí)行單元測試測試哪些內(nèi)容Right-BICEPRight--結(jié)果是否正確?B--是否所有的邊界條件都是正確的?I--能查一下反向關(guān)聯(lián)嗎?C--能用其他手段交叉檢查一下結(jié)果嗎?E--你是否可以強(qiáng)制錯誤條件發(fā)生?P--是否滿足性能要求?Right--結(jié)果正確如果代碼能夠正確運(yùn)行,怎樣才能知道它是正確的呢?在寫代碼之前,應(yīng)該先明確需求建議先設(shè)計測試,然后通過“測試驅(qū)動”代碼編寫。Right--結(jié)果正確2.使用數(shù)據(jù)文件對于大量的測試數(shù)據(jù),需要考慮用一個獨(dú)立的數(shù)據(jù)文件來存儲,然后讓單元測試程序讀取該文件。B-邊界條件找邊界條件是做單元測試最有價值的工作之一,因為bug一般就出現(xiàn)在邊界上。常見的考慮條件:完全偽造或者不一致的輸入數(shù)據(jù)格式錯誤的數(shù)據(jù)空值或者不完整的值一些及意料中的合理值相去甚遠(yuǎn)的數(shù)值如果要求的是一個不允許出現(xiàn)重復(fù)數(shù)值的list,但是傳入的是一個存在重復(fù)值的list如果要求的是一個有序list,但是傳入的是一個無序的list事情到達(dá)的次序是錯誤的,或者碰巧和期望的次序不一致可能的邊界條件CORRECTConformance(一致性)值是否和預(yù)期一致Ordering(順序性)值是否如應(yīng)該的那樣,是有序或者無序的Range(區(qū)間性)值是否位于合理的最小值和最大值之內(nèi)Reference(依賴性)代碼是否引用了一些不在代碼本身控制范圍之內(nèi)的外部資源Existence(存在性)值是否存在Cardinality(基數(shù)性)是否恰好有足夠的值Time(相對或者絕對的實(shí)踐性)所有事情的發(fā)生是否是有序的,是否在正確的時刻?是否恰好及時?I-檢查反向關(guān)聯(lián)對于一些方法,我們可以使用反向的邏輯來驗證。C-使用其他手段交叉檢查C-使用其他手段交叉檢查用已知可行的手段及被測方法交叉驗證是否正確。E-強(qiáng)制產(chǎn)生錯誤條件P-性能特性優(yōu)良測試的品質(zhì)A-TRIP自動化Automatic徹底的Thorough可重復(fù)Repea
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 云大考研復(fù)試題目及答案
- 2024食品質(zhì)檢員備考的注意事項及答案
- 六年級語文考試分析和答題技巧題及答案
- 古代文學(xué)史考試重要試題及答案
- 統(tǒng)計學(xué)中的數(shù)據(jù)編碼與分析能力試題及答案
- 2024年汽車美容師行業(yè)創(chuàng)新技術(shù)試題及答案
- 旅游景區(qū)游客體驗管理
- 2024年六年級語文提高策略試題及答案
- 2024年二手車評估師考試現(xiàn)場操作流程試題及答案
- 汽車美容師服務(wù)禮儀與溝通技巧試題及答案
- 基于PLC的自動灌溉控制系統(tǒng)設(shè)計-本科畢業(yè)設(shè)計
- 《節(jié)約與保護(hù)水資源作業(yè)設(shè)計方案-2023-2024學(xué)年初中地理商務(wù)星球版》
- Shangrila510呼吸機(jī)操作流程及要點(diǎn)說明
- 2024年4月貴州省高三年級適應(yīng)性考試地理試卷
- (高清版)DZT 0073-2016 電阻率剖面法技術(shù)規(guī)程
- 2024年福建省2024屆高三3月省質(zhì)檢(高中畢業(yè)班適應(yīng)性練習(xí)卷)英語試卷(含答案)
- 新申請艾滋病篩查實(shí)驗室驗收指南
- 倉儲設(shè)備操作安全操作培訓(xùn)
- 上海電機(jī)學(xué)院計算機(jī)C語言專升本題庫及答案
- 2023年寧波房地產(chǎn)市場年度報告
- 員工身心健康情況排查表
評論
0/150
提交評論