《有效的单元测试》

《有效的单元测试》 《有效的单元测试》

  • 书名:《有效的单元测试》
  • 分类:计算机
  • 作者:科斯凯拉 (Lasse Koskela)
  • 出版社:机械工业出版社
  • 出版年:2014-11-1
  • 售价:CNY 59.00
  • 装订:平装
  • 页码:198

《有效的单元测试》 内容介绍:

《有效的单元测试》是一本关于单元测试的专著,由资深敏捷技术实践专家撰写,不仅系统且深入地阐释了单元测试用于软件设计的工具、方法、原则和最佳实践,而且对各种测试常见问题进行了深入分析,包含大量实践案例,可操作性强,能为用户高效编写优秀测试提供有效指导,让组织持续创造成功的产品和服务。 《有效的单元测试》分为三部分,共9章。第一部分(第1~3章)主要阐述测试的目的与原因,并分析作为常用工具的测试替身的作用。第1章先从整体阐释测试先行所带来的价值,以及各种对测试和测试质量的影响。第2章定义如何才能写出优秀的测试。第3章讨论现代程序员最基本的工具之一——测试替身。第二部分(第4~6章)的目标是帮助我们更好地识别并修复测试代码中的坏味道。第4章展示破坏测试可读性的坏味道。第5章继续对破坏可维护性的测试提供建议。第6章涉及有关脆弱或不可靠的测试坏味道。第三部分(第7~9章)涉及Java程序员在编写测试时随时可能碰到的话题。第7章介绍可测的设计的定义与作用。第8章探讨JVM语言的共生,以及如何用另一门语言来测试Java代码。第9章专门讨论对构建进行加速的问题。此外还包括两个附录,附录A介绍使用JUnit编写测试的入门知识。附录B探讨通过JUnit的API来扩展其内置功能。

作者科斯凯拉 (Lasse Koskela)介绍:

Lasse Koskela,资深敏捷技术实践专家、敏捷教练、培训师、顾问和程序员,具有数十年计算机程序设计和开发经验。他精通多种编程语言,尤其对Java、Ruby、C/C++有独到见解,热衷于编程和追逐前沿技术,在程序设计、软件工程、项目管理等多个领域颇有建树。目前他主攻开源项目,帮助企业提高生产力,而且经常在世界各地的会议上发表演讲。除本书外,他还著有《测试驱动开发的艺术》。 译者:申健,敏捷教练,软件咨询顾问,Certified Scrum Professional。自2007年开始敏捷开发实战,在诺基亚西门子、渣打银行等企业从事过高级工程师、研发经理、项目经理等职位。ScrumGathering2014演讲总制作人,InfoQ中文站编辑。

《有效的单元测试》 目录大纲:

第一部分 基础
第1章 优秀测试的承诺
1.1 国情咨文:编写更好的测试
1.2 测试的价值
1.2.1 生产力的因素
1.2.2 设计潜力的曲线
1.3 测试作为设计工具
1.3.1 测试驱动开发
1.3.2 行为驱动开发
1.4 小结
第2章 寻求优秀
2.1 可读的代码才是可维护的代码
2.2 结构有助于理解事物
2.3 如果测试了错误的东西就不好了
2.4 独立的测试易于单独运行
2.5 可靠的测试才是可靠的
2.6 每个行业都有其工具而测试也不例外
2.7 小结
第3章 测试替身
3.1 测试替身的威力
3.1.1 隔离被测代码
3.1.2 加速执行测试
3.1.3 使执行变得确定
3.1.4 模拟特殊情况
3.1.5 暴露隐藏的信息
3.2 测试替身的类型
3.2.1 测试桩通常是短小的
3.2.2 伪造对象做事不产生副作用
3.2.3 测试间谍偷取秘密
3.2.4 模拟对象反对惊喜
3.3 使用测试替身的指南
3.3.1 为测试挑选合适的替身
3.3.2 准备、执行、断言
3.3.3 检查行为,而非实现
3.3.4 挑选你的工具
3.3.5 注入依赖
3.4 小结
第二部分 目录
第4章 可读性
4.1 基本断言
4.1.1 示例
4.1.2 该对它做点儿什么
4.1.3 小结
4.2 过度断言
4.2.1 示例
4.2.2 该对它做点儿什么
4.2.3 小结
4.3 按位断言
4.3.1 示例
4.3.2 该对它做点儿什么
4.3.3 小结
4.4 附加细节
4.4.1 示例
4.4.2 该对它做点儿什么
4.4.3 小结
4.5 人格分裂
4.5.1 示例
4.5.2 该对它做点儿什么
4.5.3 小结
4.6 逻辑分割
4.6.1 示例
4.6.2 该对它做点儿什么
4.6.3 小结
4.7 魔法数字
4.7.1 示例
4.7.2 该对它做点儿什么
4.7.3 小结
4.8 冗长安装
4.8.1 示例
4.8.2 该对它做点儿什么
4.8.3 小结
4.9 过分保护
4.9.1 示例
4.9.2 该对它做点儿什么
4.9.3 小结
4.10 总结
第5章 可维护性
5.1 重复
5.1.1 示例
5.1.2 该对它做点儿什么
5.1.3 小结
5.2 条件逻辑
5.2.1 示例
5.2.2 该对它做点儿什么
5.2.3 小结
5.3 脆弱的测试
5.3.1 示例
5.3.2 该对它做点儿什么
5.3.3 小结
5.4 残缺的文件路径
5.4.1 示例
5.4.2 该对它做点儿什么
5.4.3 小结
5.5 永久的临时文件
5.5.1 示例
5.5.2 该对它做点儿什么
5.5.3 小结
5.6 沉睡的蜗牛
5.6.1 示例
5.6.2 该对它做点儿什么
5.6.3 小结
5.7 像素完美
5.7.1 示例
5.7.2 该对它做点儿什么
5.7.3 小结
5.8 参数化混乱
5.8.1 示例
5.8.2 该对它做点儿什么
5.8.3 小结
5.9 方法间缺乏内聚
5.9.1 示例
5.9.2 该对它做点儿什么
5.9.3 小结
5.10 总结
第6章 可信赖
6.1 注释掉的测试
6.1.1 示例
6.1.2 该对它做点儿什么
6.1.3 小结
6.2 歧义注释
6.2.1 示例
6.2.2 该对它做点儿什么
6.2.3 小结
6.3 永不失败的测试
6.3.1 示例
6.3.2 该对它做点儿什么
6.3.3 小结
6.4 轻率承诺
6.4.1 示例
6.4.2 该对它做点儿什么
6.4.3 小结
6.5 降低期望
6.5.1 示例
6.5.2 该对它做点儿什么
6.5.3 小结
6.6 平台偏见
6.6.1 示例
6.6.2 该对它做点儿什么
6.6.3 小结
6.7 有条件的测试
6.7.1 示例
6.7.2 该对它做点儿什么
6.7.3 小结
6.8 总结
第三部分 消遣
第7章 可测的设计
7.1 什么是可测的设计
7.1.1 模块化设计
7.1.2 SOLID设计原则
7.1.3 上下文中的模块化设计
7.1.4 以测试驱动出模块化设计
7.2 可测性的问题
7.2.1 无法实例化某个类
7.2.2 无法调用某个方法
7.2.3 无法观察到输出
7.2.4 无法替换某个协作者
7.2.5 无法覆盖某个方法
7.3 可测的设计的指南
7.3.1 避免复杂的私有方法
7.3.2 避免final方法
7.3.3 避免static方法
7.3.4 使用new时要当心
7.3.5 避免在构造函数中包含逻辑
7.3.6 避免单例
7.3.7 组合优于继承
7.3.8 封装外部库
7.3.9 避免服务查找
7.4 小结
第8章 用其他JVM语言来编写测试
8.1 混合使用JVM语言的前提
8.1.1 通用收益
8.1.2 编写测试
8.2 用Groovy来编写测试
8.2.1 简化的测试setup
8.2.2 Groovy式的JUnit 4测试
8.3 BDD工具的表达力
8.3.1 用easyb写Groovy需求说明
8.3.2 Spock Framework:编写更具表达力测试的激素
8.3.3 Spock Framework的测试替身也打了激素
8.4 小结
第9章 加速执行测试
9.1 追求速度
9.1.1 对速度的需要
9.1.2 进入状况
9.1.3 对构建进行性能分析
9.1.4 对测试进行性能分析
9.2 令测试代码加速
9.2.1 别睡觉,除非你累了
9.2.2 当心膨胀的基类
9.2.3 当心冗余的setup与teardown
9.2.4 挑剔地添加新测试
9.2.5 保持本地运行,保持快速
9.2.6 抵御访问数据库的诱惑
9.2.7 没有比文件I/O更慢的I/O了
9.3 令构建加速
9.3.1 RAM磁盘带来更快的I/O
9.3.2 并行构建
9.3.3 改换为高性能CPU
9.3.4 分布式构建
9.4 小结
附录A JUnit入门
附录B 扩展JUnit


微信扫一扫关注公众号

0 个评论

要评论图书请先登录注册

你也许想看:

Pro Android 3 Games

《Pro Android 3 Games》

Vladimir Silva.Apress.2011-12-30

“”

敏捷开发一千零一夜

《敏捷开发一千零一夜》

王立杰.电子工业出版社.2013-8

“本书以多位作者的亲身经历,再现真实的敏捷实施过程,描述各个企业在实施敏捷的过程中,遇到的种种问题、解决的思路及最终得到的...”

Learning IPython for Interactive Computing and Data Visualization

《Learning IPython for Interactive Computing and Data Visualization》

Cyrille Rossant.Packt Publishing.2013-4-25

“”

大话存储(终极版)

《大话存储(终极版)》

张冬.清华大学出版社.2015-1

“网络存储是一个涉及计算机硬件以及网络协议/技术、操作系统以及专业软件等各方面综合知识的领域。目前国内阐述网络存储的书籍少...”

深度探索嵌入式操作系统

《深度探索嵌入式操作系统》

彭东.机械工业出版社.2015-10

“相信很多同行和笔者以前一样,阅读过很多操作系统理论方面的书籍,感觉它们所讲述的理论大同小异且比较容易理解,但是真要我们自...”

A Smarter Way to Learn JavaScript

《A Smarter Way to Learn JavaScript》

Mark Myers.CreateSpace Independent Publishing Platform.2014-3-20

“A few years ago I set out to teach myself JavaScript by read...”

统计软件教程

《统计软件教程》

李东风.人民邮电出版社.2006-11

“本书是统计软件的入门教程,分成两部分,分别讲述SAS系统和S语言。主要内容包括:SAS系统的基础知识、SAS 语言与数据...”

入侵的艺术

《入侵的艺术》

Kevin D.Mitnick,William L.Simon.清华大学.2007-1

“《入侵的艺术》中四个志同道合的伙伴使用口袋大小的计算机在拉斯维加斯大把挣钱。一个无聊的加拿大小伙子居然能够非法访问南部的...”

分析模式

《分析模式》

Martin Fowler.机械工业出版社.2004-2-1

“本书的作者Martin Fowl”

清华大学计算机系列教材

《清华大学计算机系列教材》

张尧学,宋虹,张高.清华大学出版社.2013-10-1

“”

OpenStack Essentials

《OpenStack Essentials》

Dan Radez.Packt Publishing - ebooks Account.2015-5-25

“”

面向模式的软件架构,卷3

《面向模式的软件架构,卷3》

[德] Michael Kircher [印]Prashant Jain.人民邮电出版社.2013-6

“作为面向模式的软件架构系列丛书的第3卷,《面向模式的软件架构,卷3:资源管理模式》不仅详尽地阐述了资源管理模式,而且通过...”

软件工程:实践者的研究方法(原书第 5 版)

《软件工程:实践者的研究方法(原书第 5 版)》

Roger S.Pressman.机械工业出版社.2002.9

“本书是20多年来一直在软件工程的教学、科研和应用中享有盛誉的经典著作―《软件工程:实践者的研究方法》(Software ...”

MEAN Web Development

《MEAN Web Development》

Amos Q. Haviv.Packt Publishing - ebooks Account.2014-9-24

“”

Learning ZeroMQ

《Learning ZeroMQ》

Pieter Hintjens.CreateSpace Independent Publishing Platform.2013-1-7

“”

企业应用架构模式

《企业应用架构模式》

Martin Fowler,王怀民,周斌.机械工业出版社.2004-7

“本书作者是当今面向对象软件开发的权威,他在一组专家级合作者的帮助下,将40多种经常出现的解决方案转化成模式,最终写成这本...”

轻松学Android开发

《轻松学Android开发》

王雅宁.电子工业出版社.2013-4

“《轻松学Android开发(图解版)》共分四篇。“Android基础篇”主要介绍Android系统、Android布局设...”

Getting Started with Grunt

《Getting Started with Grunt》

Jaime Pillora.Packt Publishing.2014-2-19

“”

科学计算与企业级应用的并行优化

《科学计算与企业级应用的并行优化》

刘文志.机械工业出版社.2015-7-1

“本书系统、深入讲解了科学计算及企业级应用的并行优化方法与最佳实践。第1章介绍了常见的并行编程基于的多核/众核向量处理器架...”

Introducing Go

《Introducing Go》

Caleb Doxsey.O'Reilly Media.2016-2-1

“”