第1章 单元测试与互联网 1
1.1单元测试与互联网的历史、现状 1
1.1.1单元测试简史 2
1.1.2互联网发展简介 6
1.2互联网测试与传统软件测试的区别 10
1.2.1软件开发和测试的三次进化 10
1.2.2互联网应用软件测试的特点 15
1.3互联网特色的单元测试 19
1.3.1网站为什么要做单元测试 19
1.3.2网站应用架构与单元测试 21
1.4单元测试的发展趋势 26
1.4.1单元性能测试 26
1.4.2测试驱动开发(TDD) 30
1.4.3统一测试过程 32
1.5小结 33
第2章 单元测试简介 35
2.1单元测试的范围 35
2.2单元测试用例设计技术 36
2.2.1逻辑覆盖 37
2.2.2等价类划分 39
2.2.3边界条件 40
2.3单元测试用例设计步骤 41
2.4单元测试执行策略 42
2.5接口(API)测试 44
第3章 主流单元测试框架 46
3.1JUnit快速上手 47
3.1.1下载和安装 47
3.1.2开始编写测试代码 47
3.1.3运行JUnit用例 49
3.1.4JUnit断言 50
3.1.5初始化和清理测试环境 51
3.1.6JUnit异常测试 54
3.1.7JUnitAnnotation 55
3.2管理JUnit用例 56
3.2.1使用TestSuite 56
3.2.2组织测试代码 58
3.3JUnit与Ant 60
3.4JUnit框架探索 62
3.4.1JUnit核心框架 63
3.4.2JUnit设计模式 67
3.5JUnit局限性 72
3.6网站主流开发语言与单元测试框架 73
3.6.1Java与TestNG 73
3.6.2.NET与NUnit 78
3.6.3Python与PyUnit 80
3.6.4Ruby与Test::Unit 82
4.6.5PHP与PhpUnit 83
3.6.6C++与CppUnit 85
第4章 网站接口测试 89
4.1应用架构下API测试 89
4.1.1传统企业应用架构的API测试 92
4.1.2面向服务应用架构的API测试 98
4.2HTTP接口测试 102
4.2.1HTTP协议的应用以及测试关注点 102
4.2.2进行HTTP测试 108
4.3Web Service接口测试 115
4.3.2Web Service原理 115
4.3.3Web Service测试 124
第5章 网站单元级性能分析 129
5.1性能测试的几个阶段 129
5.1.1软件生命周期与性能测试 129
5.1.2不同阶段的性能测试 131
5.2单元性能测试基本概念 133
5.2.1为什么要开展单元性能测试 134
5.2.2何时开展单元性能测试 135
5.3单元性能测试工具 136
5.3.1JUnitPerf 136
5.3.2Eclipse TPTP 143
5.3.3p-unit 157
5.3.4JProfiler 160
5.4方法的性能测试 165
5.4.1分析方法的执行时间 165
5.4.2方法被调用的次数 175
5.5多线程并发性测试 183
5.5.1线程死锁 183
5.5.2线程不安全 192
5.6内存分析 202
5.6.1内存泄漏 202
5.6.2短期对象循环 210
第6章 实战一:Lucene搜索引擎单元测试 218
6.1初识Lucene 218
6.1.1Lucene应用架构分析 220
6.1.2Lucene单元测试方案 222
6.2JSP表现层测试 222
6.2.1index.jsp 223
6.2.2result.jsp 225
6.3搜索功能测试 248
6.3.1测试Parse方法 249
6.3.2测试Search方法 258
6.4词法分析测试 259
6.4.1自顶向下的测试方法 261
6.4.2自底向上的测试方法 263
6.5索引功能测试 265
6.5.1测试文档解析 267
6.5.2测试IndexWriter 269
6.6构建测试代码 274
6.7性能测试 275
6.7.1Search方法的性能测试 276
6.7.2全部单元的性能测试 278
第7章 实战二:WebService接口测试 281
7.1项目概述 281
7.2用DbUnit准备测试数据 283
7.2.1用DbUnit插入测试数据 283
7.2.2用DbUnit进行断言 287
7.3测试SOAP消息 289
7.4测试Java客户端调用 290
7.4.1无WS-Security的客户端调用 291
7.4.2有WS-Securiry的客户端调用 292
7.4.3编写测试用例 296
7.5测试.NET客户端调用 300
7.5.1接口代理类的生成 300
7.5.2有WS-Securiry的客户端调用 304
7.6用JUnitReport定制测试报告 313
7.6.1JUnitReport与ANT 313
7.6.2定制JUnit结果格式 314
7.6.3定制JUnitReport 316
7.7部署测试 317
7.8持续集成 320
7.8.1持续集成概念 320
7.8.2持续集成工具CruiseControl 321
7.9Web Service接口测试进阶分析 323
7.9.1复杂对象问题 323
7.9.2中文问题 329
7.10Web Service接口单元级性能分析 331
第8章 单元测试管理 336
8.1团队组建 336
8.2生命周期管理 339
8.3测试环境部署 343
8.4版本控制 346