單元測(cè)試-STMT省公開課金獎(jiǎng)全國(guó)賽課一等獎(jiǎng)微課獲獎(jiǎng)?wù)n件_第1頁(yè)
單元測(cè)試-STMT省公開課金獎(jiǎng)全國(guó)賽課一等獎(jiǎng)微課獲獎(jiǎng)?wù)n件_第2頁(yè)
單元測(cè)試-STMT省公開課金獎(jiǎng)全國(guó)賽課一等獎(jiǎng)微課獲獎(jiǎng)?wù)n件_第3頁(yè)
單元測(cè)試-STMT省公開課金獎(jiǎng)全國(guó)賽課一等獎(jiǎng)微課獲獎(jiǎng)?wù)n件_第4頁(yè)
單元測(cè)試-STMT省公開課金獎(jiǎng)全國(guó)賽課一等獎(jiǎng)微課獲獎(jiǎng)?wù)n件_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

軟件測(cè)試方法和技術(shù)

-Ch.5單元測(cè)試tscxjtu@163.comleontscxjtu@163.com1/33第三四章不講tscxjtu@163.com軟件質(zhì)量標(biāo)準(zhǔn)軟件測(cè)試規(guī)范

CMM思想和結(jié)構(gòu)體系建立軟件測(cè)試管理和評(píng)判體系2/33第五章單元測(cè)試tscxjtu@163.com5.1什么是單元測(cè)試5.2單元測(cè)試目標(biāo)和任務(wù)5.3靜態(tài)測(cè)試技術(shù)利用5.4動(dòng)態(tài)測(cè)試技術(shù)利用5.5調(diào)試與評(píng)定5.6單元測(cè)試過程與文檔管理5.7單元測(cè)試慣用工具介紹3/335.1什么是單元測(cè)試測(cè)試4個(gè)階段:?jiǎn)卧獪y(cè)試

集成測(cè)試

系統(tǒng)測(cè)試

驗(yàn)收測(cè)試按階段進(jìn)行測(cè)試是一個(gè)基本測(cè)試策略tscxjtu@163.com4/335.1什么是單元測(cè)試程序員喝酒比喻大家喝是啤酒。這時(shí)你入座了。你給自己倒了杯可樂,這叫低配置。你給自已倒了杯啤酒,這叫標(biāo)準(zhǔn)配置。你給自己倒了杯茶水,這茶顏色還跟啤酒一樣,這叫木馬。你給自己倒了杯可樂,還滴了幾滴醋,不但顏色跟啤酒一樣,而且不冒熱氣還有泡泡,這叫超級(jí)木馬。你同事給你倒了杯白酒,這叫推薦配置。人到齊了,酒席開始了。你先一個(gè)人喝了一小口,這叫單元測(cè)試。你跟旁邊人說哥們?cè)蹅冸S意,這叫交叉測(cè)試。不過他說不行,這杯要干了,這叫壓力測(cè)試。于是你說那就大家一起來吧,這叫內(nèi)部測(cè)試。這個(gè)時(shí)候boss向全場(chǎng)舉杯了,這叫公開測(cè)試。tscxjtu@163.com5/335.1什么是單元測(cè)試菜過三巡,你就不跟他們客氣了。你向?qū)γ嫒司淳?,這叫p2p.你向?qū)γ嫒司淳?,他回敬你,你又再敬他……,這叫tcp.你向一桌人挨個(gè)敬酒,這叫令牌環(huán)。你說只要是弟兄就干了這杯,這叫廣播??墒悄闵纤緅j聽了不高興了,只有弟兄么,罰酒三杯。這叫炸彈??墒悄阆录?jí)mm聽了不高興了,我喝一口,你喝一杯,這叫惡意攻擊。有一個(gè)人過來向這桌敬酒,你說不行你先過了我這關(guān),這叫防火墻。你小弟們過來敬你酒,這叫一對(duì)多。你是boss,全部些人過來敬你酒,這叫服務(wù)器。酒是一樣,可是喝法是不一樣。你喝了一杯,boss喝了一口,這叫c#。你喝了一杯,mm喝了一口,這叫vb。你喝了一杯,你大哥喝了半杯,這叫c++。你喝了半杯,你小弟喝了一杯,這叫匯編。你喝了一杯,你搭檔也喝了一杯,這叫c。tscxjtu@163.com6/335.1什么是單元測(cè)試酒是一樣,可是喝酒人是不一樣。你越喝臉越紅,這叫頻繁分配釋放資源。你越喝臉越白,這叫資源不釋放。你已經(jīng)醉了,卻說我還能喝,叫做資源額度不足。你明明能喝,卻說我已經(jīng)醉了,叫做資源保留。你喝一段時(shí)間就上廁所,這叫cache。酒過三巡,你也該活動(dòng)活動(dòng)了。你一桌一桌走,這叫輪巡。你突然看到某一桌漂亮mm,走了過去,這叫優(yōu)先級(jí)。你去了坐下來就不打算走了,這叫死循環(huán)。你老大舉杯邀你過去,你只好過去,這叫開啟事件。你向一桌敬酒,他們說不行不行我們都喝白,于是你也喝白,這叫當(dāng)?shù)鼗?。你向boss敬酒,可是boss被圍了起來,你只能站在外圈,這叫排隊(duì)。你終于到了內(nèi)圈,小心翼翼向前一步,這叫訪問臨界區(qū)。你拍著boss肩膀說哥們?cè)蹅兒纫槐?,這叫越界。你不知喝了幾圈了,只會(huì)說兩個(gè)字,干了,這叫udp??墒沁€有些人拿著酒瓶跑過來說,剛才都沒跟你喝,這叫丟包。tscxjtu@163.com7/335.1什么是單元測(cè)試喝酒喝到最終結(jié)果都一樣你突然跑向廁所,這叫捕捉異常。你在廁所吐了,反而以為狀態(tài)不錯(cuò),這叫清空內(nèi)存。你在臺(tái)面上吐了,以為很慚愧,這叫程序異常。你在boss面前吐了,以為很害怕,這叫系統(tǒng)瓦解。你吐到了boss身上,只能索性暈倒了,這叫硬件休克。

tscxjtu@163.com8/33單元測(cè)試定義定義:單元測(cè)試是對(duì)軟件基本組成單元進(jìn)行測(cè)試。時(shí)機(jī):普通在代碼完成后由開發(fā)人員完成,QA人員輔助.概念:模塊,組件,單元單元測(cè)試對(duì)象是軟件設(shè)計(jì)最小單位——模塊。單元經(jīng)常被誤解為詳細(xì)函數(shù)或一個(gè)類方法。一個(gè)最小單元應(yīng)該有明確功效、性能定義、接口定義并能夠清楚地與其它單元區(qū)分開來。

tscxjtu@163.com9/33為何要進(jìn)行單元測(cè)試?盡早發(fā)覺錯(cuò)誤錯(cuò)誤發(fā)覺越早,成本越低.開發(fā)人員過于自信,后期復(fù)雜度高,發(fā)覺處理BUG困難.檢驗(yàn)代碼是否符合設(shè)計(jì)和規(guī)范

tscxjtu@163.com12小時(shí)6小時(shí)3小時(shí)單元測(cè)試集成測(cè)試系統(tǒng)測(cè)試10/335.2單元測(cè)試目標(biāo)和任務(wù)目標(biāo):

單元模塊被正確編碼詳細(xì)目標(biāo):信息能否正確地流入和流出單元;在單元工作過程中,其內(nèi)部數(shù)據(jù)能否保持其完整性,包含內(nèi)部數(shù)據(jù)形式、內(nèi)容及相互關(guān)系不發(fā)生錯(cuò)誤,也包含全局變量在單元中處理和影響。在為限制數(shù)據(jù)加工而設(shè)置邊界處,能否正確工作。單元運(yùn)行能否做到滿足特定邏輯覆蓋。單元中發(fā)生了錯(cuò)誤,其中犯錯(cuò)處理辦法是否有效。tscxjtu@163.com11/33任務(wù)1:模塊接口測(cè)試檢驗(yàn)?zāi)K接口是否正確Checklist:輸入實(shí)際參數(shù)與形式參數(shù)是否一致。個(gè)數(shù)、屬性、量綱調(diào)用其它模塊實(shí)際參數(shù)與被調(diào)模塊形參是否一致。個(gè)數(shù)、屬性、量綱全程變量定義在各模塊是否一致。外部輸入、輸出文件、緩沖區(qū)、錯(cuò)誤處理其它tscxjtu@163.com12/33任務(wù)2:模塊局部數(shù)據(jù)結(jié)構(gòu)測(cè)試檢驗(yàn)局部數(shù)據(jù)結(jié)構(gòu)完整性Checklist:不適合或不相容類型說明。變量無初值。變量初始化或默認(rèn)值有錯(cuò)。不正確變量名或從來未被使用過。出現(xiàn)上溢或下溢和地址異常。其它tscxjtu@163.com13/33任務(wù)3:模塊邊界條件測(cè)試檢驗(yàn)臨界數(shù)據(jù)處理正確性(單元測(cè)試中最主要一項(xiàng)任務(wù))Checklist:普通正當(dāng)數(shù)據(jù)處理。普通非法數(shù)據(jù)處理。邊界值內(nèi)正當(dāng)邊界數(shù)據(jù)處理。邊界值外非法邊界數(shù)據(jù)處理。其它tscxjtu@163.com14/33任務(wù)4:模塊獨(dú)立執(zhí)行通路測(cè)試檢驗(yàn)每一條獨(dú)立執(zhí)行路徑測(cè)試。確保每條語(yǔ)句被最少執(zhí)行一次。Checklist:算符優(yōu)先級(jí)。混合類型運(yùn)算。精度不夠。表示式符號(hào)。循環(huán)條件,死循環(huán)。其它tscxjtu@163.com15/33任務(wù)5:模塊各條錯(cuò)誤處理通路測(cè)試預(yù)見、預(yù)設(shè)各種犯錯(cuò)處理是否正確有效。Checklist:輸出犯錯(cuò)信息難以了解。統(tǒng)計(jì)錯(cuò)誤與實(shí)際不相符。程序定義犯錯(cuò)處理前系統(tǒng)已介入。異常處理不妥。未提供足夠定位犯錯(cuò)信息。其它tscxjtu@163.com16/335.3靜態(tài)測(cè)試技術(shù)利用靜態(tài)測(cè)試技術(shù):不運(yùn)行被測(cè)試程序,對(duì)代碼經(jīng)過檢驗(yàn)、閱讀進(jìn)行分析。三步曲:走查(WalkThrough)。審查(Inspection)。評(píng)審(Review)tscxjtu@163.com17/33編碼標(biāo)準(zhǔn)和規(guī)范標(biāo)準(zhǔn):建立起來必須恪守規(guī)則。規(guī)范:提議最正確做法,推薦更加好方式。實(shí)施標(biāo)準(zhǔn)和規(guī)范原因:可靠性??勺x性和可維護(hù)性。可移植性。如Java代碼書寫規(guī)范、C語(yǔ)言編碼標(biāo)準(zhǔn)等tscxjtu@163.com18/33走查(WalkThrough)定義:采取講解、討論和模擬運(yùn)行方式進(jìn)行查找錯(cuò)誤活動(dòng)。注意:引導(dǎo)小組組員在走查前通讀設(shè)計(jì)和編碼。限時(shí),防止跑題。發(fā)覺問題適當(dāng)統(tǒng)計(jì),防止現(xiàn)場(chǎng)修改。檢驗(yàn)關(guān)鍵點(diǎn)是代碼是否符合標(biāo)準(zhǔn)和規(guī)范,是否有邏輯錯(cuò)誤。tscxjtu@163.com19/33審查(Inspection)定義:采取講解、提問方式進(jìn)行,普通有正式計(jì)劃、流程和結(jié)果。主要方法采取缺點(diǎn)檢驗(yàn)表。注意:以會(huì)議形式,制訂會(huì)議目標(biāo)、流程和規(guī)則,結(jié)束后要編寫匯報(bào)。按缺點(diǎn)檢驗(yàn)表逐項(xiàng)檢驗(yàn)。發(fā)覺問題適當(dāng)統(tǒng)計(jì),防止現(xiàn)場(chǎng)修改。發(fā)覺重大缺點(diǎn),更正后會(huì)議需要重開。檢驗(yàn)關(guān)鍵點(diǎn)是缺點(diǎn)檢驗(yàn)表,所以該表要依據(jù)項(xiàng)目不一樣不停積累完善。tscxjtu@163.com20/33走查與審查比較tscxjtu@163.com走查審查準(zhǔn)備通讀設(shè)計(jì)和編碼應(yīng)準(zhǔn)備好需求描述文檔、程序設(shè)計(jì)文檔、程序源代碼清單、代碼編碼標(biāo)準(zhǔn)和代碼缺點(diǎn)檢驗(yàn)表形式非正式會(huì)議正式會(huì)議參加人員開發(fā)人員為主項(xiàng)目組組員包含測(cè)試人員主要技術(shù)方法無缺點(diǎn)檢驗(yàn)表注意事項(xiàng)限時(shí)、不要現(xiàn)場(chǎng)修改代碼限時(shí)、不要現(xiàn)場(chǎng)修改代碼生成文檔會(huì)議統(tǒng)計(jì)靜態(tài)分析錯(cuò)誤匯報(bào)目標(biāo)代碼標(biāo)準(zhǔn)規(guī)范,無邏輯錯(cuò)誤代碼標(biāo)準(zhǔn)規(guī)范,無邏輯錯(cuò)誤21/33評(píng)審(Review)定義:通常在審查會(huì)后進(jìn)行,審查小組依據(jù)統(tǒng)計(jì)和匯報(bào)進(jìn)行評(píng)定。注意:充分審查了所要求代碼,而且全部編碼準(zhǔn)則被恪守。審查中發(fā)覺錯(cuò)誤已全部修改。tscxjtu@163.com22/335.4動(dòng)態(tài)測(cè)試技術(shù)利用動(dòng)態(tài)測(cè)試需要真正將程序運(yùn)行起來,需要設(shè)計(jì)系列測(cè)試用例確保測(cè)試完整性和有效性。白盒測(cè)試黑盒(灰盒)測(cè)試tscxjtu@163.com23/33白盒測(cè)試方法主要要邏輯驅(qū)動(dòng)法和基本路徑法。語(yǔ)句覆蓋。判定覆蓋。條件覆蓋。判定/條件覆蓋。條件組合覆蓋。路徑覆蓋。循環(huán)覆蓋。tscxjtu@163.com詳細(xì)內(nèi)容第14章軟件測(cè)試用例設(shè)計(jì)24/33黑盒測(cè)試方法運(yùn)行單元程序有時(shí)需要基于被測(cè)單元接口,開發(fā)對(duì)應(yīng)驅(qū)動(dòng)模塊和樁模塊(根)。有些參考書誤導(dǎo):?jiǎn)卧獪y(cè)試采取白盒測(cè)試技術(shù),由開發(fā)人員完成。驅(qū)動(dòng)模塊(drive):對(duì)底層或子層模塊進(jìn)行測(cè)試所編寫調(diào)用這些模塊程序。樁模塊(stub):對(duì)頂層或上層模塊進(jìn)行測(cè)試時(shí)所編寫替換下層模塊程序。tscxjtu@163.com25/33黑盒慣用方法等價(jià)類劃分法邊界值分析法三種數(shù)據(jù):錯(cuò)誤推測(cè)法--正常數(shù)據(jù)因果圖法--錯(cuò)誤數(shù)據(jù)功效圖法--邊緣數(shù)據(jù)另外還得考慮接口測(cè)試、性能測(cè)試、內(nèi)存測(cè)試性能分析內(nèi)存分析tscxjtu@163.com26/335.6調(diào)試與評(píng)定調(diào)試與測(cè)試對(duì)象及采取方法有很大程度上相同,調(diào)試還用到斷點(diǎn)控制等排錯(cuò)方法,但其目標(biāo)卻完全不一樣。測(cè)試是為了找出軟件中存在缺點(diǎn),而調(diào)試是為了處理存在缺點(diǎn)。單元測(cè)試經(jīng)過普通準(zhǔn)則:軟件單元功效與設(shè)計(jì)需求一致。

軟件單元接口與設(shè)計(jì)需求一致。能夠正確處理輸入和運(yùn)行中錯(cuò)誤。在單元測(cè)試中發(fā)覺錯(cuò)誤已經(jīng)得到修改而且經(jīng)過了測(cè)試。到達(dá)了相關(guān)覆蓋率要求。完成軟件單元測(cè)試匯報(bào)tscxjtu@163.com27/33單元測(cè)試檢驗(yàn)表(1)借助單元測(cè)試檢驗(yàn)表進(jìn)行評(píng)定。案例:?jiǎn)卧獪y(cè)試檢驗(yàn)表單元名稱___________系統(tǒng)_______________結(jié)構(gòu)______________任務(wù)編號(hào)____________________首次測(cè)試日期_________________關(guān)鍵測(cè)試項(xiàng)是否已糾正有沒有任何輸入?yún)?shù)沒有使用?有沒有任何輸出參數(shù)沒有產(chǎn)生?有沒有任何數(shù)據(jù)類型不正確或不一致?有沒有任何算法與PDL或功效需求中描述不一致?有沒有任何局部變量使用前沒有初始化?有沒有任何外部接口編碼錯(cuò)誤?即調(diào)用語(yǔ)句、文件存取、數(shù)據(jù)庫(kù)錯(cuò)誤。有沒有任何邏輯路徑錯(cuò)誤?該單元是否有多個(gè)入口或多個(gè)正常出口?tscxjtu@163.com28/33單元測(cè)試檢驗(yàn)表(2)額外測(cè)試項(xiàng)8.該單元中有任何地方與PDL與PROLOG中描述不一致?9.代碼中有沒有任何偏離本項(xiàng)目標(biāo)準(zhǔn)地方?10.代碼中有沒有任何對(duì)于用戶來說不清楚錯(cuò)誤提醒信息?11.假如該單元是設(shè)計(jì)為可重用,代碼中是有可能妨礙重用地方?采取動(dòng)作和說明(請(qǐng)用單獨(dú)一頁(yè)或多頁(yè)。每一項(xiàng)動(dòng)作必須指出所引用問題。)審查結(jié)果1.假如上述11個(gè)問題答案均為"否",那么測(cè)試經(jīng)過,請(qǐng)?jiān)诖藰?biāo)識(shí)而且在最終署名。2.假如代碼存在嚴(yán)重問題,比如多個(gè)關(guān)鍵問題答案為"是",那么程序編制者糾正這些錯(cuò)誤,而且必須重新安排一次單元測(cè)試。下一次單元測(cè)試日期:_________________________3.假如代碼存在小缺點(diǎn),那么程序編制者糾正這些錯(cuò)誤,而且仲裁者必須安排一次跟蹤會(huì)議。跟蹤會(huì)議日期:_________________________測(cè)試人署名:_____

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論