第1章 软件测试概述 1
1.1 软件故障与软件测试 1
目录 1
1.2 软件测试与软件开发过程 3
1.2.1 顺序生命周期模型(SequentialLifecycleModels) 3
1.2.2 渐进式(ProgressiveDevelopment)开发生命周期模型 5
1.2.3 迭代生命周期模型(IterativeLifecycleModel) 6
1.3 软件测试方法与测试内容 6
1.3.1 黑盒测试 7
1.3.2 白盒测试 7
1.3.3 ALAC(Act-Like-A-Customer)测试 7
1.3.6 确认测试 8
1.3.7 α、β测式 8
1.3.4 单元测试 8
1.3.5 综合测试 8
1.3.8 系统测试 9
1.3.9 面向对象的软件测试 10
1.3.10 协议软件测试 10
1.4 软件测试原则与特点 11
1.4.1 软件测试的原则 12
1.4.2 软件测试的特点 12
思考题 13
2.1.1 逻辑覆盖法 15
2.1 白箱测试法 15
第2章 软件测试基础 15
2.1.2 基本路径测试法 19
2.2 黑箱测试法 26
2.2.1 等价分类法 27
2.2.2 边界值分析 29
2.3 灰箱测试法 30
2.3.1 灰箱法 30
2.3.2 灰箱法举例 31
2.4 小结 31
思考题 32
3.1.1 协议一致性测试系统结构 34
3.1 协议一致性测试基础框架 34
第3章 树表描述语言(TTCN) 34
3.1.2 X协议一致性测试 35
3.2 测试系统行为描述 36
3.2.1 行为树 37
3.2.2 TTCN行为描述 37
3.3 TTCN数据类型和取值 39
3.3.1 预定义数据类型 39
3.3.2 取值 40
3.3.3 简单用户定义类型 40
3.3.4 构造类型 40
3.4 PCO和CP 40
3.4.5 使用PCO和CP 41
3.4.4 声明PCO类型 41
3.4.6 PCO和CP快照 41
3.4.2 发送一个ASP 41
3.4.1 通信模型 41
3.4.3 接受(receipt)一个ASP 41
3.4.7 声明CP 42
3.5 发送语句 42
3.5.1 发送ASP 42
3.5.2 执行发送语句 42
3.5.3 发送一个PDU 43
3.5.4 发送协同信息 43
3.6 接收语句 43
3.6.1 接收ASP 43
3.6.2 执行接收语句 43
3.7 定义ASP、PDU和CM类型 44
3.7.1 TTCN复合类型 44
3.6.3 接收PDU 44
3.6.5 OTHERWISE语句 44
3.6.4 接收协同信息 44
3.7.2 类型链Chaining 45
3.7.3 ASN.1复合类型 45
3.7.4 局部类型定义 45
3.7.5 通过引用定义类型 46
3.7.6 定义ASP 46
3.7.7 定义PDU 47
3.7.9 定义CM类型 48
3.7.8 构造ASP和PDU的子集 48
3.7.10 在行为树中使用ASP和PDU 49
3.8 TTCN表达式 50
3.8.1 TTCN运算符 50
3.8.2 TTCN函数 51
3.9 说明ASP、PDU和CM值 52
3.9.1 Static和Dynamic链 52
3.9.2 复合ASN.1值 53
3.9.3 ASP约束 53
3.9.4 PDU的约束 53
3.9.5 构造类型的约束 54
3.10.1 参数化的约束 55
3.9.6 CM约束 55
3.10 约束引用 55
3.10.2 发送和接收约束 56
3.10.3 约束与OTHERWISE语句 58
3.11 接收约束值匹配 59
3.11.1 指定值(specificvalue) 59
3.11.2 匹配机制(MatchingMechanisms) 61
3.12 编码 63
3.13 引用复合类型元素 64
3.13.1 在SEND和RECEIVE语句的上下文中引用 64
3.13.2 引用ASN.1元素 65
3.13.3 捕获接收到的ASP和PDU 66
3.14 裁决(Verdicts) 67
3.14.1 结果变量(ResultVariable) 67
3.14.2 初步结果 67
3.14.3 最终结果(FinalVerdicts) 68
3.15 GOTO语句 68
3.16 定时器语句 69
3.17 常量与变量 71
3.18 动态行为描述 73
3.19 使用别名 75
3.20 测试用例模块化 76
3.20.1 测试步 76
3.20.2 缺省行为 78
3.21 TTCN中的参数列表 80
3.22 测试用例选择 81
3.23 TTCN测试套结构 81
3.24 一个完整的例子 83
思考题 98
第4章 时序说明语言LOTOS/E-LOTOS 99
4.1 CCS简介 99
4.1.1 基本算子和运算规则 99
4.1.2 基本运算规则 100
4.1.3 协议性质 100
4.1.4 应答式协议的描述与验证 101
4.1.5 AB协议的描述与验证 102
4.2 LOTOS简介 103
4.3 E-LOTOS简介 106
4.3.1 一个例子:二位寄存器 107
4.3.2 变量 108
4.3.3 E-LOTOS中的时间 108
4.4 E-LOTOS语言基础 109
4.4.1 活动 110
4.4.2 顺序组合操作 111
4.4.3 选择操作 112
4.4.4 内部活动 114
4.4.6 内部活动和时间阻塞 115
4.4.5 成功结束 115
4.4.7 并行组合操作 116
4.4.8 交替操作 117
4.4.9 同步操作 118
4.4.10 一般并行操作 118
4.4.11 带值并行操作 120
4.4.12 禁止操作 120
4.4.13 挂起/恢复操作 121
4.4.14 隐藏操作符 121
4.4.15 异常处理 122
4.4.16 延迟命令 124
4.4.17 重命名(Rename)操作 126
4.4.19 强制特性 128
4.4.18 条件操作符 128
4.4.20 进程声明及实例化 131
4.5 基本数据类型语言 132
4.5.1 数据类型 132
4.5.2 类型表达式 135
4.5.3 子类型 136
4.5.4 表达式 137
4.5.5 函数声明和实例化 139
4.5.6 模式以及模式匹配 139
4.6 模块语言 141
4.6.1 接口 141
4.6.2 模块 143
4.6.3 通用模块 144
4.6.4 描述 145
4.7 应用实例 145
4.7.1 全局时钟 146
4.7.2 FIFO队列 146
4.7.3 随机信号量(RandomSemaphore) 147
4.7.4 FIFO信号 150
4.7.5 哲学家用餐 152
思考题 154
第5章 TTCN应用研究 155
5.1 TTCN-3在SIP和OSP测试中的应用 155
5.1.1 SIP和OSP简介 155
5.1.3 SIP测试 156
5.1.2 ETSI的测试方法 156
5.1.4 OSP测试 159
5.1.5 SIP和OSP的TTCN-3的测试平台 162
5.2 TTCN-3在IPv6一致性测试中的应用 165
5.2.1 Ipv6测试集合的形式化描述 166
5.2.2 测试方法 166
5.2.3 IPv6的测试实现过程 167
5.2.4 IPv6测试集中的一个测试例 168
思考题 170
第6章 LOTOS/E-LOTOS应用研究 171
6.1 安全协议测试 171
6.1.1 安全协议的LOTOS说明 171
6.1.2 验证过程 178
6.1.3 验证实例 181
6.2 基于LOTOS/E-LOTOS的病态路由检测方法 188
6.2.1 LOTOS/E-LOTOS的代数性质 189
6.2.2 病态路由检测方法 189
6.2.3 BGP4中的病态路由检测 190
思考题 193
附录1 TelelogicTTCN工具简介 194
附录2 TTthree简介 211
附录3 支持LOTOSNT的工具TRAIAN简介 212
附录4 CADP简介 213
参考文献 215