日韩欧美另类久久久精品_亚洲大色堂人在线无码_国产三级aⅴ在线播放_在线无码aⅴ精品动漫_国产精品精品国产专区

我要投稿 投訴建議

軟件單元測試?yán)碚撝R問答

時(shí)間:2021-01-01 16:51:18 知識測評 我要投稿

軟件單元測試?yán)碚撝R問答

  為什么需要單元測試?

軟件單元測試?yán)碚撝R問答

  徹底測試:僅依靠系統(tǒng)測試會存在大量未覆蓋的“死角”,單元測試可以實(shí)現(xiàn)代碼級徹底測試,從根本上保證代碼質(zhì)量。

  成本最低:排錯(cuò)成本隨時(shí)間推移和范圍擴(kuò)大直線上升,單元測試是最早階段的測試,且目標(biāo)最小,因此,排錯(cuò)成本最低。

  自動回歸:單元測試將代碼功能“定格”,代碼修改后自動檢查是否引入新的錯(cuò)誤,避免陷入“系統(tǒng)測試->修改->引入新的錯(cuò)誤->新一輪系統(tǒng)測試->修改->引入新的錯(cuò)誤”的怪圈。自動回歸也使開發(fā)過程適應(yīng)頻繁變更的需求,使開發(fā)過程自動“敏捷”。

  促進(jìn)開發(fā):利用單元測試還可以實(shí)現(xiàn)測試驅(qū)動開發(fā)和可視編程。可視編程使開發(fā)過程中程序行為可視,大幅提升開發(fā)效率、降低勞動強(qiáng)度。

  什么是單元測試?

  單元測試是針對代碼單元的獨(dú)立測試。從實(shí)用角度出發(fā),“單元”是指函數(shù),以類為單元?jiǎng)t過于復(fù)雜。“獨(dú)立”是指將代碼從原始項(xiàng)目中隔離出來,針對各個(gè)單元單獨(dú)進(jìn)行測試。

  單元測試的基本方法是?

  根據(jù)程序功能設(shè)定輸入、執(zhí)行測試、自動判斷輸出是否符合預(yù)期。測試過程需要以下關(guān)鍵元素:驅(qū)動(用于執(zhí)行測試的代碼)、用例(輸入及預(yù)期輸出)、樁(用于隔離耦合代碼、或代替未實(shí)現(xiàn)代碼)。

  企業(yè)項(xiàng)目的單元測試面臨哪些難點(diǎn)?

  測試簡單獨(dú)立的代碼是很容易的,測試復(fù)雜項(xiàng)目則是另一回事。企業(yè)項(xiàng)目的單元測試面臨以下難點(diǎn):可測性問題、失真、不可控、靜態(tài)局部變量的外部控制、內(nèi)部輸出的自動判斷、復(fù)雜間接輸入難于初始化、白盒覆蓋逾后逾難等等。不解決這些難題。測試將無法進(jìn)行,后面的`條目將進(jìn)一步闡述。

  單元測試的具體目標(biāo)是?

  單元測試是針對代碼單元的獨(dú)立測試,“獨(dú)立”狀態(tài)下易于發(fā)現(xiàn)的錯(cuò)誤,都是單元測試的目標(biāo);集成后才易于發(fā)現(xiàn)的問題,則不是單元測試的目標(biāo)。

  代碼單元本身的功能錯(cuò)誤都是單元測試的目標(biāo),而性能問題(時(shí)間性能如執(zhí)行速度,空間性能如存儲空間大小、內(nèi)存泄漏)難于在最小單元內(nèi)測試,不是單元測試目標(biāo)。

  編碼規(guī)范檢查與單元測試無關(guān),無論是否實(shí)施單元測試,編碼規(guī)范檢查都是必不可少的工作。

  靜態(tài)分析屬于全局掃描,嚴(yán)格來說也不是單元測試,提高編譯器的警告級別,就是最簡單高效的靜態(tài)分析。

  單元測試是意義重大且困難的工作,目標(biāo)應(yīng)該具體而明確,將不屬于單元測試的工作牽扯進(jìn)來,其結(jié)果往往是“揀了芝麻,丟了西瓜”。

  選擇工具時(shí)不要被“功能多多”所迷惑,要首先檢查工具能否解決企業(yè)項(xiàng)目單元測試的難點(diǎn),并用實(shí)際項(xiàng)目評估。“多”和“精”從來就是一對矛盾,要判斷工具是不是因?yàn)闊o法解決單元測試的難題,故意把其他東西牽扯進(jìn)來轉(zhuǎn)移視線。

  什么是測試用例?

  測試用例就是程序功能的實(shí)例,對于單元測試來說,把函數(shù)功能明確化、實(shí)例化,用什么輸入應(yīng)該產(chǎn)生什么輸出的形式記錄下來,就是測試用例。

  如何設(shè)計(jì)用例?

  根據(jù)功能點(diǎn)設(shè)定輸入,再根據(jù)設(shè)計(jì)功能設(shè)定預(yù)期的正確輸出,這樣就構(gòu)成了一個(gè)測試用例。

  通常,一個(gè)功能點(diǎn)對應(yīng)一個(gè)等價(jià)類,“等價(jià)”是指測試效果上的等價(jià),等價(jià)類中可能存在一個(gè)、多個(gè)或無數(shù)個(gè)值,取其中任何一個(gè),如果測試通過,就表示同類中所有值都會測試通過。

  所謂“徹底測試”,是指等價(jià)類劃分正確且完整,且設(shè)定了正確的預(yù)期輸出,做到了這一點(diǎn),代碼可以保證不存在功能錯(cuò)誤。

  什么是測試驅(qū)動開發(fā)(TDD)?

  首先編寫測試代碼,然后編寫產(chǎn)品代碼,使編譯和測試通過。

  優(yōu)點(diǎn):編寫測試代碼是一種設(shè)計(jì)行為,將程序功能細(xì)化、明確化;編程時(shí)目標(biāo)具體而明確,避免多余動作;強(qiáng)制實(shí)施單元測試,避免編碼后忽略測試。

  缺點(diǎn):手工編寫測試代碼,比較費(fèi)時(shí);過于強(qiáng)調(diào)測試,很多代碼是不需測試的,且往往在編寫實(shí)現(xiàn)時(shí)才知道是否有必要測試;對編程過程的幫助不足,很多函數(shù),都是在代碼基本完成時(shí),主要用例才能通過,在此過程中,TDD不能提供幫助;改變思維習(xí)慣,有些程序員難于接受。

http://www.fuchuonang.cn/

【軟件單元測試?yán)碚撝R問答】相關(guān)文章:

職場問答02-07

西畫理論知識測試02-07

塑膠理論知識測試02-12

面試經(jīng)典問答(雙語)08-14

英語面試經(jīng)典問答04-03

英語面試的經(jīng)典問答01-25

面試英語經(jīng)典問答02-12

地震的知識問答02-28

管理問答三則07-16