软件测试不是一个功能
今天在工作中我對(duì)一個(gè)同事說(shuō),PyDev 2.5.0現(xiàn)在對(duì)TDD(測(cè)試驅(qū)動(dòng)開發(fā))提供了很酷的支持了。我并不是一個(gè)對(duì)TDD很癡迷的倡導(dǎo)者,對(duì)其它事物也一樣,但仍不免激起了一場(chǎng)討論。這個(gè)家伙,讓我們暫叫他約翰,說(shuō):“在開發(fā)一個(gè)功能時(shí)TDD可以節(jié)省開發(fā)的時(shí)間,但有時(shí)候一個(gè)功能需求,要求的是如此的緊急,我們要盡可能快的交付這個(gè)功能,軟件測(cè)試放在以后再說(shuō)。”
諸如這樣的話讓我欲哭無(wú)淚。
我極力解釋說(shuō),沒有測(cè)試,發(fā)布的代碼會(huì)存在不可想象的風(fēng)險(xiǎn)。就像這個(gè)功能非常的重要一樣,你的產(chǎn)品也會(huì)因此受到嚴(yán)重的破壞。尤其在使用Python語(yǔ)言時(shí),很少有問題會(huì)在編譯期顯示出來(lái)(一個(gè)簡(jiǎn)單的書寫錯(cuò)誤就會(huì)導(dǎo)致運(yùn)行期的一個(gè)AttributeError,甚至更遭)。我認(rèn)為這種風(fēng)險(xiǎn)過高而不可接受。約翰回復(fù)說(shuō)也許你說(shuō)的是對(duì)的,但是否值得冒這樣的風(fēng)險(xiǎn),這種權(quán)利把握在項(xiàng)目經(jīng)理手里。如果你使用TDD,實(shí)際上你是剝奪了他認(rèn)為可以“放棄軟件測(cè)試以后在說(shuō)”的權(quán)利。“
說(shuō)實(shí)話,對(duì)于這樣的邏輯觀念,我不知道如何回答。不錯(cuò),老板有權(quán)利決定是否需要測(cè)試我的程序,但是…他應(yīng)該這樣嗎?一個(gè)建筑工人被告知先把磚塊碼起來(lái),灰泥以后再補(bǔ),這樣合理嗎?
在我讀過的書本中顯示,這種想法是錯(cuò)誤的。軟件測(cè)試并不是一個(gè)功能。它不是一個(gè)由客戶提出來(lái)的需求。它不是”最好測(cè)一下“。
它是一個(gè)軟件的任何一段代碼的固有組成。
不錯(cuò),你可以開發(fā)出不經(jīng)測(cè)試的軟件。它甚至可以運(yùn)行,就像是摞起來(lái)的磚塊看起來(lái)也是一堵墻。但如果遇到大一點(diǎn)的風(fēng),它有可能就會(huì)砸到某人的頭上。
你會(huì)對(duì)持這樣觀點(diǎn)的人做怎樣的回復(fù)?
總結(jié)
以上是生活随笔為你收集整理的软件测试不是一个功能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IOS15之swift的Alamofir
- 下一篇: IOS15之Swift5.5的KVC报错