前兩天我在視頻號給你們聊了下測試的價值,可是視頻號限於時間篇幅,這裏再給你們總結下,方便沒有看視頻的同窗,也更補充一些細節。ide
爲何寫測試
寫測試主要三個意義:工具
- 下降Bug,節約時間
不少Bug都是一些小錯誤,小細節,不是啥高大上的設計,有了測試能夠規避一些基礎的問題,避免到了上線才發現,那個時候再來從新修改,發佈浪費不少時間。測試
- 理解需求,挖掘邊界條件
你要測試一個代碼,會從新審視代碼邏輯,更容易找到裏面的邊界條件,對需求理解更加透徹清晰,另外測試代碼自己就是一個很好的文檔,而不像普通的文檔會隨着代碼變動是似而非的。新來的小夥伴我通常會讓他們去寫測試,看測試代碼,不是文檔更似文檔。spa
- 增長信心,更好重構
我不知道其餘人有這個感覺沒,反正要我去動沒有測試的老代碼我是心理有點發虛的。有了測試用例,咱們改動代碼會更有自信,而不用過於擔憂改動到多年的老Bug,致使引起嚴重問題。設計
有了測試才能更好把多方代碼進行集成起來,若是沒有要把多個成員的代碼合併一塊兒這個勢必會很是困難,最終的軟件質量也會很低,其實和第一個意義同樣。視頻
沒有銀彈
說完上面的內容以後,不少同窗感受測試真的太好了,全部的代碼我都要寫測試,讓測試覆蓋率足夠高,這樣就能下降Bug,節約時間,快速作一個高質量軟件。開發
可是實際上測試自己是須要維護的,加上寫的過程這也是一個耗時過程,尤爲是咱們的項目可能還只是試錯的demo,一開始投入大量精力寫測試也是得不償失的,因此測試也不是越多越好,是一個權衡的結果。文檔
因此軟件開發常說沒有銀彈。it
銀彈是什麼? 維基百科這樣說:class
在民俗傳說裏,全部能讓咱們充滿夢靨的怪物之中,沒有比狼人更可怕的了,由於它們會忽然地從通常人變身爲恐怖的怪獸,所以人們嘗試着查找可以奇蹟似地將狼人一槍斃命的銀彈。
沒有銀彈:簡單來講就是軟件開發因爲各類bug缺陷,延誤,預算等因素隨時會變成怪獸,咱們但願有一種完美方法(銀彈)能解決這個問題,事實上沒有。
測試雖然可以解決咱們不少問題,但依然有其侷限,不能拿着一把錘子看啥都是釘子,這些都是咱們的軟件開發的工具箱裏面的一個工具而已。
可是總得來講,大部分團隊的測試還遠沒有達到一個合格的水平,絕大多數問題都是由於測試不夠,軟件質量過低形成的,纔會出現處處救火的狀況。因此仍是抓緊寫測試吧。