測試驅動開發的定義
最近在學習《重構》,裡面強調,實施重構的乙個前提是,必須建立乙個可靠的測試環境。裡面還提到了測試驅動開發,以及測試驅動開發的好處。正好最近在開發乙個小的專案,所以便在這個專案中嘗試了一下測試驅動開發,感覺不錯,這裡分享一下我的體會。
我開發使用的是c++,我使用的測試框架是google的c++開源測試框架gtest。另外google也有乙個mock的開源框架gmock,可以和gtest一起使用。至於gtest的使用,可以參照我以前**的乙個系列文章:玩轉google開源c++單元測試框架google test系列(gtest)
首先談一下測試框架gtest。總體感覺gtest使用起來還算比較方便的,而且他們能夠自動執行所有的測試用例,這一點非常重要。在《玩轉google開源c++單元測試框架google test系列(gtest) 》這個系列的文章中,沒有看到測試框架對private方法測試的描述。後來我看了一下官方**的說明,它是支援的。另外,這個測試框架的乙個不好的地方就是,它主要是通過檢查函式返回值來判斷測試成功或失敗的,對於返回值為void的方法,要判斷執行成功與失敗,則非常的不方便,有的時候,根本無法判斷。不過從總體上來看,這個測試框架還是比較不錯的。
其次那,談一下測試驅動開發帶來的好處。
1、提高軟體質量。毋容置疑,有單元測試保障的軟體產品質量肯定要比沒有經過單元測試的軟體產品質量要好。
2、開發速度。測試驅動開發主張在編碼之前首先編寫測試**,這種做法會降低編碼的速度。但是在整個軟體開發過程中,編碼所占用的時間是很少的,我們大部分的時間在除錯,定位bug,修改bug。測試驅動對開發速度的提公升在於,它可以減少後者的時間,從而在整體上提公升開發速度。
3、重構。構建乙個可靠的測試環境,可以讓我們大膽的進行重構,而不用擔心會引入潛伏下來的bug。
4、增量開發。使用測試驅動開發,我們可以實現軟體產品的增量開發,而不用擔心增量開發會對原有的功能造成破壞。
5、促進優良的設計:低耦合,高內聚。測試驅動開發乙個非常重要的好處就是它可以促進優良的設計。糟糕的設計,一般情況會非常難以進行測試。測試驅動有助於促進低耦合,高內聚的設計,因為這樣的設計才會易於測試。
6、真正實現面向介面程式設計。
7、避免過度設計。當你構建好測試用例後,也就提供了乙個完成設計的目標:讓所有的測試用例測試通過。這樣可以避免過度設計。
雖然測試驅動開發有這麼多的好處,但是要在研發人員的推行這個開發方式,面臨的挑戰還是非常大的,畢竟它帶來的是一種全新的開發思路和模式。不過我相信,只要開發人員樂於去嘗試這種開發方式,他一定會喜歡上它的。
rest api 的首次嘗試
這是一道研發崗的試題,據hr小姐姐說是社招的題,我做起來確實有點吃力 因為我不懂商品需要怎麼分類,不知道rest api 是啥。傳送門 關於資料庫 rest api 專案主體都是照著這個參考寫的 寫完之後覺得很簡單,但是過程太艱難了 坑一 intellij idea 的預設上下文就是啥也沒有,不會攜...
基於首次嘗試的體驗
今天是11 27 2010年,我的csdn部落格首先在郵電學院的asic設計中心完成,在此感謝jb,edte,倉鼠男孩 由於我在他的實驗桌上在完成 好了開始吧。這是基於微控制器的平台架設,首先這個板子是at91sam9260的arm晶元。老師給我的串列埠線是告訴我要注意檢測下是否是序列的,我檢測了r...
測試驅動的開發
tdd是軟體開發史上最重要的里程碑之一。tdd主要專注於自動單元測試,它的目標是盡最大限度自動化測試 如果 被改動,我們仍可以執行測試並捕捉可能存在的問題。換言之,測試對於已經存在的功能模組依然有效。比較兩個浮點數的大小 assert almost equal 如果兩個數字的近似程度沒有達到指定精度...