單元測(cè)試
單元測(cè)試
單元測(cè)試是軟件工程中降低開發(fā)成本,提高軟件質(zhì)量常用方式之一,單元測(cè)試是一項(xiàng)由開發(fā)人員或者測(cè)試人員來對(duì)程序模塊的正確性進(jìn)行檢驗(yàn)測(cè)試的工作,用于檢查被測(cè)試代碼的功能是否正確,是軟件測(cè)試環(huán)節(jié)中最基礎(chǔ)的測(cè)試內(nèi)容,針對(duì)集成系統(tǒng)中最小的可測(cè)試功能模塊。Django 單元測(cè)試使用的是 Python 標(biāo)準(zhǔn)庫 unittest 模塊來定義相應(yīng)的測(cè)試用例。
單元測(cè)試其實(shí)就是對(duì)模塊、類、函數(shù)實(shí)現(xiàn)的功能執(zhí)行檢測(cè),看看是否滿足預(yù)期,是否達(dá)到功能要求,它是一次檢查檢驗(yàn)的過程。如果某個(gè)模塊或者函數(shù)滿足預(yù)期,則表示測(cè)試通過,否則表示失敗,比如工廠在組裝一臺(tái)電視機(jī)之前,會(huì)對(duì)每個(gè)元件都進(jìn)行測(cè)試看是否合格,這就是單元測(cè)試,是不是很好理解。如果不局限于 Django 框架的話,除了單元測(cè)試以外,還有系功能測(cè)試、組件測(cè)試、系統(tǒng)集成測(cè)試等、測(cè)試是一項(xiàng)很重要的工作,有專門的職位比如軟件測(cè)試人員、測(cè)試工程師等。
單元測(cè)試的意義:
1.單元測(cè)試集中注意力于程序的基本組成部分,首先保證每個(gè)單元測(cè)試通過,才能使下一步把單元組裝成部件并測(cè)試其正確性具有基礎(chǔ)。單元是整個(gè)軟件的構(gòu)成基礎(chǔ),像硬件系統(tǒng)中的零部件一樣,只有保證零部件的質(zhì)量,這個(gè)設(shè)備的質(zhì)量才有基礎(chǔ),單元的質(zhì)量也是整個(gè)軟件質(zhì)量的基礎(chǔ)。因此,單元測(cè)試的效果會(huì)直接影響軟件的后期測(cè)試,最終在很大程度上影響到產(chǎn)品的質(zhì)量。
2.單元測(cè)試可以平行開展,這樣可以使多人同時(shí)測(cè)試多個(gè)單元,提高了測(cè)試的效率。
3.單元規(guī)模較小,復(fù)雜性較低,因而發(fā)現(xiàn)錯(cuò)誤后容易隔離和定位,有利于調(diào)試工作。
4.單元的規(guī)模和復(fù)雜性特點(diǎn),使單元測(cè)試中可以使用包括白盒測(cè)試的覆蓋分析在內(nèi)的許多測(cè)試技術(shù),能夠進(jìn)行比較充分細(xì)致的測(cè)試,是整個(gè)程序測(cè)試滿足語句覆蓋和分支覆蓋要求的基礎(chǔ)。
5.單元測(cè)試的測(cè)試效果是最顯而易見的。做好單元測(cè)試,不僅后期的系統(tǒng)集成聯(lián)調(diào)或集成測(cè)試和系統(tǒng)測(cè)試會(huì)很順利,節(jié)約很多時(shí)間;而且在單元測(cè)試過程中能發(fā)現(xiàn)一些很深層次的問題,同時(shí)還會(huì)發(fā)現(xiàn)一些很容易發(fā)現(xiàn)而在集成測(cè)試和系統(tǒng)測(cè)試很難發(fā)現(xiàn)的問題;更重要的是單元測(cè)試不僅僅是證明這些代碼做了什么,是如何做的,而且證明是否做了它該做的事情而沒有做不該做的事情。
6.單元測(cè)試的好與壞不僅直接關(guān)系到測(cè)試成本(因?yàn)槿绻麊卧獪y(cè)試中易發(fā)現(xiàn)的問題拖到后期測(cè)試發(fā)現(xiàn),那么其成本將成倍數(shù)上升),而且也會(huì)直接影響到產(chǎn)品質(zhì)量,因?yàn)榭赡芫褪怯捎诖a中的某一個(gè)小錯(cuò)誤就導(dǎo)致了整個(gè)產(chǎn)品的質(zhì)量降低一個(gè)指標(biāo),或者導(dǎo)致更嚴(yán)重的后果。
事實(shí)上,單元測(cè)試是一種驗(yàn)證行為—— 測(cè)試和驗(yàn)證程序中每一項(xiàng)功能的正確性,為以后的開發(fā)提供支持;單元測(cè)試是一種設(shè)計(jì)行為—— 編寫單元測(cè)試將使我們從調(diào)用者觀察、思考,特別是要先考慮測(cè)試,這樣就可把程序設(shè)計(jì)成易于調(diào)用和可測(cè)試的,并努力降低軟件中的耦合,還可以使編碼人員在編碼時(shí)產(chǎn)生預(yù)測(cè)試,將程序的缺陷降低到最小;單元測(cè)試是一種編寫文檔的行為—— 是展示函數(shù)或類如何使用的最佳文檔;單元測(cè)試具有回歸性—— 自動(dòng)化的單元測(cè)試有助于進(jìn)行回歸測(cè)試。
總的而來說,單元測(cè)試是軟件開發(fā)過程中在集成測(cè)試是之前必須要做的基礎(chǔ)單元排查,為確保整個(gè)集成運(yùn)行的基礎(chǔ)穩(wěn)定性而存在。
對(duì)于測(cè)試機(jī)構(gòu)而言,單元測(cè)試的意義更多還有對(duì)底層代碼的審查,以保證代碼的正確性,我們提供的服務(wù)在研發(fā)階段便可以參與進(jìn)去,精正檢測(cè)技術(shù)能夠全方位服務(wù)于軟件行業(yè)。