出版社:人民邮电出版社
年代:2014
定价:49.0
本书讲述如何对所有的软件进行轻松的例行测试,书中为读者提供一些工具——一些实现模式,这些工具几乎可以测试任何代码。本书分为三个部分:第一部分讨论了测试的一些原则和实践,包括首次优质、代码意图、测试攻略和测试与设计之间的关系等;第二部分讨论了有关测试实践方面的一些模式;第三部分展示了两个实例的编程过程。
第一部分 测试的原则和实践第1章 工程、匠艺和首次优质1.1工程与匠艺1.2 匠艺在首次优质中的作用1.3 支持软件匠艺的实践 测试1.4 在代码检查器的约束下进行单元测试1.5 针对覆盖率的单元测试第2章 代码的意图2.1 意图都被放到哪里去了?2.2 将意图与实现分离2.3 一个能引发思考的简单例子第3章 从哪里开始3.1 一种测试的方法3.1.1 了解范围3.1.2 测试的概念框架3.1.3 状态和行为测试3.1.4 测试还是不测试3.2 攻略3.2.1 测试"正常路径"3.2.2 测试替代路径3.2.3 测试错误路径3.2.4 测试数据的排列组合3.2.5 对缺陷进行测试第4章 设计和可测试性4.1 关于设计范型4.2 封装和可观察性4.2.1 表示性的封装4.2.2 行为的封装4.2.3 测试的灰度4.2.4 封装、可观察性和可测试性4.3 耦合和可测性第5章 测试的原则5.1 把测试雕琢好5.1.1 将输入关联到输出5.1.2 使用命名约定5.2 避免在生产代码内出现测试代码5.3 通过实现来验证意图5.4 将耦合最小化5.5 要最小的、新的和瞬态fixture5.6 利用现有设施5.7 要完整的验证而不要部分的验证5.8 编写小测试5.9 分离关注点5.10 使用唯一值5.11 保持简单:删除代码5.12 不要测试框架不要测试生成的代码5.13 有时测试框架
第二部分 测试与可测试性模式第6章 基础知识6.1 bootstrapping构造器6.2 测试简单的getter和setter6.3 共享常量6.4 在局部重新定义6.5 暂时替换6.6 封装和覆写6.7 调整可见性6.8 通过注入的验证第7章 字符串处理7.1 通过包含关系来验证7.2 通过模式来验证7.3 通过值来精确验证7.4 使用格式化的结果来精确验证第8章 封装和覆写变化8.1 数据注入8.2 封装循环条件8.3 错误注入8.4 替换协作者8.5 使用现有的操作类第9章 调整可见性9.1 用包来包装测试9.2 将其分解9.3 更改访问级别9.4 仅用于测试的接口9.5 命名那些尚未命名的9.6 变为friend9.7 通过反射来强制访问9.8 声明范围变更第10章 间奏:重温意图10.1 测试单例模式10.2 单例的意图10.3 测试的策略10.3.1 测试单例的性质10.3.2 对类的目的进行测试10.4 独具慧眼的意图第11章 错误条件验证11.1 检查返回值11.2 验证异常类型11.3 验证异常消息11.4 验证异常有效载荷11.5 验证异常实例11.6 有关异常设计的思考第12章 利用现有接缝12.1 直接调用12.1.1 接口12.1.2 实现12.2 依赖注入12.3 回调、观察者、监听者和通告者12.4 注册表12.5 工厂12.6 日志记录与最后一手的其他设施第13章 并行性13.1 线程和竞态条件的简介13.1.1 一些历史13.1.2 竞态条件13.1.3 死锁13.2 一个用于重现竞态条件的策略13.3 直接测试线程的任务13.4 通过常见锁来进行同步13.5 通过注入来同步例子:通过日志记录来注入同步13.6 使用监督控制13.7 统计性的验证13.8 调试器API
第三部分 实例第14章 测试驱动的Java14.1 bootstrapping14.2 首要功能14.3 切断网络连接14.4 转移到处理多个网站的情况14.5 幽灵协议14.5.1 死胡同14.5.2spy手艺14.6 执行选项14.7 走向下游14.8 回顾第15章 遗留的JavaScript代码15.1 准备开始15.2 DOM的统治15.3 在牙膏与测试之上15.4 向上扩展15.5 软件考古学15.6 回顾封底文字
《优质代码:软件测试的原则、实践与模式》讲述如何对所有的软件进行轻松的例行测试,书中为读者提供一些工具——一些实现模式,这些工具几乎可以测试任何代码。 《优质代码:软件测试的原则、实践与模式》分为三个部分:第一部分(第1~5章)讨论了测试的一些原则和实践,包括首次优质、代码意图、测试攻略和测试与设计之间的关系等;第二部分(第6~13章)讨论了有关测试实践方面的一些模式,包括测试构造器和getter/setter、处理字符串、封装与覆写、调整代码可见性、测试单例模式、验证错误条件,以及利用各种接缝和测试多线程等;第三部分(第14~15章)展示了两个实例的编程过程,其中一个是用测试驱动开发方法编写新的Java应用程序WebRetriever,另一个是为一个未写测试的JavaScript开源项目jQuery Timepicker Addon添加测试代码。 《优质代码:软件测试的原则、实践与模式》适合对测试驱动开发有初步了解或实践并想提升测试代码编写技能的程序员和自动化测试工程师阅读,也适合想通过本书在GitHub上的微量提交的代码来学习用测试驱动开发方法编写Java新项目和用测试来驯服JavaScript遗留代码的详细过程的任何读者阅读。
《优质代码:软件测试的原则、实践与模式》专门从软件开发人员和技术人员关注的代码质量的角度来讲软件测试的原理、实践和模式。作者有30多年的软件开发经验,20多年软件测试技术的教授经验。书中积累了来自大量高水准软件工程师的多年经验。无论你是在写一个新系统,还是试图驾驭一个遗留系统,本书都会让你高效地开发高质量的代码。
测试驱动、测试先行和尽早测试这些开发实践,正在帮助成千上万的软件开发组织改善其软件。在本书中,作者立足于所有读者已经熟知的测试驱动开发知识,帮助读者实现前所未有的优质代码。
为了帮助读者更加全面、有效和轻松地测试任何软件系统,本书使用真实的代码示例介绍了测试的模式、原则和20多个技术细节,并通过两个完整的案例分析,即测试一个全新的Java应用程序和一个未被测试的“遗留”JavaScriptjQuery插件,将本书讲述的所有内容整合在了一起。此外,作者还展示了一个概念框架,帮助读者将精力重点放在改善贯穿整个软件生命周期的可测试性上,并给读者提供了简化代码构造的全系列测试的实操指南。
无论是最常见的场景还是多线程,本书都会帮读者学会如何针对每一种情景选择最好的测试技术;无论是为一个新的创业公司开发前沿代码,还是维护一个很难驾驭的老旧系统,本书都会帮读者交付其真正需要的优质代码。
简化所有代码的单元测试,并改善集成测试和系统测试。
详述意图和实现,促进更加可靠和可扩展的测试。
克服对编写测试的机制的混淆和误解。
测试“副作用”、行为特征和上下文约束。
了解软件设计与可测试性之间微妙的交互,并对其进行利用,而非受困其中。
揭示能够指导关键测试决策的一些核心原则。
探讨以下内容的测试:getter/setter、字符串处理、封装、覆写变化、可见性、单例模式、错误条件等。
确定性地重现并测试一些复杂的竞态条件。
赵国亮, 霍亚格, 陈敬恒, 编著
赵国亮, 主编
(美) 卡尼尔 (Kaner,C.) , 著
(美) 梅尔斯 (Myers,G.J.) 等, 著
(美) 马瑞克 (Marick,B.) , 著
(英) 沃特金斯 (Wakins,J.) , 著
蔡建平, 主编
(美) 费恩 (Fine,M.R.) , 著
(美) 斯蒂文斯 (Stephens,M.) , (美) 罗森伯格 (Rosenberg,D.) , 著