该书全面系统地介绍了软件测试理论及应用技术,不仅讲述基本的测试技能,也讲述成为一个成功的软件测试员所必须掌握的高级技能。
第一部分 软件测试综述
第1章 软件测试的背景
软件错误实例:迪斯尼的狮子王游戏在大多数系统不能运行;爱国者导弹系统时钟累积错误;千年虫(年份用两位数表示)出现问题等。
产品说明书对开发的产品进行定义,给出产品细节、如何做、做什么、不能做什么。
至少满足如下5个规则之一才称软件缺陷:1.软件未实现产品说明书的要求;2.软件出现产品说明书指明不该出现的错误;3.软件出现产品说明书未提及功能;4.软件未实现产品说明书虽未明确提及但应实现的功能;5.软件难以理解,不易使用、运行缓慢。
软件缺陷来源:产品说明书、设计、编码、其他。修复费用越往后越多,指数级增长。
软件测试员目标是尽可能早地发现软件缺陷,并确保其得以修复。
第2章 软件开发的过程
软件产品需要多少投入:客户需求;产品说明书;进度表;软件设计文档;测试文档(测试计划、测试用例、缺陷报告、测试工具和自动化测试、度量和统计)。
软件产品包括:帮助文件、用户手册、样本和示例、标签和不干胶、产品支持信息、图标和标志、错误信息、广告和宣传材料、安装、说明文件。
软件项目成员:项目经理、系统架构师、程序开发人员、测试员、技术作者、配置管理员。
软件开发生命周期模式:大爆炸模式、边写边改模式、瀑布模式(构思-分析-设计-开发-测试)、螺旋模式(测试员通过参与最初设计阶段,可以尽早影响到产品,可以把产品来龙去脉弄清楚)。
敏捷软件开发:快速原型、极限编程或进化开发。
第3章 软件测试的实质
测试的原则:完全测试程序不可能;软件测试有风险;测试无法显示潜伏的软件缺陷;找到的软件缺陷越多,说明软件缺陷越多;杀虫剂抵抗力怪事;并非所有缺陷都修复;什么时候叫缺陷难以说清;产品说明书没有最终版本;软件测试员在产品小组不受欢迎;软件测试是一项讲究条理的技术专业。
术语:精确和准确;确认(保证软件符合产品说明书的过程)和验证(保证软件满足用户要求的过程);质量(满足客户要求)和可靠性(稳定,是质量的一方面);测试和质量保证。
第二部分 测试基础