第1章 用.NET自动测试软件 1
1.1 测试人员需要了解的.NET编码知识 1
1.2 用.NET语言进行测试的原因 2
1.3 为测试项目选择.NET语言 3
1.4 软件自动测试的概念 3
1.5 技术测试和非技术测试 4
1.6 进行自动测试的场合 4
1.6.1 项目和人员问题 5
1.6.2 产品问题 5
1.6.3 测试的其他管理问题 6
1.7 为自动测试建立一个团队 7
1.7.1 测试脚本是软件 7
1.7.2 测试软件的目标 8
1.8 用于测试的编程语言的局限性 9
1.9 小结 9
第2章 理解.NET测试选项 11
2.1 目标 11
2.2 用于测试的.NET命名空间 12
2.3 创建一个用于测试的简单应用程序 15
2.3.1 编写Windows窗体测试软件应用程序 16
2.3.2 用控制台应用程序创建测试软件 21
2.3.3 用Web应用程序创建测试软件 28
2.4 小结 34
第3章 测试数据的存储 37
3.1 目标 37
3.2 测试结果的记录和项目规划 38
3.2.1 在测试项目时使用文本文件 38
3.2.2 在测试项目时使用Windows注册表 57
3.2.3 在测试项目时使用数据库文件 70
3.3 小结 82
第4章 .NET错误处理 85
4.1 目标 85
4.2 语法错误、运行时错误和逻辑错误 85
4.2.1 处理语法错误 86
4.2.2 处理运行时错误 88
4.2.3 处理逻辑错误 89
4.3 使用断点 89
4.3.1 Step Into 90
4.3.2 Step Over 91
4.3.3 Step Out 91
4.4 调试窗口 94
4.4.1 Locals窗口 94
4.4.2 Watch窗口 95
4.4.3 Autos窗口 96
4.4.4 Immediate窗口和Command窗口 96
4.4.5 Call Stack窗口 97
4.4.6 Data Tips窗口 97
4.5 即时调试器 100
4.6 使用Try-Catch语句 104
4.6.1 Try 104
4.6.2 Catch 105
4.6.3 Finally 105
4.6.4 作用域问题 106
4.7 异常类 107
4.7.1 创建异常对象 108
4.7.2 使用异常对象 109
4.7.3 创建自己的异常类 110
4.7.4 抛出异常 111
4.8 使用调试和跟踪功能 115
4.8.1 Debug类 116
4.8.2 Trace类 117
4.8.3 Trace和Debug方法 118
4.8.4 跟踪监听器 121
4.8.5 部署应用程序后打开跟踪功能 127
4.9 小结 129
第5章 创建测试框架 131
5.1 目标 131
5.2 用例程创建测试工具 132
5.2.1 过程的规划 133
5.2.2 从一个程序中启动另一个程序 134
5.2.3 使用函数过程 139
5.2.4 过程的可访问性 140
5.3 用静态类建立测试框架 141
5.3.1 VB.NET的共享类 143
5.3.2 C#的静态类 144
5.3.3 在项目中添加已有的类 146
5.4 Windows窗体类 147
5.4.1 在项目中添加其他窗体 148
5.4.2 显示窗体 149
5.5 给测试程序添加计时功能 154
5.5.1 基本的测试计时功能 154
5.5.2 用Shell()方法进行同步计时 157
5.5.3 使用Timer控件 160
5.6 用SendKeys()进行简单的GUI测试 162
5.7 小结 171
第6章 创建测试软件组件 173
6.1 目标 173
6.2 定义属性和方法 174
6.3 类和对象 175
6.4 规划错误报告应用程序 175
6.4.1 创建和使用过程 180
6.4.2 为方法添加错误处理 185
6.4.3 创建可重用的类 189
6.4.4 创建类成员 192
6.4.5 创建类 196
6.5 将不同的类分解到不同的文件中 206
6.6 分离UI和处理组件 213
6.6.1 私有和公共程序集 216
6.6.2 扩展和修改组件 219
6.7 小结 231
第7章 用基于控制台的测试软件进行自动测试 233
7.1 目标 233
7.2 使用控制台应用程序 233
7.2.1 使用参数 234
7.2.2 创建简单的例子 236
7.3 创建测试台的安装程序 249
7.3.1 从一个程序中运行另一个程序 250
7.3.2 检查软件需求 251
7.3.3 从网络共享中安装应用程序文件 252
7.3.4 创建网络共享 253
7.3.5 从共享中复制文件 257
7.3.6 把测试软件的报表保存到集中的网络共享上 259
7.3.7 完成应用程序 260
7.3.8 报告本地计算机的状态 262
7.3.9 使用批处理文件 278
7.3.10 使用Windows调度程序 279
7.4 小结 280
第8章 数据库测试 283
8.1 目标 284
8.2 用Database Explorer(或Server Explorer)测试数据库应用程序 284
8.3 用Database Explorer窗口进行字段级的完整性测试 285
8.4 用Query Designer执行数据库查询 289
8.5 数据库引用和数据库连接 294
8.6 用ADO.NET自动测试数据库 295
8.6.1 ADO.NET基础知识 295
8.6.2 使用Connection和Command对象 297
8.6.3 使用DataReader对象 300
8.7 用ASP.NET数据源控件测试数据库 308
8.8 使用DataGrid 310
8.9 设置DataAdapter 311
8.9.1 填充DataSet 315
8.9.2 给测试软件添加栅格 319
8.10 小结 321
第9章 创建基于Web的测试软件 323
9.1 目标 323
9.2 Web技术概述 323
9.2.1 两层应用程序 327
9.2.2 三层应用程序 329
9.2.3 N层应用程序 332
9.3 创建基于Web的测试软件 334
9.3.1 理解默认的Web页面代码 335
9.3.2 后台编码选项和单文件选项 337
9.3.3 把数据插入数据库 341
9.3.4 查看数据库中的数据 345
9.3.5 添加验证代码 358
9.3.6 重用已有的组件 360
9.3.7 调试Web应用程序 367
9.3.8 Trace类 370
9.3.9 部署ASP.NET应用程序 374
9.3.10 使用Copy Web和Publish Web选项 377
9.4 小结 377
第10章 测试COM和Web服务 379
10.1 目标 379
10.2 Web服务和COM组件 379
10.3 Web服务 380
10.3.1 创建Web服务 381
10.3.2 测试Web服务 386
10.3.3 用Web服务访问数据库 390
10.3.4 用Web服务运行远程测试软件 391
10.4 理解和测试COM 394
10.4.1 引用COM库 394
10.4.2 访问和测试COM库 395
10.4.3 查找项目的COM库 402
10.5 小结 403
第11章 Visual Studio Team Test简介 405
11.1 目标 405
11.2 Team Test版本概述 406
11.3 可用的测试类型 410
11.3.1 单元测试 411
11.3.2 数据驱动的单元测试 419
11.3.3 创建手动测试 425
11.3.4 组织测试和管理测试的运行 426
11.3.5 创建有序测试 428
11.3.6 Web测试 429
11.3.7 负载测试 432
11.4 小结 436
附录A 设置计算机 439
A.1 硬件要求 439
A.2 软件要求 439
A.3 FrontPage扩展问题 441
A.4 不支持的操作系统 441
A.5 安装指令 441
A.6 卸载Visual Studio或Express试用版 442
A.7 选择Visual Studio 2005还是Express Editions 442
A.8 练习文件 443
A.9 技术支持 443
A.10 工作地址 444
附录B VB.NET和C#快速参考 445
B.1 开始测试示例 445
B.2 编程基础 447
B.3 注释 448
B.4 方法 448
B.5 把代码组织到类和命名空间中 449
B.6 Shared和static 449
B.7 Main()方法 451
B.8 命名空间 452
B.9 指令 454
B.10 存储数据 454
B.11 声明常量 455
B.12 声明变量 455
B.13 选择类型 456
B.14 引用类型和值类型 458
B.15 数据转换 459
B.15.1 Convert类 459
B.15.2 内置的转换方法 460
B.15.3 C#强制转换运算符 461
B.15.4 VB.NET的CType() 461
B.15.5 隐式转换 462
B.16 使用数据组合 462
B.16.1 枚举 462
B.16.2 结构 464
B.16.3 类 465
B.16.4 数组 468
B.16.5 集合 479
B.17 对象的更多内容 481
B.18 处理字符串 483
B.18.1 字符串与数组类似 483
B.18.2 字符串的数据一旦设置好,就不能修改字符串 484
B.18.3 将两个字符串加在一起 485
B.18.4 字符串可以使用特殊字符(转义序列) 485
B.18.5 添加@符号,就可以在C#中使用字符串字面量 486
B.19 编程语句 486
B.19.1 条件语句 486
B.19.2 Select-Case语句(仅用于VB.NET) 488
B.20 迭代和跳转语句 492
B.20.1 For-Each循环 492
B.20.2 For循环(仅用于C#) 493
B.20.3 For-Next循环(只用于VB.NET) 494
B.20.4 While循环 495
B.20.5 Do-While循环 495
B.20.6 Do-Until循环(只用于VB.NET) 496
B.20.7 跳转语句GoTo 496
B.20.8 跳转语句Continue 497
B.20.9 跳转语句Break或Exit 498
B.20.10 跳转语句Return 498
B.20.11 循环中变量的作用域 499
B.21 操作 500
B.22 运算符 500
B.22.1 句点运算符 501
B.22.2 圆括号运算符 501
B.22.3 方括号运算符 501
B.22.4 前向和后向递增运算符(仅用于C#) 502
B.22.5 非运算符(只用于C#) 502
B.22.6 乘法运算符 502
B.22.7 加法运算符 503
B.22.8 连接运算符 504
B.22.9 关系运算符 504
B.22.10 等号运算符的更多内容 505
B.22.11 逻辑运算符 507
B.22.12 替代参数运算符 509
B.22.13 三元运算符 511
B.23 方法的更多内容 511
B.23.1 方法可以返回值 511
B.23.2 一些方法没有返回值 512
B.23.3 方法可以包含参数 513
B.23.4 值类型和引用类型影响参数 513
B.23.5 可以修改值类型参数的操作方式 515
B.23.6 字符串参数类似于值类型 516
B.23.7 VB.NET有可选参数 517
B.23.8 使用方法的多个版本 517
B.24 使用属性 518
B.25 小结 519
附录C 资源和参考资料 521
C.1 测试图书 521
C.2 .NET图书(VB.NET和C#) 521
C.3 期刊杂志 522
C.4 推荐的测试网站 522
C.5 其他推荐的网站 523
C.6 推荐的数据库设计和SQL资源 523
C.7 其他相关主题的资源 524