测试驱动的嵌入式C语言开发


测试驱动的嵌入式C语言开发

文章插图
测试驱动的嵌入式C语言开发【测试驱动的嵌入式C语言开发】《测试驱动的嵌入式C语言开发》是2012年机械工业出版社出版的图书 , 作者是格伦宁 (James W.Grenning)。
基本介绍书名:测试驱动的嵌入式C语言开发
作者:格伦宁 (James W.Grenning) 
译者:尹哲 等
ISBN:9787111366232
页数:256页
出版社:机械工业出版社
出版时间:2012-01-01
装帧:平装
开本:平装
丛书名:华章专业开发者丛书
内容简介《测试驱动的嵌入式C语言开发》深入介绍如何把测试驱动的开发方法套用于嵌入式C语言开发 , 第一部分介绍了两个开源的测试框架 , 通过测试驱动开发方法开发第一个模组:第二部分深入介绍了与系统中其他模组进行互动的代码的测试技术 , 如测试替身、仿製对象等;第三部分介绍了设计与持续改进代码 , 如写出更好代码的一些重要原则 , 建立可测并灵活设计的高级技术 , 改进已有代码的实践方法一一重构技术 , 改进遗留代码 , 以及编写和维护测试的指导原则 。《测试驱动的嵌入式C语言开发》的代码几乎全部用C写成 , 并且可以用于嵌入式的、受约束的开发和执行环境 。编辑推荐《测试驱动的嵌入式C语言开发》由Robert C-Martin鼎力推荐 , TDD领域不可多得的佳作 。测试驱动开发(TDD)是C语言开发人员需要掌握的一种现代编程实践 。它是一种不同于以往的编程方法——在一种紧緻的反馈循环中写出单元测试与产品代码 。你时刻都会得到有价值的反馈 。你会在失误变成bug前就找到它们 , 你会有更多的时间花在为产品增加有价值的特性上 。James是为数不多的把测试驱动开发套用于嵌入式C的专家之一 。他在培训以及实践用C、C++、Java和C#做测试驱动开发方面拥有15年的经验 , 可以引领你从TDD的入门走向精通 。《测试驱动的嵌入式C语言开发》是作者多年实践经验的总结 , 实用性强 , 适合嵌入式C/C++语言程式设计师、工程师阅读 。媒体推荐我想这本书将成为嵌入式软体工程师的“圣经” 。——Robert C-Martin作者简介作者:(美国)格伦宁 (James W.Grenning) 译者:尹哲 等格伦宁(James W.Grenning)在全球範围内从事培训以及谘询工作 , 他在软体开发的技术和管理方面拥有丰富的经验 , 他是把敏捷开发实践引入到嵌入式领域的带头人 , 他发明了计画扑克(Planning Poker) , 他还是2001年2月《软体开发敏捷宣言》的作者之一 。尹哲是Odd-e团队中的一名敏捷教练 。他在世界各地从事培训和软体项目谘询 , 如测试驱动开发、系统工程实践以及分析实践等 。他在敏捷与精益教练方面拥有丰富经验 , 在研发管理和软体设计这两方面也造诣颇深 。他同时还是敏捷社区和开源软体的积极参与者 , 他与本书作者James相识多年 , 得其言传身教 , 对本书中所涉及的知识及其套用领域都相当了解 。目录译者序推荐序一推荐序二前言致谢第1章 测试驱动开发1.1 为什幺我们需要TDD1.2 什幺是测试驱动开发1.3 TDD的机理1.4 TDD的微循环1.5 TDD的好处1.6 对于嵌入式开发的益处第一部分 开始第2章 测试驱动开发的工具和约定2.1 什幺是自动化单元测试框架2.2 Unity:一个全部用C实现的自动化测试框架2.3 CppUTest:一个用C++实现的自动化单元测试框架2.4 单元测试也会崩溃2.5 “四阶段”模式2.6 我们到哪里了第3章 开始一个C语言模组3.1 具有可测性的C模组的那些元素3.2 LED驱动都做些什幺3.3 写一个测试列表3.4 写第一个测试3.5 先测试驱动接口再测试驱动内部实现3.6 增量式前进3.7 测试驱动开发者的状态机3.8 测试要做到FIRST3.9 我们到哪里了第4章 一路测试直到完成4.1 从简单入手“生长”出解决方案4.2 保持代码整洁——边做边重构4.3 重複直到完成4.4 声明完成之前先向回走一步4.5 我们到哪里了第5章 嵌入式系统TDD策略5.1 目标硬体的瓶颈5.2 双目标开发的好处5.3 双目标测试的风险5.4 嵌入式的TDD循环5.5 双目标的不兼容性5.6 和硬体一起测试5.7 欲速则不达5.8 我们到哪里了第6章 是的 , 但是……6.1 我们没那个时间6.2 为什幺不在写了代码之后再写测试6.3 测试也需要维护6.4 单元测试不能发现所有的bug6.5 我们的构建时间太长6.6 我们有现存的代码6.7 我们的记忆体有约束6.8 我们不得不和硬体互动6.9 为什幺要用C++的测试框架来测试C6.10 我们到哪里了第二部分 测试有合作者的模组第7章 测试替身7.1 合作者7.2 脱离依赖关係7.3 何时使用测试替身7.4 用C来仿冒 , 下一步7.5 我们到哪里了第8章 监视产品代码8.1 灯光调度测试列表8.2 对于硬体和作业系统的依赖8.3 连结时代换8.4 监视被测试代码8.5 控制时钟8.6 先0后8.7 处理多个的情况8.8 我们到哪里了第9章 运行时绑定的测试替身9.1 测试随机性9.2 冒仿函式指针9.3 外科手术般地插入间谍9.4 用间谍来校验输出9.5 我们到哪里了第10章 仿製对象10.1 快闪记忆体驱动程式10.2 MockIO10.3 测试驱动开发驱动程式10.4 模拟设备逾时10.5 这值得吗10.6 用CppUMock来仿製10.7 生成仿製对象10.8 我们到哪里了第三部分 设计与持续改进 第11章 SOLID、灵活并可测试的设计11.1 SOLID设计原则11.2 C语言中的SOLID模型11.3 演进的需求和有问题的设计11.4 用动态接口来改进设计11.5 更灵活的基于类型的动态接口11.6 做多少设计才是足够的11.7 我们到哪里了第12章 重构12.1 软体的两个价值12.2 三项关键技能12.3 代码中的坏味道以及如何改进它们12.4 转化代码12.5 那性能和大小怎幺办12.6 我们到哪里了第13章 为遗留代码加测试13.1 遗留代码改动準则13.2 童子军原则13.3 遗留代码改动步骤13.4 测试点13.5 两步结构体初始化13.6 崩溃直到通过13.7 鉴别测试13.8 为第三方代码做学习测试13.9 测试驱动缺陷修正13.10 增加策略测试13.11 我们到哪里了第14章 测试的模式与反模式14.1 “喋喋不休”测试反模式14.2 “拷贝-贴上-调整-重複”反模式14.3 “格格不入的测试用例”反模式14.4 “测试组之间的重複”反模式14.5 “不尊重测试”反模式14.6 “行为驱动开发”测试模式14.7 我们到哪里了第15章 结束语第四部分 附录附录A 开发系统的测试环境附录B Unity快速索引附录C CppUTest快速索引附录D 开始之后的LedDriver附录E 作业系统隔离层的例子附录F 参考书目