為什么說每個(gè)程序員都應(yīng)當(dāng)做單元測(cè)試?
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2011/11/4 14:53:09 ] 推薦標(biāo)簽:
Blues Brothers的歌曲“Everybody Need Somebody”中有這樣幾句話:請(qǐng)人們記住,無論你是誰(shuí),無論你靠什么生活,總有一些事情我們是一樣的……”pbielicki在他的博客中認(rèn)為,對(duì)于軟件開發(fā)者而言,相同的一些事情應(yīng)當(dāng)包括“單元測(cè)試”。本文作者的某些觀點(diǎn)雖然有些化,但確實(shí)介紹了單元測(cè)試的優(yōu)越性,并借此來極力推薦單元測(cè)試給每個(gè)軟件工程師/程序員/開發(fā)者。
不論是是不是敏捷開發(fā)的fans,也許你會(huì)說這種開發(fā)方法很傻、很不成熟,對(duì)軟件開發(fā)沒有任何幫助。也許你不會(huì)用也不喜歡Scrum,你會(huì)覺得XP很討厭,你這么說沒問題,因?yàn)檫@是個(gè)人口味的問題。但是忘掉敏捷吧,忘掉那些程序和編程方法??單元測(cè)試你的代碼吧!
我剛回顧了另外一個(gè)很復(fù)雜的程序但是里面沒有任何的單元測(cè)試,而且沒有任何的說明文件。也許你讀得懂代碼也明白其意思,但我怎么知道它的功能是它應(yīng)該具備的功能呢?我怎么知道開發(fā)他的人沒有寫出錯(cuò)誤呢?
單元測(cè)試不僅可以作為無錯(cuò)編碼一種輔助手段在一次性的開發(fā)過程中使用,單元測(cè)試必須是可重復(fù)的,無論是在軟件修改,或是移植到新的運(yùn)行環(huán)境的過程中。因此,所有的測(cè)試都必須在整個(gè)軟件系統(tǒng)的生命周期中進(jìn)行維護(hù)。也許你會(huì)覺得這很麻煩,但雖然單元測(cè)試是由程序員自己來完成,終受益的也還是程序員自己?梢赃@樣理解,程序員有責(zé)任編寫功能代碼,同時(shí)也有責(zé)任為自己的代碼編寫單元測(cè)試。
單元測(cè)試可以作為規(guī)格說明來工作,測(cè)試能夠以規(guī)格說明為基礎(chǔ)。代碼能夠針對(duì)它的規(guī)格說明,而不是針對(duì)自身進(jìn)行測(cè)試。這樣的測(cè)試不僅能夠抓住編譯器的Bug,同時(shí)也能找到更多的編碼錯(cuò)誤,甚至是一些規(guī)格說明中的錯(cuò)誤,因?yàn)楹玫囊?guī)格說明可以使測(cè)試的質(zhì)量更高 。
在這里,我概要地說一下單元測(cè)試的好處:
1、單元測(cè)試記錄軟件系統(tǒng)內(nèi)部和外部的結(jié)構(gòu);
2、單元測(cè)試幫助你和其他開發(fā)者迅速地看到是否“升級(jí)”的
相關(guān)推薦

最新發(fā)布
性能測(cè)試之測(cè)試環(huán)境搭建的方法
2020/7/21 15:39:32軟件測(cè)試是從什么時(shí)候開始被企業(yè)所重視的呢?
2020/7/17 9:09:11Android自動(dòng)化測(cè)試框架有哪些?有什么用途?
2020/7/17 9:03:50什么樣的項(xiàng)目適合做自動(dòng)化?自動(dòng)化測(cè)試人員應(yīng)具備怎樣的能力?
2020/7/17 8:57:06幾大市面主流性能測(cè)試工具測(cè)評(píng)
2020/7/17 8:52:11RPA機(jī)器人能夠快速響應(yīng)企業(yè)需求,是怎么做到的?
2020/7/17 8:48:05Bug可以真正消滅嗎?為什么?
2020/7/17 8:43:03軟件測(cè)試基本概念是怎么來的?軟件測(cè)試生命周期的形成歷經(jīng)了什么?
2020/7/16 9:11:10