
| Paul C.Jorgensen博士在其职业生涯的前20年中,主要从事电话交换系统的开发、支持和测试工作。1986年以来,他一直在大学为研究生讲授软件工程课程,先是在亚利桑那州立大学,然后在大峡谷州立大学。他的电子邮件地址是:jorgensp@gvsu.edu。 .. << 查看详细 |
| 译者序 第1版前言 前言 第一部分 数学背景 第1章 测试概述2 1.1 基本定义2 1.2 测试用例3 1.3 通过维恩图理解测试4 1.4 标识测试用例6 1.4.1 功能性测试6 1.4.2 结构性测试7 1.4.3 功能性测试与结构性测试的比较8 1.5 错误与缺陷分类9 1.6 测试级别11 1.7 参考文献12 1.8 练习12 第2章 举例13 2.1 泛化的伪代码13 2.2 三角形问题15 2.2.1 问题陈述15 .2.2.2 讨论15 2.2.3 传统实现15 2.2.4 结构化实现18 2.3 nextdate函数20 2.3.1 问题陈述20 2.3.2 讨论20 2.3.3 实现20 2.4 佣金问题23 2.4.1 问题陈述23 2.4.2 讨论23 2.4.3 实现24 2.5 satm系统24 2.5.1 问题陈述25 2.5.2 讨论27 2.6 货币转换器27 2.7 土星牌挡风玻璃雨刷28 2.8 参考文献28 2.9 练习28 第3章 测试人员的离散数学30 3.1 集合论30 3.1.1 集合成员关系30 3.1.2 集合定义31 3.1.3 空集31 3.1.4 维恩图32 3.1.5 集合操作32 3.1.6 集合关系34 3.1.7 子集划分34 3.1.8 集合恒等式35 3.2 函数36 3.2.1 定义域与值域36 3.2.2 函数类型37 3.2.3 函数合成38 3.3 关系39 3.3.1 集合之间的关系39 3.3.2 单个集合上的关系40 3.4 命题逻辑41 3.4.1 逻辑操作符42 3.4.2 逻辑表达式42 3.4.3 逻辑等价43 3.5 概率论44 3.6 参考文献45 3.7 练习45 第4章 测试人员的图论47 4.1 图47 4.1.1 节点的度48 4.1.2 关联矩阵48 4.1.3 相邻矩阵49 4.1.4 路径49 4.1.5 连接性50 4.1.6 压缩图51 4.1.7 圈数51 4.2 有向图52 4.2.1 内度与外度53 4.2.2 节点的类型53 4.2.3 有向图的相邻矩阵54 4.2.4 路径与半路径54 4.2.5 可到达性矩阵55 4.2.6 n-连接性55 4.2.7 强组件56 4.3 用于测试的图57 4.3.1 程序图57 4.3.2 有限状态机58 4.3.3 petri网60 4.3.4 事件驱动的petri网62 4.3.5 状态图65 4.4 参考文献67 4.5 练习67 第二部分 功能性测试 第5章 边界值测试70 5.1 边界值分析70 5.1.1 归纳边界值分析71 5.1.2 边界值分析的局限性72 5.2 健壮性测试73 5.3 最坏情况测试73 5.4 特殊值测试74 5.5 举例75 5.5.1 三角形问题的测试用例75 5.5.2 nextdate函数的测试用例79 5.5.3 佣金问题的测试用例82 5.6 随机测试84 5.7 边界值测试的指导方针85 5.8 练习86 第6章 等价类测试87 6.1 等价类87 6.1.1 弱一般等价类测试88 6.1.2 强一般等价类测试88 6.1.3 弱健壮等价类测试89 6.1.4 强健壮等价类测试90 6.2 三角形问题的等价类测试用例90 6.3 nextdate函数的等价类测试用例92 6.4 佣金问题的等价类测试用例95 6.4.1 输出值域等价类测试用例96 6.4.2 输出值域等价类测试用例97 6.5 指导方针和观察97 6.6 参考文献98 6.7 练习98 第7章 基于决策表的测试100 7.1 决策表100 7.2 三角形问题的测试用例104 7.3 nextdate函数测试用例105 7.3.1 第一次尝试105 7.3.2 第二次尝试106 7.3.3 第三次尝试108 7.4 佣金问题的测试用例110 7.5 指导方针与观察110 7.6 参考文献111 7.7 练习111 第8章 功能性测试回顾112 8.1 测试工作量112 8.2 测试效率115 8.3 测试的有效性115 8.4 指导方针116 8.5 案例研究117 第三部分 结构性测试 第9章 路径测试124 9.1 dd-路径126 9.2 测试覆盖指标129 9.2.1 基于指标的测试129 9.2.2 测试覆盖分析器131 9.3 基路径测试131 9.3.1 mccabe的基路径方法132 9.3.2 关于mccabe基路径方法的观察134 9.3.3 基本复杂度136 9.4 指导方针与观察138 9.5 参考文献140 9.6 练习141 第10章 数据流测试143 10.1 定义/使用测试143 10.1.1 举例144 10.1.2 stocks的定义-使用路径148 10.1.3 locks的定义-使用路径148 10.1.4 totallocks的定义-使用路径149 10.1.5 sales的定义-使用路径149 10.1.6 commission的定义-使用路径150 10.1.7 定义-使用路径测试覆盖指标151 10.2 基于程序片的测试152 10.2.1 举例154 10.2.2 风格与技术157 10.3 指导方针与观察158 10.4 参考文献159 10.5 练习159 第11章 结构性测试回顾160 11.1 漏洞与冗余160 11.2 用于方法评估的指标162 11.3 重温案例研究164 11.3.1 基于路径的测试167 11.3.2 数据流测试167 11.3.3 片测试167 11.4 参考文献167 11.5 练习168 第四部分 集成与系统测试 第12章 测试层次170 12.1 测试层次的传统观点170 12.2 其他生命周期模型171 12.2.1 瀑布模型的新模型172 12.2.2 基于规格说明的生命周期模型173 12.3 astm系统175 12.4 将集成测试与系统测试分开184 12.4.1 结构认识185 12.4.2 行为认识186 12.5 参考文献186 第13章 集成测试187 13.1 深入研究satm系统187 13.2 基于分解的集成191 13.2.1 自顶向下集成191 13.2.2 自底向上集成192 13.2.3 三明治集成193 13.2.4 优缺点194 13.3 基于调用图的集成194 13.3.1 成对集成194 13.3.2 相邻集成194 13.3.3 优缺点196 13.4 基于路径的集成197 13.4.1 新概念与扩展概念197 13.4.2 satm系统中的mm-路径200 13.4.3 mm-路径复杂度203 13.4.4 优缺点204 13.5 案例研究205 13.5.1 基于分解的集成209 13.5.2 基于调用图的集成209 13.5.3 基于mm-路径的集成209 13.6 参考文献210 13.7 练习210 第14章 系统测试211 14.1 线索211 14.1.1 线索的可能性212 14.1.2 线索定义213 14.2 需求规格说明的基本概念214 14.2.1 数据215 14.2.2 行动215 14.2.3 设备215 14.2.4 事件216 14.2.5 线索216 14.2.6 基本概念之间的关系216 14.2.7 采用基本概念建模217 14.3 寻找线索219 14.4 线索测试的结构策略222 14.4.1 自底向上组织线索223 14.4.2 节点与边覆盖指标224 14.5 线索测试的功能策略225 14.5.1 基于事件的线索测试225 14.5.2 基于端口的线索测试227 14.5.3 基于数据的线索测试227 14.6 satm测试线索229 14.7 系统测试指导方针233 14.7.1 伪结构系统测试233 14.7.2 运行剖面233 14.7.3 累进测试与回归测试235 14.8 参考文献236 14.9 练习236 第15章 交互测试237 15.1 交互的语境237 15.2 交互的分类239 15.2.1 单处理器中的静态交互240 15.2.2 多处理器中的静态交互241 15.2.3 单处理器中的动态交互242 15.2.4 多处理器中的动态交互247 15.3 交互、合成与确定性254 15.4 客户-服务器测试256 15.5 参考文献257 15.6 练习257 第五部分 面向对象的测试 第16章 面向对象的测试问题260 16.1 面向对象测试的单元260 16.2 合成与封装的涵义261 16.3 继承的涵义263 16.4 多态性的涵义264 16.5 面向对象测试的层次264 16.6 gui测试264 16.7 面向对象软件的数据流测试265 16.8 第五部分采用的例子265 16.8.1 面向对象的日历265 16.8.2 货币转换应用程序266 16.9 参考文献270 16.10 练习270 第17章 类测试271 17.1 以方法为单元271 17.1.1 o-ocalendar的伪代码272 17.1.2 date.increment的单元测试276 17.2 以类为单元277 17.2.1 windshieldwiper类的伪代码277 17.2.2 windshieldwiper类的单元测试278 第18章 面向对象的集成测试282 18.1 集成测试的uml支持282 18.2 面向对象软件的mm-路径284 18.3 面向对象数据流集成测试框架290 18.3.1 事件驱动和消息驱动的petri网291 18.3.2 由继承导出的数据流292 18.3.3 由消息导出的数据流292 18.3.4 分片294 18.4 练习294 18.5 参考文献296 第19章 gui测试297 19.1 货币转换程序297 19.2 货币转换程序的单元测试301 19.3 货币转换程序的集成测试302 19.4 货币转换程序的系统测试303 19.5 练习307 第20章 面向对象的系统测试308 20.1 货币转换器的uml描述308 20.1.1 问题陈述308 20.1.2 系统功能308 20.1.3 表示层309 20.1.4 高层用例309 20.1.5 基本用例310 20.1.6 详细gui定义311 20.1.7 扩展基本用例312 20.1.8 真实用例315 20.2 基于uml的系统测试315 20.3 基于“状态图”的系统测试318 20.4 参考文献318 |
商品评论(0条)