作者:王东刚 编著 出版社:人民邮电出版社 内容提要本书是为软件测试领域相关人员编写的。前3章重在培养读者的软件测试意识。第4章是一个特殊的测试流程介绍。第5章详细阐述了类测试思想。第6-9章偏重于测试技术应用,着重介绍一款Xunit工具,并且加入了实际例子进一步告诉读者如何更好地应用。第10章介绍了测试后BUG的处理手段和相关处理流程。在附录中还有作者的感悟和与测试相关的书籍的评价。本书的特点在于“学以致用”,从测试的实际应用出发,结合大量的测试例子,使读者在测试层面上有更大的提高。本书适合于实现人员、设计人员、测试人员以及测试管理者参考使用。目录第1章 引言1.1 读者对象1.2 编码语言1.3 软件测试方法快速浏览1.4 联机文档1.5 本书包含章节1.6 源代码1.7 样式1.8 错误1.9 作者联系方法1.10 建议与评论1.11 致谢第2章 测试进阶2.1 什么是软件测试2.2 为什么需要软件测试2.3 软件测试目的2.4 软件测试原则2.4.1 尽早和不断地测试2.4.2 彻底的测试不可能2.4.3 由小到大的测试范围2.4.4 避免检查自己的代码2.4.5 追溯至用户需求2.4.6 考虑到各种输入2.4.7 错误集中发生现象2.4.8 跟踪测试错误结果2.4.9 合理安排测试计划2.4.10 错误的关联和依赖2.4.11 测试结果的全面检查2.4.12 及时更新测试2.5 软件的可测试性2.6 测试人员的素质2.7 如何成为测试专家2.8 测试人员最好拥有编程或者项目经验2.9 本章总结第3章 认识和理解3.1 什么是软件BUG3.2 测试团队的构成3.3 测试认识的误区3.3.1 测试工具和有效测试3.3.2 测试天生是矮子3.3.3 随意的测试3.3.4 测试是一种想象3.3.5 非专业人员做测试3.3.6 测试是简单的事情3.3.7 测试能保证软件质量3.4 单元测试概论3.4.1 单元测试提高开发速度和质量3.4.2 单元测试是一种设计3.4.3 单元测试的重要性3.4.4 哪些代码呼唤单元测试3.4.5 初试单元测试3.5 单元测试的误区3.5.1 单元测试不是规范3.5.2 它浪费了太多的时间3.5.3 它仅仅是证明这些代码做了什么3.5.4 是不是可以不进行单元测试3.5.5 集成测试将会抓住所有的Bug3.5.6 成本效率不高3.6 持续集成和测试3.6.1 持续集成的优点3.6.2 集成越频繁效果越好3.6.3 使用配置管理工具3.6.4 自动化创建过程3.6.5 自测试的代码3.7 测试用例3.7.1 测试用例构成3.7.2 测试用例范例3.8 软件复审3.8.1 软件复审内容3.8.2 软件评审误区3.8.3 流程图3.8.4 复审参与角色3.8.5 流程规约3.9 测试自动化3.9.1 使用测试工具的前提3.9.2 测试自动化的绩效3.10 自动化测试的存活周期3.10.1 中介代码的变化3.10.2 被测试代码的变化3.10.3 更深入的测试探讨和研究3.11 商业测试工具实现方式3.11.1 对象识别模式3.11.2 动作识别模式3.11.3 两种模式的缺陷3.12 本章总结第4章 敏捷测试4.1 软件的开发模式4.1.1 瀑布模型4.1.2 迭代模型4.1.3 螺旋迭代模型4.2 敏捷测试的存在理由4.2.1 敏捷测试的价值观4.2.2 敏捷测试的原则4.2.3 敏捷测试的实践4.2.4 敏捷测试是(不是)什么4.2.5 测试何时是敏捷的4.2.6 敏捷测试何时是有(没有)意义的4.2.7 想成为一个敏捷测试者吗4.2.8 敏捷测试团队的构成4.3 敏捷测试涉及角色4.3.1 测试经理4.3.2 测试分析员4.3.3 测试设计员4.3.4 测试员4.3.5 测试工具开发员4.4 敏捷测试成熟度4.4.1 初始阶段(I级)4.4.2 已定义阶段(II级)4.4.3 可持续集成阶段(III级)4.4.4 可管理阶段(IV级)4.4.5 持续优化阶段(V级)4.5 敏捷测试过程4.6 本章总结第5章 类测试5.1 类测试概念5.1.1 类在UML中的描述5.1.2 类测试的组成5.1.3 类测试和传统单元测试5.1.4 类的测试价值5.1.5 类测试关联人员5.1.6 类测试用例5.1.7 类测试的阶段5.1.8 类测试过程5.1.9 类测试程度5.2 确定类测试用例5.2.1 根据前置和后置状态确定测试用例5.2.2 根据状态转换确定测试用例5.2.3 根据代码确定测试用例5.3 构造类测试驱动5.3.1 测试驱动器的构建前提5.3.2 TestCase类设计5.3.3 根据用例方法命名测试用例5.3.4 根据前置条件和后置状态命名测试用例5.3.5 类测试代码实例5.3.6 测试结果5.3.7 其他测试方式5.4 测试构建的延伸5.4.1 接口类的测试5.4.2 抽象类的测试5.4.3 抽象类测试改进5.4.4 内类的测试5.4.5 重载和覆盖测试5.4.6 异常测试5.5 本章总结第6章 深入浅出Junit6.1 单元级测试概述6.1.1 Junit单元级测试的好处6.1.2 System.out.println是不够的6.1.3 成本的回收和再循环6.2 哪里可以找到Junit6.3 Junit的安装和配置6.4 自动化测试框架6.5 Test接口6.6 Assert静态类6.7 TestCase抽象类6.8 TestResult结果类6.9 TestSuite测试包类6.10 TestListener监听者6.11 Protectable保护接口6.12 TestFailure失败类6.13 本章总结第7章 Junit GUI和扩展7.1 概述7.2 Junit的运行包7.2.1 BaseTestRunner基运行类7.3 Junit.textui字符执行包7.3.1 TestRunner字符执行类7.4 Junit.Awtui图形执行包7.4.1 TestRunner图形执行类7.5 Junit.Swingui图形执行包7.5.1 TestRunner图形执行类7.6 Junit扩展包7.6.1 测试结果报告7.6.2 多线程测试处理7.6.3 增强异常测试7.6.4 重复测试执行7.6.5 额外的测试修饰7.6.6 测试总环境初始化7.7 Junit快速应用7.7.1 如何运用Junit写一个简单测试程序7.7.2 如何使用Junit的断言方法7.7.3 如何使用Junit的suite方法7.7.4 如何使用Junit的main方法7.7.5 如何执行Junit测试7.7.6 如何使用Junit初始化全局变量和实例7.7.7 SimpleTestCase执行后效果7.8 本章总结第8章 Junit和类测试8.1 Junit测试设计原则8.1.1 不要测试简单的事8.1.2 测试任何可能出现错误的地方8.1.3 测试边界条件8.1.4 作为详细设计文档和类文档的衍生8.1.5 自动化8.1.6 必须100%通过8.1.7 测试重用8.1.8 测试用例应该独立8.1.9 测试依赖于接口8.1.10 固定类方法的调用顺序8.1.11 测试依赖于接口8.2 类测试过程8.2.1 构建单元级测试8.2.2 CRC Cards8.2.3 测试驱动复用8.2.4 编码重构8.2.5 持续集成8.3 Product CRC Cards8.3.1 Iproduct CRC Cards8.3.2 Product CRC Cards8.3.3 StoreHouse CRC Cards8.4 Product代码8.4.1 IProduct8.4.2 Product类8.4.3 StoreHouse类8.5 Product测试8.5.1 测试计划8.5.2 测试数据8.5.3 测试驱动代码8.5.4 辅助说明8.6 本章总结第9章 Junit测试的延伸9.1 录制功能点测试9.2 抽象类测试(一)9.3 抽象类测试(二)9.4 私有方法测试9.5 映射对象Mock9.5.1 单元级测试和Mock9.5.2 为什么使用Mock9.5.3 高级测试行为9.5.4 发现接口9.5.5 Mock Objects的局限性9.6 重构和MockObject9.6.1 Bank类重构前9.6.2 Bank类重构后9.6.3 Mock Objects要点9.6.4 Mock Objects简单范例9.7 异常处理9.8 随机测试9.9 间隔测试9.10 本章总结第10章 软件BUG和管理10.1 软件BUG和癌细胞10.2 BUG的影响10.3 BUG的产生10.4 BUG如何穿透测试10.5 BUG的种类10.5.1 需求阶段的BUG10.5.2 分析.设计阶段的BUG10.5.3 实现阶段的BUG10.5.4 配置阶段的BUG10.5.5 短视将来的BUG10.5.6 静态文档的BUG10.6 Bug的具体分类10.6.1 内存泄漏10.6.2 程序运行时错误10.6.3 程序语法的错误10.6.4 未使用(死)代码的错误(一类)10.6.5 编码标准的错误(二类)10.6.6 命名惯例的错误(三类)10.6.7 条件错误(一类)10.6.8 循环错误(二类)10.6.9 选择错误(三类)10.6.10 多线程错误10.6.11 读取和存储错误10.6.12 集成错误10.6.13 数据类型转换错误10.6.14 版本错误10.6.15 重用错误10.6.16 Boolean错误10.7 BUG的生命周期10.7.1 BUG的流转状态关键字10.7.2 BUG的严重等级10.7.3 BUG的解决关键字10.7.4 BUG处理的优先等级10.8 BUG管理流程10.8.1 如何提交系统中的BUG10.8.2 使用自动BUG报告工具10.8.3 通过电子邮件发送BUG报告10.8.4 BUG详细内容信息10.8.5 轻微的BUG报告10.8.6 不知道归属的BUG10.8.7 关闭BUG报告10.8.8 接续的讨论信息10.8.9 列出的具有特殊意义的BUG10.8.10 重开.重分配的BUG10.8.11 BUG的标题(特殊)10.9 如何有效地报告BUG10.9.1 千万别提“程序不好用”10.9.2 不要盲目地报告BUG10.9.3 让更多的事实说话10.9.4 别把实现人员当傻瓜10.9.5 冷静和细心10.9.6 保持现场环境10.9.7 真实的和建议的10.9.8 提交问题的根源10.9.9 最后的建议10.10 本章总结附录A 失败的项目附录B 小集市里的谈话B.1 序言B.2 从测试文章看测试与开发B.3 有关测试人生B.4 关于测试到什么程度, 才能收手的问题B.5 国外测试与国内测试的区别B.6 如何做测试评估B.7 作QA的就比作coding的差吗B.8 大家一起来讨论测试的文档B.9 数据库的测试B.10 BUG如何分类B.11 在什么时候项目提交给测试人员, 什么是最合理的B.12 测试要有编程背景吗B.13 编写测试用例B.14 验收测试怎么做B.15 如何创建测试模型B.16 请问作为一个测试部的负责人, 应该如何组织和开展测试工作呢B.17 集成测试需要专门的管理软件吗B.18 来讨论一下测试的生命周期B.19 经典BUG收集B.20 大家觉得怎么做才能改变测试人员的地位B.21 各种测试工具的主要功能和用途B.22 测试负责人应该做些什么工作附录C Web性能测试工具“StressTest”附录D 推荐的相关书籍D.1 序言D.2 测试类书籍D.3 需求分析类书籍D.4 设计类书籍D.5 代码实现和优化类书籍D.6 软件工程类书籍
本站提供《软件测试与Junit实践》适合于实现人员、设计人员、测试人员以及测试管理者参考使用,版权归该下载资源的合法拥有者所有。