測試驅(qū)動的嵌入式C語言開發(fā)

出版時間:2012-1  出版社:機(jī)械工業(yè)出版社  作者:James W. Grenning  頁數(shù):256  譯者:尹哲  
Tag標(biāo)簽:無  

內(nèi)容概要

本書深入介紹如何把測試驅(qū)動的開發(fā)方法應(yīng)用于嵌入式C語言開發(fā),第一部分介紹了兩個開源的測試框架,通過測試驅(qū)動開發(fā)方法開發(fā)第一個模塊:第二部分深入介紹了與系統(tǒng)中其他模塊進(jìn)行交互的代碼的測試技術(shù),如測試替身、仿制對象等;第三部分介紹了設(shè)計與持續(xù)改進(jìn)代碼,如寫出更好代碼的一些重要原則,建立可測并靈活設(shè)計的高級技術(shù),改進(jìn)已有代碼的實踐方法一一重構(gòu)技術(shù),改進(jìn)遺留代碼,以及編寫和維護(hù)測試的指導(dǎo)原則。本書的代碼幾乎全部用C寫成,并且可以用于嵌入式的、受約束的開發(fā)和執(zhí)行環(huán)境。
本書是作者多年實踐經(jīng)驗的總結(jié),實用性強(qiáng),適合嵌入式C/C++語言程序員、工程師閱讀。

作者簡介

作者:(美國)格倫寧 (James W.Grenning) 譯者:尹哲 等格倫寧(James W.Grenning)在全球范圍內(nèi)從事培訓(xùn)以及咨詢工作、他在軟件開發(fā)的技術(shù)和管理方面擁有豐富的經(jīng)驗。、他是把敏捷開發(fā)實踐引入到嵌入式領(lǐng)域的帶頭人他發(fā)明了計劃撲克(Planning Poker)他還是2001年2月《軟件開發(fā)敏捷宣言》的作者之一。尹哲是Odd-e團(tuán)隊中的一名敏捷教練。他在世界各地從事培訓(xùn)和軟件項目咨詢,如測試驅(qū)動開發(fā)、系統(tǒng)工程實踐以及分析實踐等。他在敏捷與精益教練方面擁有豐富經(jīng)驗,在研發(fā)管理和軟件設(shè)計這兩方面也造詣頗深。他同時還是敏捷社區(qū)和開源軟件的積極參與者,他與本書作者James相識多年,得其言傳身教,對本書中所涉及的知識及其應(yīng)用領(lǐng)域都相當(dāng)了解。

書籍目錄

譯者序
推薦序一
推薦序二
前言
致謝
第1章 測試驅(qū)動開發(fā)
 1.1 為什么我們需要TDD
 1.2 什么是測試驅(qū)動開發(fā)
 1.3 TDD的機(jī)理
 1.4 TDD的微循環(huán)
 1.5 TDD的好處
 1.6 對于嵌入式開發(fā)的益處
第一部分 開  始
第2章 測試驅(qū)動開發(fā)的工具和約定
 2.1 什么是自動化單元測試框架
 2.2 Unity:一個全部用C實現(xiàn)的自動化測試框架
 2.3 CppUTest:一個用C++實現(xiàn)的自動化單元測試框架
 2.4 單元測試也會崩潰
 2.5 “四階段”模式
 2.6 我們到哪里了
第3章 開始一個C語言模塊
 3.1 具有可測性的C模塊的那些元素
 3.2 LED驅(qū)動都做些什么
 3.3 寫一個測試列表
 3.4 寫第一個測試
 3.5 先測試驅(qū)動接口再測試驅(qū)動內(nèi)部實現(xiàn)
 3.6 增量式前進(jìn)
 3.7 測試驅(qū)動開發(fā)者的狀態(tài)機(jī)
 3.8 測試要做到FIRST
 3.9 我們到哪里了
第4章 一路測試直到完成
 4.1 從簡單入手“生長”出解決方案
 4.2 保持代碼整潔——邊做邊重構(gòu)
 4.3 重復(fù)直到完成
 4.4 聲明完成之前先向回走一步
 4.5 我們到哪里了
第5章  嵌入式系統(tǒng)TDD策略
 5.1 目標(biāo)硬件的瓶頸
 5.2 雙目標(biāo)開發(fā)的好處
 5.3 雙目標(biāo)測試的風(fēng)險
 5.4 嵌入式的TDD循環(huán)
 5.5 雙目標(biāo)的不兼容性
 5.6 和硬件一起測試
 5.7 欲速則不達(dá)
 5.8 我們到哪里了
第6章 是的,但是……
 6.1 我們沒那個時間
 6.2 為什么不在寫了代碼之后再寫測試
 6.3 測試也需要維護(hù)
 6.4 單元測試不能發(fā)現(xiàn)所有的bug
 6.5 我們的構(gòu)建時間太長
 6.6 我們有現(xiàn)存的代碼
 6.7 我們的內(nèi)存有約束
 6.8 我們不得不和硬件交互
 6.9 為什么要用C++的測試框架來測試C
 6.10 我們到哪里了
第二部分 測試有合作者的模塊
第7章 測試替身
 7.1 合作者
 7.2 脫離依賴關(guān)系
 7.3 何時使用測試替身
 7.4 用C來仿冒,下一步
 7.5 我們到哪里了
第8章 監(jiān)視產(chǎn)品代碼
 8.1 燈光調(diào)度測試列表
 8.2 對于硬件和操作系統(tǒng)的依賴
 8.3 鏈接時代換
 8.4 監(jiān)視被測試代碼
 8.5 控制時鐘
 8.6 先0后
 8.7 處理多個的情況
 8.8 我們到哪里了
第9章 運行時綁定的測試替身
 9.1 測試隨機(jī)性
 9.2 冒仿函數(shù)指針
 9.3 外科手術(shù)般地插入間諜
 9.4 用間諜來校驗輸出
 9.5 我們到哪里了
第10章 仿制對象
 10.1 閃存驅(qū)動程序
 10.2 MockIO
 10.3 測試驅(qū)動開發(fā)驅(qū)動程序
 10.4 模擬設(shè)備超時
 10.5 這值得嗎
 10.6 用CppUMock來仿制
 10.7 生成仿制對象
 10.8 我們到哪里了
第三部分 設(shè)計與持續(xù)改進(jìn)
第11章 SOLID、靈活并可測試的設(shè)計
 11.1 SOLID設(shè)計原則
 11.2 C語言中的SOLID模型
 11.3 演進(jìn)的需求和有問題的設(shè)計
 11.4 用動態(tài)接口來改進(jìn)設(shè)計
 11.5 更靈活的基于類型的動態(tài)接口
 11.6 做多少設(shè)計才是足夠的
 11.7 我們到哪里了
第12章 重構(gòu)
 12.1 軟件的兩個價值
 12.2 三項關(guān)鍵技能
 12.3 代碼中的壞味道以及如何改進(jìn)它們
 12.4 轉(zhuǎn)化代碼
 12.5 那性能和大小怎么辦
 12.6 我們到哪里了
第13章 為遺留代碼加測試
 13.1 遺留代碼改動準(zhǔn)則
 13.2 童子軍原則
 13.3 遺留代碼改動步驟
 13.4 測試點
 13.5 兩步結(jié)構(gòu)體初始化
 13.6 崩潰直到通過
 13.7 鑒別測試
 13.8 為第三方代碼做學(xué)習(xí)測試
 13.9 測試驅(qū)動缺陷修正
 13.10 增加策略測試
 13.11 我們到哪里了
第14章 測試的模式與反模式
 14.1 “喋喋不休”測試反模式
 14.2 “拷貝-粘貼-調(diào)整-重復(fù)”反模式
 14.3 “格格不入的測試用例”反模式
 14.4  “測試組之間的重復(fù)”反模式
 14.5  “不尊重測試”反模式
 14.6 “行為驅(qū)動開發(fā)”測試模式
 14.7 我們到哪里了
第15章 結(jié)束語
第四部分 附錄
 附錄A 開發(fā)系統(tǒng)的測試環(huán)境
 附錄B Unity快速索引
 附錄C CppUTest快速索引
 附錄D 開始之后的LedDriver
 附錄E 操作系統(tǒng)隔離層的例子
 附錄F 參考書目
 
  

章節(jié)摘錄

版權(quán)頁:插圖:最終,當(dāng)一些保護(hù)測試就緒后,就應(yīng)該可以比較安全地應(yīng)用一些重構(gòu)變化了,因為我們已經(jīng)讓代碼準(zhǔn)備好來迎接我們想做的改變。有了測試來穩(wěn)固遺留的行為,就可以安全地測試驅(qū)動新的行為了。在13.4 節(jié)中,我們會看到在一些遺留代碼中選擇測試點。13.4 測試點我們需要測試點來確認(rèn)對代碼所做事情的理解。有些測試點很容易找到,有些則比較困難。接縫函數(shù)調(diào)用在代碼中的不同部分之間形成了“接縫”。這些接縫是最好的測試點。接縫讓我們可以看到和干預(yù)被測試代碼所做的事情。Michael這樣定義接縫:“接縫就是這樣一個位置,在那里你可以改變程序的行為,卻不用修改那個位置?!苯涌p就是你可以使用測試替身來監(jiān)視傳給合作者數(shù)據(jù)的地方,讓測試用例可以確保被測試代碼給合作者傳去了正確的指令。函數(shù)調(diào)用接縫還是測試替身可以為被測代碼提供間接輸入的地方,這通過測試替身的返回值來完成。你的代碼中可能已經(jīng)有了很多函數(shù)接縫。這里的例外是那種鐵板一塊的函數(shù)。為這種函數(shù)創(chuàng)建接縫可能會很危險。加入一個“感知變量”可能會更安全一點。

媒體關(guān)注與評論

我想這本書將成為嵌入式軟件工程師的“圣經(jīng)”?!  猂obert C.Martin

編輯推薦

《測試驅(qū)動的嵌入式C語言開發(fā)》由Robert C.Martin鼎力推薦,TDD領(lǐng)域不可多得的佳作。測試驅(qū)動開發(fā)(TDD)是C語言開發(fā)人員需要掌握的一種現(xiàn)代編程實踐。它是一種不同于以往的編程方法——在一種緊致的反饋循環(huán)中寫出單元測試與產(chǎn)品代碼。你時刻都會得到有價值的反饋。你會在失誤變成bug前就找到它們,你會有更多的時間花在為產(chǎn)品增加有價值的特性上。James是為數(shù)不多的把測試驅(qū)動開發(fā)應(yīng)用于嵌入式C的專家之一。他在培訓(xùn)以及實踐用C、C++、Java和C#做測試驅(qū)動開發(fā)方面擁有15年的經(jīng)驗,可以引領(lǐng)你從TDD的入門走向精通。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    測試驅(qū)動的嵌入式C語言開發(fā) PDF格式下載


用戶評論 (總計21條)

 
 

  •   少有的從TDD角度講解嵌入式C開發(fā)的,主要講C單元測試自動化,需要些C基礎(chǔ)
  •   在嵌入式測試當(dāng)中,該書的確寫的不錯。
  •   測試驅(qū)動講解的很好,書的質(zhì)量也非常好,還沒來得及仔細(xì)看
  •   開闊了眼界,學(xué)到了一些實質(zhì)性的內(nèi)容。
  •   在這買書,實惠!現(xiàn)在我們?nèi)业臅荚诋?dāng)當(dāng)買。只是書買的多了,有沒有什么辦法賣出去。
  •   剛讀了幾頁,不錯,是我需要的。
  •   現(xiàn)在正在讀,幫助很大。。。
  •   幫公司買的,應(yīng)該不錯
  •   本人才疏學(xué)淺,至今未看懂.書還是不錯的.
  •   書的質(zhì)量無論是紙張還是內(nèi)容都是很不錯的,不過我還沒來得急看
  •   送貨很快,書拿到都看了好久了。
  •   剛看了幾頁,很好的書.
  •   這個書是講如何在沒有硬件電路的情況下測試驅(qū)動程序的有效性
  •   初學(xué)者學(xué)習(xí)的好書
  •   沒看呢,希望不錯吧,發(fā)貨速度快
  •   講的詳細(xì) 但是可操作性不強(qiáng)
  •   我覺得有用。 里面關(guān)于測試部分的。
  •   老外的書,思想是值得推崇的,但實踐起來比較困難。
  •   買回來放了幾個月就仍了
  •   可能是自己水平不行吧。書的實用性不強(qiáng)
  •   很少有像James這樣的把測試驅(qū)動開發(fā)應(yīng)用于嵌入式C中,如果你是搞嵌入式C,那么不應(yīng)該錯過這本書。
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號-7