"本书为初出茅庐的测试新手提供了便利。检查单的应用以及每章末尾配有的测验,会让读者加深对所学知识的理解和掌握,其价值是无法衡量的。Patton侃侃而谈的写作风格,自我发展的组织方式,也会使有经验的专业测试人员获益匪浅。":Suan Archer软件测试学院主任,有超过14年的专业软件测试经验"Patton的软件测试是进入软件测试专业领域的理想入门指导。一个测试新手可以从中学到重要的基础知识,以及进一步提高所需要的一些高级提示。该书编排清晰合理,内容浅显易读。":Danny R. Faught Cigital公司软件分析员,comp.software.testing FAQ 网站的创建者,以及软件测试讨论 (swtest-discuss) 邮件组的共同创办者本书全面系统地介绍了软件测试理论及应用技术,不仅讲述基本的测试技能,也讲述成为一个成功的软件测试员所必须掌握的高级技能。其目的在于引导读者通过基础知识和必要技能的学习而成为一个优秀的软件测试员,知道如何迅速在任一计算机程序中发现问题,如何计划一个有效的测试步骤,如何清楚地报告发现的问题,以及如何告知软件在何时发布。本书是一本软件测试的入门书,内容全面实用,讲述浅显易懂,既可作为高等院校软件测试课程的教材,也可作为软件测试爱好者的自学用书。对于那些希望增强软件测试方面知识的程序员、软件项目经理和软件开发团队的其他人员,本书也具有很好的参考价值。 关于作者15此书谨献给16致谢16欢迎联系我们17绪论18关于本书第二版18谁使用此书?18本书可以为你带来什么19本书的组织方式19本书所采用的规范21第一部分 软件测试综述22第1章 软件测试的背景231.1臭名昭著的软件错误用例研究231.1.1迪斯尼的狮子王,1994―1995231.1.2英特尔奔腾浮点除法缺陷,1994241.1.3美国航天局火星极地登陆者号探测器,1999241.1.4爱国者导弹防御系统,1991251.1.5千年虫问题,大约1974251.1.6危险的预见,2004261.2软件缺陷是什么261.2.1软件失败的术语261.2.2软件缺陷官方的定义271.3为什么会出现软件缺陷281.4软件缺陷的修复费用291.5软件测试员究竟做些什么291.6优秀软件测试员应具备的素质301.7小结311.8小测验31第二章软件开发过程322.1产品的组成部分322.1.1软件产品需要多少投入322.1.2软件产品由哪些部分组成352.2软件项目成员352.3软件开发生命周期模式362.3.1大爆炸模式362.3.2边写边改模式372.3.3瀑布模式382.3.4螺旋模式382.4小结402.5小测验40第三章 软件测试的实质413.1测试的原则413.1.1完全测试程序是不可能的413.1.2软件测试是有风险的行为423.1.3测试无法显示潜伏的软件缺陷423.1.4找到的软件缺陷越多,就说明软件缺陷越多433.1.5杀虫剂怪事433.1.6并非所有软件缺陷都要修复443.1.7什么时候才叫缺陷难以说清的443.1.8产品说明书从没有最终版本453.1.9软件测试员在产品小组中不受欢迎453.1.10软件测试是一项讲究条理的技术专业463.2软件测试的术语和定义463.2.1精确和准确463.2.2确认和验证473.2.3质量和可靠性483.2.43.2.4 测试和质量保证(QA)483.3小结483.4小测验49第二部分 测试基础50第四章 检查产品说明书514.1开始测试514.1.1黑盒测试和白盒测试524.1.2静态和动态测试524.1.3静态黑盒测试,测试产品说明书534.2对产品说明书进行高级审查534.2.1假设自己是客户534.2.2研究现有的标准和规范544.2.3审查和测试类似软件554.3产品说明书的低层次测试技术554.3.1产品说明书属性检查清单554.3.2产品说明书术语检查清单564.4小结564.5小测验56第5 章带上眼罩测试软件585.1动态黑盒测试:带上眼罩测试软件585.2通过性测试和失效性测试595.3等价类划分605.4数据测试625.4.1边界条件625.4.2边界条件类型635.4.3测试边界645.4.4次边界条件655.4.5默认、空白、空值、零值和无665.4.6非法、错误、不正确和垃圾数据675.5状态测试685.5.1测试软件的逻辑流程685.5.2失败状态测试715.6其他黑盒测试技术735.6.1像笨拙的用户那样做735.6.2在已经找到的软件缺陷的地方再找找735.6.3像黒客一样考虑问题745.6.4凭借经验、直觉和预感745.7小结745.8小测验74第6章检查代码766.1静态白盒测试:检查设计和代码776.2正式审查776.2.1.同事审查796.2.2.走查796.2.3.检验796.3编码标准和规范806.3.1.编程标准和规范示例806.3.2.获取标准816.4通用代码审查清单826.4.1数据引用错误826.4.2数据声明错误836.4.3计算错误836.4.4比较错误846.4.5控制流程错误846.4.6子程序参数错误846.4.7输入/输出错误856.4.8其他检查856.5小结856.6小测验86第7章带上X光眼镜检查软件877.1动态白盒测试877.2动态白盒测试和调试887.3分段测试897.3.1.单元测试和集成测试897.3.2.单元测试示例917.4数据覆盖927.4.1.数据流937.4.2.次边界937.4.3.公式和等式937.4.4.错误强制947.5代码覆盖957.5.1程序语句和代码行覆盖967.5.2分支覆盖977.5.3条件覆盖977.6小结987.7小测验99第8章配置测试1018.1配置测试综述1018.1.1分离配置缺陷1038.1.2计算工作量1058.2执行任务1058.2.1确定所需的硬件类型1068.2.2确定有哪些厂商的硬件、型号和驱动程序可用1068.2.3确定可能的硬件特性、模式和选项1068.2.4将确定后的硬件配置缩减为可控制范围1078.2.5明确与硬件配置有关的软件唯一特性1088.2.6设计在每一种配置中执行的测试用例1088.2.7在每种配置中执行测试1098.2.8反复测试直到小组对结果满意为止1098.3获得硬件1098.4明确硬件标准1108.5对其他硬件进行配置测试1118.6小结1118.7小测验111第9章 兼容性测试1129.1兼容性测试综述1129.2平台和应用程序版本1139.2.1向后和向前兼容1139.2.2测试多个版本的影响1149.3标准和规范1159.3.1高级标准和规范1169.3.2低级标准和规范1169.4数据共享兼容性1179.5小结1189.6小测验119外国语言测试12010.1使文字和图片有意义12010.2翻译问题12110.2.1文本扩展12110.2.2ASCll、DBCS和Unicode12210.2.3热键和快捷键12310.2.4扩展字符12310.2.5字符计算12410.2.6从左向右和从右向左读12410.2.7图形中的文字12510.2.8让文本与代码脱离12510.3本地化问题126内容126数据格式12710.4配置和兼容性问题12810.4.1国外平台配置12910.4.2数据兼容性13010.5测试量有多大13010.6小结13110.7小测验132第11章 易用性测试13311.1用户界面测试13311.2优秀UI由什么构成?13411.2.1符合标准和规范13511.2.2直观13511.2.3一致13611.2.4灵活13711.2.5舒适13811.2.6正确13811.2.7实用13911.3为有残疾障碍的人员测试:辅助选项测试14011.3.1法律要求14111.3.2软件中的辅助特性14111.4小结14211.5小测验143第12章测试文档14412.1软件文档的类型14412.2文档测试的重要性14612.3审查文档时要找什么14712.4文档测试的实质14812.5小结14912.6小测验149第13章 软件安全性测试15013.1战争游戏:电影15013.2了解动机15113.3威胁模式分析15213.4软件安全是一项功能吗?软件漏洞是一个缺陷吗?15413.5了解缓冲区溢出15513.6使用安全的字符串函数15513.7计算机取证15613.8小结15813.9小测验158第14章 网站测试15914.1网页基础15914.2黑盒测试16014.2.1文本16114.2.2超级链接16214.2.3图片16214.2.4表单16214.2.5对象和其他各种简单的功能16314.3灰盒子测试16314.4白盒测试16714.5配置和兼容性测试16814.6易用性测试16914.7自动化测试简介17114.8小结17114.9小测验171第十五章 自动测试和测试工具17315.1工具和自动化的好处17315.2测试工具17415.2.1查看器和监视器17415.2.2驱动程序17515.2.3桩17615.2.4压力和负载工具17615.2.5干扰注入器和噪声发生器17715.2.6分析工具17715.3软件测试自动化17815.3.1宏录制和回放17815.3.2可编程的宏17915.4随机测试:猴子和大猩猩18115.4.1笨拙的猴子18215.4.2半聪明的猴子18315.4.3聪明猴子18315.5使用测试工具和自动化的实质18415.6小结18515.7小测验185第16章 缺陷轰炸和Beta测试18616.1让别人测试你的软件18616.2测试共享18716.3Beta测试18716.4外包测试18816.5小结18916.6小测验189第五部分 使用测试文档190第17章 计划测试工作19117.1测试计划的目标19117.2测试计划主题19217.2.1高级期望19217.2.2人、地点和事19317.2.3定义19317.2.4团队之间的责任19417.2.5哪些要测试,哪些不要测试19517.2.6测试的阶段19517.2.7测试策略19617.2.8资源需求19617.2.9测试员的任务分配19617.2.10测试进度19717.2.11测试用例19817.2.12软件缺陷报告19817.2.13度量和统计19817.2.14风险和问题19917.3小结19917.4小测验199第18章 编写和跟踪测试用例20018.1测试用例计划的目标20018.2测试用例计划综述20118.2.1测试设计20218.2.2测试用例20318.2.3测试的程序20418.3测试用例组织和跟踪20518.4小结20618.5小测验206第19章 报告发现的问题20819.1设法修复软件缺陷20819.2分离和再现软件缺陷21119.3并非所有软件缺陷生来就是平等的21219.4软件缺陷的生命周期21319.5软件缺陷跟踪系统21519.5.1标准:测试事件报告21519.5.2手工软件缺陷报告和跟踪21619.5.3自动化软件缺陷的报告和跟踪21619.6小结21819.7小测验218第20章 成效评价22020.1使用软件缺陷跟踪数据库中的信息22120.2在日常测试中使用的度量22220.3常用项目级度量22420.4小结227第六部分 软件测试的未来229第21章 软件质量保证23021.1质量是免费的23021.2工作现场的测试和质量保证23121.2.1软件测试23121.2.2质量保证23221.2.3软件测试团队的其他名称23321.3测试的管理和组织结构23321.4能力成熟度模型(CMM)23521.5IS0900023621.6小结23721.7小测验238第22章 软件测试员的职业23922.1软件测试员的工作24022.2寻求软件测试职位24022.3获得亲身体验24122.4正规培训机会24222.5网站24322.6专注于软件和软件质量的专业组织24322.7更进一步阅读24422.8小结24522.9小测验245附录A小测验问题解答246第1章246第2章246第3章247第4章248第5章248第6章249第7章250第8章251第9章252第10章252第11章253第12章253第13章254第14章254第15章255第16章255第17章256第18章256第19章257第20章258第21章259第22章259索 引(Index)260