本书可谓关于软件测试的“精华”,书中内容以作者多年来讲授的软件工程和软件测试课程为基础,同时结合了丰富的行业实践经验。
访问剑桥大学出版社网站可下载所有示例的编程练习和Java源代码。
软件测试可以被视为一门艺术、一门工艺或一门科学,本书提出了一种循序渐进且实用的方法,在这些不同的视角之间架起了一座桥梁。
网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | 软件测试导论 |
分类 | 教育考试-考试-计算机类 |
作者 | [爱]拉尔夫·比瑞格(Ralf Bierig),[爱]斯蒂芬·布朗(Stephen Brown),[爱]埃德加·加尔文(Edgar Galván),[爱]乔·蒂莫尼(Joe Timoney) |
出版社 | 机械工业出版社 |
下载 | |
简介 | 编辑推荐 本书可谓关于软件测试的“精华”,书中内容以作者多年来讲授的软件工程和软件测试课程为基础,同时结合了丰富的行业实践经验。 访问剑桥大学出版社网站可下载所有示例的编程练习和Java源代码。 软件测试可以被视为一门艺术、一门工艺或一门科学,本书提出了一种循序渐进且实用的方法,在这些不同的视角之间架起了一座桥梁。 内容推荐 软件测试可以被视为一门艺术、一门工艺或一门科学,而本书中提出的一种循序渐进且实用的方法在这些不同的视角之间提供了一座桥梁。书中涵盖多种测试技术,首先介绍其优缺点,然后深入细节,帮助读者理解其基本原理。zui后,通过注入故障来展示每种技术的局限性,并提供了每种技术在发现故障方面的成功案例或失败案例。书中讲解的技术涉及黑盒测试、白盒测试、随机测试、单元测试、面向对象的软件测试和应用测试。本书还强调了应用技术的过程,包括分析、测试用例设计、测试实现和测试结果分析。 目录 目 录<br />Essentials of Software Testing<br />译者序<br />前言<br />致谢<br />第1章 软件测试简介 1<br />1.1 软件行业的现状 1<br />1.1.1 软件测试与软件质量 2<br />1.1.2 软件测试和风险管理 3<br />1.2 失误、故障和失效 3<br />1.2.1 失误 4<br />1.2.2 故障 4<br />1.2.3 失效 5<br />1.2.4 测试的必要性 6<br />1.3 规范的作用 7<br />1.4 手工测试举例 8<br />1.5 软件测试原理 8<br />1.6 穷尽测试 9<br />1.6.1 穷尽测试数据 9<br />1.6.2 穷尽测试的可行性 9<br />1.7 启发性测试 9<br />1.7.1 随机测试 10<br />1.7.2 黑盒测试和白盒测试 11<br />1.7.3 基于经验的测试 11<br />1.7.4 故障注入 12<br />1.8 何时停止测试 12<br />1.9 静态测试和动态测试 12<br />1.9.1 基于审查的技术 12<br />1.9.2 程序证明 13<br />1.10 在软件开发过程中进行测试 13<br />1.11 软件测试活动 14<br />1.11.1 分析 15<br />1.11.2 测试覆盖项 15<br />1.11.3 测试用例 16<br />1.11.4 验证测试用例 17<br />1.11.5 测试实现 17<br />1.12 测试的工作产品 17<br />1.13 故障模型 18<br />1.14 如何使用本书 18<br />1.14.1 本书结构 18<br />1.14.2 测试顺序 19<br />1.14.3 文档化测试分析 19<br />1.14.4 编程语言 19<br />1.14.5 详细程度 19<br />1.14.6 示例 19<br />1.14.7 软件测试工具 19<br />1.15 术语 20<br />第2章 等价类划分 21<br />2.1 使用等价类划分进行测试 21<br />2.2 示例 21<br />2.2.1 分析 22<br />2.2.2 测试覆盖项 25<br />2.2.3 测试用例 25<br />2.2.4 验证测试用例 27<br />2.3 测试实现和测试结果 28<br />2.3.1 手工测试的输出 28<br />2.3.2 自动化的测试实现 28<br />2.3.3 测试结果 31<br />2.4 等价类划分的细节 31<br />2.4.1 故障模型 31<br />2.4.2 描述 31<br />2.4.3 分析:识别等价类划分 31<br />2.4.4 测试覆盖项 33<br />2.4.5 测试用例 33<br />2.4.6 缺点 33<br />2.5 评估 34<br />2.5.1 局限性 34<br />2.5.2 强项和弱项 37<br />2.6 划重点 37<br />2.7 给有经验的测试员的建议 37<br />第3章 边界值分析 38<br />3.1 使用边界值进行测试 38<br />3.2 示例 38<br />3.2.1 分析 38<br />3.2.2 测试覆盖项 39<br />3.2.3 测试用例 39<br />3.2.4 验证测试用例 40<br />3.3 测试实现和测试结果 41<br />3.3.1 测试实现 41<br />3.3.2 测试结果 42<br />3.4 边界值分析的细节 42<br />3.4.1 故障模型 42<br />3.4.2 描述 42<br />3.4.3 分析:识别边界值 43<br />3.4.4 测试覆盖项 43<br />3.4.5 测试用例 43<br />3.4.6 缺点 44<br />3.5 评估 44<br />3.5.1 局限性 44<br />3.5.2 强项和弱项 46<br />3.6 划重点 46<br />3.7 给有经验的测试员的建议 46<br />第4章 判定表 47<br />4.1 使用判定表测试组合 47<br />4.2 示例 47<br />4.2.1 分析 47<br />4.2.2 测试覆盖项 52<br />4.2.3 测试用例 53<br />4.2.4 验证测试用例 54<br />4.3 测试实现和测试结果 55<br />4.3.1 测试实现 55<br />4.3.2 测试结果 56<br />4.4 判定表的细节 56<br />4.4.1 故障模型 56<br />4.4.2 描述 56<br />4.4.3 分析:开发判定表 56<br />4.4.4 测试覆盖项 64<br />4.4.5 测试用例 64<br />4.4.6 缺点 64<br />4.5 评估 64<br />4.5.1 局限性 64<br />4.5.2 强项和弱项 66<br />4.6 划重点 66<br />4.7 给有经验的测试员的建议 66<br />第5章 语句覆盖 67<br />5.1 白盒测试 67<br />5.2 语句覆盖测试 67<br />5.2.1 获取语句覆盖率 67<br />5.3 示例 67<br />5.3.1 分析 68<br />5.3.2 测试覆盖项 70<br />5.3.3 测试用例 70<br />5.3.4 验证测试用例 71<br />5.4 测试实现和测试结果 71<br />5.4.1 测试实现 71<br />5.4.2 测试结果 72<br />5.5 语句覆盖的细节 73<br />5.5.1 故障模型 73<br />5.5.2 描述 73<br />5.5.3 分析:识别未执行的语句 73<br />5.5.4 测试覆盖项 73<br />5.5.5 测试用例 73<br />5.6 评估 74<br />5.6.1 局限性 74<br />5.6.2 强项和弱项 75<br />5.7 划重点 76<br />5.8 给有经验的测试员的建议 76<br />第6章 分支覆盖 77<br />6.1 分支覆盖测试 77<br />6.1.1 获取分支覆盖率 77<br />6.2 示例 77<br />6.2.1 分析 78<br />6.2.2 测试覆盖项 80<br />6.2.3 测试用例 80<br />6.2.4 验证测试用例 80<br />6.3 测试实现和测试结果 81<br />6.3.1 测试实现 81<br />6.3.2 测试结果 81<br />6.4 分支覆盖的细节 83<br />6.4.1 故障模型 83<br />6.4.2 描述 83<br />6.4.3 目标 83<br />6.4.4 分析:识别未被执行的分支 84<br />6.4.5 测试覆盖项 84<br />6.4.6 测试用例 84<br />6.5 评估 84<br />6.5.1 局限性 84<br />6.5.2 强项和弱项 86<br />6.6 划重点 86<br />6.7 给有经验的测试员的建议 86<br />第7章 全路径覆盖 88<br />7.1 全路径覆盖测试 88<br />7.2 示例 88<br />7.2.1 分析 89<br />7.2.2 测试覆盖项 92<br />7.2.3 测试用例 92<br />7.2.4 验证测试用例 93<br />7.3 测试实现和测试结果 93<br />7.3.1 测试实现 93<br />7.3.2 测试结果 93<br />7.4 全路径覆盖的细节 95<br />7.4.1 故障模型 95<br />7.4.2 描述 95<br />7.4.3 分析:开发控制流图 95<br />7.4.4 分析:识别点对点路径 98<br />7.4.5 注入故障6之后的可能<br />路径 100<br />7.4.6 测试覆盖项 104<br />7.4.7 测试用例 104<br />7.5 评估 104<br />7.5.1 局限性 104<br />7.5.2 强项和弱项 106<br />7.6 划重点 106<br />7.7 给有经验的测试员的建议 107<br />第8章 黑盒测试与白盒测试 108<br />8.1 黑盒测试与白盒测试的比较 108<br />8.1.1 黑盒测试 109<br />8.1.2 白盒测试 110<br />8.1.3 缺失型和多余型错误 111<br />8.1.4 用法 111<br />8.2 黑盒测试:还需要考虑的一<br />些问题 112<br />8.2.1 字符串和数组 113<br />8.2.2 不连续的输入等价类划分 113<br />8.2.3 重叠的输出等价类划分 114<br />8.2.4 频内错误报告 115<br />8.2.5 处理相对数值 115<br />8.2.6 经典的三角形问题 117<br />8.2.7 基于状态的测试(输入序列<br />测试) 117<br />8.2.8 浮点数 119<br />8.2.9 数值处理 119<br />8.3 白盒测试:其他技术介绍 120<br />8.3.1 数据流覆盖(定义–使<br />用对) 120<br />8.3.2 条件覆盖 121<br />8.3.3 判定覆盖 122<br />8.3.4 判定条件覆盖 122<br />8.3.5 条件组合覆盖 122<br />8.3.6 修订的条件/判定覆盖 123<br />8.3.7 测试分级 124<br />8.4 基于修复的测试 124<br />8.4.1 特定的修复性测试 124<br />8.4.2 通用的修复性测试 124<br />8.4.3 抽象的修复性测试 124<br />8.4.4 示例 125<br />8.4.5 使用基于修复的测试 125<br />第9章 测试面向对象的软件 126<br />9.1?在类的上下文中测试 126<br />9.2?示例 126<br />9.2.1?分析 128<br />9.2.2?确定被测方法 128<br />9.2.3?选择一种测试技术 128<br />9.2.4?测试覆盖项 130<br />9.2.5?测试用例 131<br />9.2.6?验证测试用例 132<br />9.3?测试实现和测试结果 133<br />9.3.1?测试实现 133<br />9.3.2?测试结果 134<br />9.4?面向对象测试的细节 134<br />9.4.1?面向对象的编程 134<br />9.4.2?面向对象的软件测试 135<br />9.4.3?故障模型 135<br />9.4.4?在类的上下文中执行测试 136<br />9.4.5?分析面向对象的测试 137<br />9.4.6?测试覆盖项 137<br />9.4.7?测试用例 137<br />9.4.8?测试实现 138<br />9.4.9?高级面向对象测试概述 138<br />9.4.10?继承测试 138<br />9.4.11?基于状态的测试 139<br />9.4.12?基于UML的测试 141<br />9.4.13?内置测试 141<br />9.5?评估 143<br />9.5.1?局限性 143<br />9.5.2?简单的笔误 143<br />9.5.3?状态故障 144<br />9.5.4?继承故障 145<br />9.5.5?强项和弱项 147<br />9.6?划重点 147<br />9.7?给有经验的测试员的建议 147<br />第10章 应用测试 148<br />10.1?使用用户故事测试Web应用 148<br />10.2?示例 148<br />10.2.1?分析 149<br />10.2.2?测试覆盖项 153<br />10.2.3?测试用例 153<br />10.2.4?验证测试用例 155<br />10.3?测试实现和测试结果 155<br />10.3.1?测试实现 156<br />10.3.2?测试结果 159<br />10.4?应用测试的细节 160<br />10.4.1?系统测试模型 160<br />10.4.2?应用测试模型 161<br />10.4.3?系统测试和集成测试 161<br />10.4.4?应用测试的故障模型 163<br />10.4.5?分析 164<br />10.4.6?测试覆盖项 167<br />10.4.7?测试用例 167<br />10.4.8?测试实现 167<br />10.4.9?与HTML元素进行交互 169<br />10.4.10?测试输出消息 170<br />10.4.11?录制与回放测试 170<br />10.5?评估 171<br />10.5.1?局限性 171<br />10.5.2?强项和弱项 175<br />10.6?划重点 175<br />10.7 单元测试和应用测试之间的<br />关键区别 176<br />10.8?给有经验的测试员的建议 176<br />第11章 测试自动化 178<br />11.1 简介 178<br />11.1.1 解析测试结果 179<br />11.1.2 文档化自动化测试 179<br />11.1.3 软件测试自动化和版<br />本控制 179<br />11.2 测试框架:TestNG 180<br />11.2.1 TestNG示例的细节 180<br />11.3 整理自动化测试代码 181<br />11.3.1 用XML文件整理TestNG<br />测试 182<br />11.4 设置和清除方法 183<br />11.5 内联测试与参数化测试 185<br />11.6 测试覆盖率 188<br />11.7 超时 189<br />11.8 异常 190<br />11.9 继承测试 191<br />11.9.1 使用类的名字 193<br />11.9.2 继承超类的测试用例 194<br />11.9.3 继承测试的选择 197<br />11.10 与Web应用进行交互 198<br />11.11 与桌面应用进行交互 199<br />11.12 与移动应用进行交互 200<br />第12章 随机测试 201<br />12.1 随机测试简介 201<br />12.2 随机数据选取 201<br />12.3 单元测试示例 201<br />12.3.1 测试覆盖项 202<br />12.3.2 测试用例 202<br />12.3.3 测试实现 203<br />12.3.4 测试结果 204<br />12.4 应用测试示例 205<br />12.4.1 分析 205<br />12.4.2 测试覆盖项 205<br />12.4.3 测试用例 205<br />12.4.4 测试实现 206<br />12.4.5 测试结果 209<br />12.5 随机测试的细节 210<br />12.5.1 全自动化的障碍 210<br />12.5.2 其他随机测试技术 211<br />12.6 评估 212<br />12.6.1 局限性 212<br />12.6.2 强项和弱项 214<br />12.7 划重点 214<br />12.8 给有经验的测试员的建议 215<br />第13章 软件过程中的测试 216<br />13.1 测试策划 216<br />13.2 软件开发生命周期 217<br />13.3 瀑布模型 217<br />13.4 V模型 218<br />13.5 递增和敏捷开发过程 219<br />13.5.1 增量开发模型 219<br />13.5.2 极限编程 220<br />13.5.3 Scrum 221<br />13.6 与过程相关的质量标准和<br />模型 222<br />第14章 总结 223<br />14.1 总结测试技术 223<br />14.2 对测试的回顾 224<br />14.2.1 测试实现 224<br />14.2.2 测试用例 225<br />14.2.3 测试覆盖项 225<br />14.2.4 分析 225<br />14.2.5 软件规范 226<br />14.2.6 讨论 226<br />14.3 扩展阅读 226<br />14.3.1 在软件开发过程中进行<br />测试 227<br />14.3.2 软件测试标准 227<br />14.3.3 软件测试技术 227<br />14.3.4 测试面向对象的软件 227<br />14.3.5 集成测试 228<br />14.3.6 随机测试 228<br />14.3.7 测试编程语言特定的<br />风险 228<br />14.3.8 程序证明 228<br />14.3.9 测试安全紧要软件 229<br />14.3.10 不走弯路 229<br />14.4 研究方向 230<br />14.4.1 研讨会 230<br />14.4.2 研究课题 230<br />附录 运行本书的示例 232<br />参考文献 233<br /> |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。