掃二維碼與項(xiàng)目經(jīng)理溝通
我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
今天在工作中我對一個(gè)同事說,PyDev 2.5.0 現(xiàn)在對TDD(測試驅(qū)動開發(fā))提供了很酷的支持了。我并不是一個(gè)對TDD很癡迷的倡導(dǎo)者,對其它事物也一樣,但仍不免激起了一場討論。這個(gè)家伙,讓我們暫叫他約翰,說:“在開發(fā)一個(gè)功能時(shí)TDD可以節(jié)省開發(fā)的時(shí)間,但有時(shí)候一個(gè)功能需求,要求的是如此的緊急,我們要盡可能快的交付這個(gè)功能,軟件測試放在以后再說?!?/em>

諸如這樣的話讓我欲哭無淚。
我極力解釋說,沒有測試,發(fā)布的代碼會存在不可想象的風(fēng)險(xiǎn)。就像這個(gè)功能非常的重要一樣,你的產(chǎn)品也會因此受到嚴(yán)重的破壞。尤其在使用Python語言時(shí),很少有問題會在編譯期顯示出來(一個(gè)簡單的書寫錯(cuò)誤就會導(dǎo)致運(yùn)行期的一個(gè)AttributeError,甚至更遭)。我認(rèn)為這種風(fēng)險(xiǎn)過高而不可接受。約翰回復(fù)說也許你說的是對的,但是否值得冒這樣的風(fēng)險(xiǎn),這種權(quán)利把握在項(xiàng)目經(jīng)理手里。如果你使用TDD,實(shí)際上你是剝奪了他認(rèn)為可以“放棄軟件測試以后在說”的權(quán)利?!?/em>
說實(shí)話,對于這樣的邏輯觀念,我不知道如何回答。不錯(cuò),老板有權(quán)利決定是否需要測試我的程序,但是…他應(yīng)該這樣嗎?一個(gè)建筑工人被告知先把磚塊碼起來,灰泥以后再補(bǔ),這樣合理嗎?
在我讀過的書本中顯示,這種想法是錯(cuò)誤的。軟件測試并不是一個(gè)功能。它不是一個(gè)由客戶提出來的需求。它不是”***測一下“。
它是一個(gè)軟件的任何一段代碼的固有組成。
不錯(cuò),你可以開發(fā)出不經(jīng)測試的軟件。它甚至可以運(yùn)行,就像是摞起來的磚塊看起來也是一堵墻。但如果遇到大一點(diǎn)的風(fēng),它有可能就會砸到某人的頭上。
你會對持這樣觀點(diǎn)的人做怎樣的回復(fù)?
英文:Testing is not a Feature

我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流