该书全面系统地介绍了软件测试理论及应用技术,不仅讲述基本的测试技能,也讲述成为一个成功的软件测试员所必须掌握的高级技能。

第一部分 软件测试综述

第1章 软件测试的背景

软件错误实例:迪斯尼的狮子王游戏在大多数系统不能运行;爱国者导弹系统时钟累积错误;千年虫(年份用两位数表示)出现问题等。

产品说明书对开发的产品进行定义,给出产品细节、如何做、做什么、不能做什么。

至少满足如下5个规则之一才称软件缺陷:1.软件未实现产品说明书的要求;2.软件出现产品说明书指明不该出现的错误;3.软件出现产品说明书未提及功能;4.软件未实现产品说明书虽未明确提及但应实现的功能;5.软件难以理解,不易使用、运行缓慢。

软件缺陷来源:产品说明书、设计、编码、其他。修复费用越往后越多,指数级增长。

软件测试员目标是尽可能早地发现软件缺陷,并确保其得以修复。

第2章 软件开发的过程

软件产品需要多少投入:客户需求;产品说明书;进度表;软件设计文档;测试文档(测试计划、测试用例、缺陷报告、测试工具和自动化测试、度量和统计)。

软件产品包括:帮助文件、用户手册、样本和示例、标签和不干胶、产品支持信息、图标和标志、错误信息、广告和宣传材料、安装、说明文件。

软件项目成员:项目经理、系统架构师、程序开发人员、测试员、技术作者、配置管理员。

软件开发生命周期模式:大爆炸模式、边写边改模式、瀑布模式(构思-分析-设计-开发-测试)、螺旋模式(测试员通过参与最初设计阶段,可以尽早影响到产品,可以把产品来龙去脉弄清楚)。

敏捷软件开发:快速原型、极限编程或进化开发。

第3章 软件测试的实质

测试的原则:完全测试程序不可能;软件测试有风险;测试无法显示潜伏的软件缺陷;找到的软件缺陷越多,说明软件缺陷越多;杀虫剂抵抗力怪事;并非所有缺陷都修复;什么时候叫缺陷难以说清;产品说明书没有最终版本;软件测试员在产品小组不受欢迎;软件测试是一项讲究条理的技术专业。

术语:精确和准确;确认(保证软件符合产品说明书的过程)和验证(保证软件满足用户要求的过程);质量(满足客户要求)和可靠性(稳定,是质量的一方面);测试和质量保证。

第二部分 测试基础

第4章 检查产品说明书

描述测试方式的术语:黑盒测试(功能性测试/行为测试)和白盒测试(透明盒测试)。静态测试(检查和审核)和动态测试(使用和运行软件)。

测试产品说明书属于静态黑盒测试。

测试产品说明书第一步是高级审查:假设自己是客户;研究现有的标准和规范;审查和测试类似软件。

产品说明书低层次测试技术:产品说明书属性检查清单:完整;准确;精确;一致;贴切;合理;代码无关;可测试性。

第5章 带上眼罩测试软件

测试用例(test case)是指进行测试时使用的特定输入,以及测试软件的过程步骤。

通过性测试(至少能做什么)和失效性测试(搞垮它)。

等价类划分是指分步骤地把海量测试用例缩减得很小,但过程同样有效。

数据测试等价类划分原则:边界条件;次边界条件;默认、空白、空值和无;非法、错误、不正确和垃圾数据。

状态转换图应该表示出:软件可能进入的每一种独立状态;从一种状态进入另一种状态的输入和条件。进入或者退出状态的设置条件及输出结果。

通过性状态测试:检查软件、描绘状态、尝试各种合法可能性、确认状态及其转换正常。

失效性状态测试:竞争条件和时序错乱、重复、压迫和重负。

第6章 检查代码

静态白盒测试是在不执行软件的条件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程,有时也称为结构化分析。

正式审查是进行静态白盒测试的过程,包括4个基本要素:确定问题;遵守规则;准备;编写报告。

编码标准和规范:可靠性;可读性/维护性;移植性。

通用代码审查清单:数据引用错误(导致缓冲区溢出,安全缺陷);数据声明错误;计算错误;比较错误;控制流程错误;子程序参数错误;输入/输出错误;其他检查。

第7章 带上X光眼镜测试

动态白盒测试是指利用查看代码功能(做什么)和实现方式(怎么做)得到的信息来确定哪些需要测试、哪些不需要测试、如何开展测试,也称结构化测试。

单元测试/模块测试、集成测试、系统测试

递增测试两条途径:自底向上(测试驱动调用被测试模块)和自顶向下(测试桩)。

数据覆盖:数据流、次边界、公式和等式、错误强制。

代码覆盖:程序语句和代码行覆盖、分支覆盖、条件覆盖。

第三部分 运用测试技术

第8章 配置测试

执行任务:1、确定所需硬件类型。2、确定有哪些厂商的硬件、型号和驱动程序可用。3.确定可能的硬件特性、模式和选项。4、将确定后的硬件配置缩减为可控制的范围。5、明确与硬件配置有关的软件唯一特性。6、设计在每一种配置中执行的测试用例。7、在每种配置中执行测试。8、反复测试直到小组对结果满意为止。

第9章 兼容性测试

软件兼容性测试是指检查软件之间是否能够正确地交互和共享信息。

向后兼容(可以使用软件以前版本)和向前兼容(可以使用软件未来版本)。

高级标准和规范是产品普遍遵守的原则,低级标准是本质细节。

兼容性测试记住3点:对兼容软件的所有可能选择进行等价划分;研究适用于测试软件的高级/低级标准和规范;测试软件程序之间的不同数据流动方式。

第10章 外国语言测试

使软件适应地域特征,照顾到语言、方言、地区习俗和文化的过程称为本地化或国际化。

翻译问题:文本扩展;ASCII;热键和快捷键;扩展字符;字符计算;从左向右和从右向左读;图形中的文字;让文本与代码脱离。

本地化问题:内容,数据格式。

配置和兼容性问题:国外平台配置,数据兼容性。

第11章 易用性测试

优秀UI具备的7个要素:符合标准和规范;直观;一致;灵活;舒适;正确;实用。

为有残疾障碍的人员测试:辅助选项测试。

第12章 测试文档

文档包括:市场宣传材料、广告,授权登记表,标签和不干胶,安装和设置指导,用户手册,联机帮助,指南,样本和示例,错误提示信息等。

好的软件文档可提高软件易用性、可靠性,降低支持费用。

文档测试检测清单:通用部分:听众、术语、内容和主题;正确性:紧扣事实、逐步执行;检查的内容:图表和截图、样本和示例、拼写和语法。

第13章 软件安全性测试

黑客动机:挑战/成名,好奇,借用,恶意破坏(丑化、破坏、拒绝服务),偷窃。

威胁模型分析,整个项目小组执行的正式过程,用于评估软件系统的安全问题。

了解缓冲区溢出,使用安全的字符串函数,计算机取证。

第14章 网站测试

黑盒测试:文本(当作文档对待);超级链接;图片;表单(用于输入和选择信息的文本框、列表框和其他域);对象和其他各种简单功能。

灰盒测试(介于白盒和黑盒之间)适合网页测试,HTML(超文本标记语言)

白盒测试,网站系统结构和编程知识:动态内容;数据库驱动的网页;用编程方法创建的网页;服务器性能和加载;安全性。

配置和兼容性测试,易用性测试。

第四部分 测试的补充

第15章 自动测试和测试工具

重复执行测试的过程称为回归测试。

工具和自动化的主要属性:速度;效率;准确度和精确度;节省资源;仿真和模拟;坚持不懈。

测试工具:查看器/监视器;驱动程序;桩;压力和负载工具;干扰注入器和噪声发生器;分析工具。

软件测试自动化可以执行测试用例,查找软件缺陷,分析看到的信息,记录结果。

自动化:宏录制和回放;可编程的宏;完全可编程的自动测试工具。

随机测试:模拟用户可能的操作,测试猴子。

第16章 缺陷轰炸和beta测试

让别人测试你的软件,测试共享:整个测试小组参加缺陷轰炸。

Beta测试是用于描述外部测试过程的术语。在该过程中,软件分发给选定的潜在客户群,让他们在实际环境中使用软件。

外包测试,配置和兼容性测试通常是外包测试的理想选择。

第五部分 使用测试文档

第17章 计划测试工作

测试计划的目的:规定测试活动的范围、方法、资源和进度;明确正在测试的项目、要测试的特性、要执行的测试任务、每个任务的负责人,以及与计划相关的风险。

测试计划主题:高级期望;人、地点和事;定义;团队之间的责任;哪些要测试、哪些不要测试;测试的阶段;测试策略;资源需求;测试员的任务分配;测试进度;测试用例;软件缺陷报告;度量和统计。风险和问题。

第18章 编写和跟踪测试用例

有条不紊地仔细计划测试用例的重要性:组织;重复性;跟踪;测试证实。

测试用例计划综述:测试设计说明——测试用例说明——测试过程说明。

测试用例组织和跟踪:凭脑子记;书面文档;电子表格;自定义数据库。

第19章 报告发现的问题

不修复软件缺陷的原因:没有足够时间;不算真正的软件缺陷;修复风险太大;不值得修复;无效的软件缺陷报告。

报告软件缺陷的原则:尽快报告软件缺陷;有效描述软件缺陷(短小,单一,明显并通用,可再现);在报告软件缺陷时不评价;对软件缺陷报告跟踪到底。

软件缺陷分等级:严重性和优先级。

软件缺陷生命周期:打开、解决、(审查、推迟、)关闭。

软件缺陷跟踪系统:标准,测试事件报告;手工软件缺陷和跟踪;自动化软件缺陷报告和跟踪。

第20章 成效评价

在日常测试中使用的度量;常用项目级度量。

使用度量的目的是评估测试员和项目的成效,获知一切是否按预定计划进行,如果不是,应该修正。

打开的缺陷   修复/解决的缺陷    关闭的缺陷

第六部分 软件测试的未来

第21章 软件质量保证

一致性费用是指与一次性计划和执行测试相关的全部费用,用于保证软件按照预期方式运行。

软件质量保证人员的主要职责是检查和评价当前软件开发的过程,找出改进过程的方法,已达到防止软件缺陷出现的目的。

QA质量保证,QC质量控制,QM质量管理

能力成熟度模型(CMM):1.初始的,随意和混乱的过程;2.可重复的,项目级的思想;3.定义的,组织级别的思想;4.可管理的,可控制的过程。5.不断优化的。

ISO9000(国际标准化组织),ISO9000-3(负责开发、供应、安装和维护计算机软件方面的事务)。

第22章 软件测试员的职业

软件测试技术人员、软件测试员或者软件测试工程师、软件测试工具开发师或软件测试开发工程师、软件测试负责人、软件测试经理。

开源代码测试

计算机用户的权利议案:观点;安装;服从;指示;控制;反馈;依赖;范围;协助;易用性。(用户第一)

软件测试入门:阅读《软件测试》(原书第2版,(美)Ron Patton 著,张小松、王钰、曹跃 等译)一书相关推荐

  1. 软件测试中文电子版姚静_软件测试[(美)ron patton]读书笔记

    雪舞奉天读书笔记                                   msn: wwwux@163.com 第一部分 软件测试综述 软件测试 - 机械工业出版社 (美) Ron Pat ...

  2. 视频教程-软件测试入门视频教程-软件测试

    软件测试入门视频教程 河北师大软件学院测试教室主任.项目基地测试经理;尚大学.金牌讲师.擅长技术: 项目模块化流程设计.软件测试流程设计及优化.项目管理平台的整合与应用.功能性自动化测试工具.性能测试 ...

  3. 软件测试入门之软件测试的概念与过程(精辟干货)

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 温馨提示:目录在文章右侧栏 文章目录 一. 软件测试的引入 1.学习软件测试前的思考 2.回顾软件的概念与分类 2.1软件的概念 ...

  4. 软件测试入门随笔——软件测试基础知识(一)

    Q1:什么是软件测试? 广义概念:软件测试师是指软件生存周期中所有检查.评审和确认工作,其中包括了对分析.设计阶段,以及完成开发后维护阶段的各类文档.代码的审查和确认. 狭义概念:识别软件缺陷的过程, ...

  5. 软件测试入门之软件测试的概念与过程(精辟内容)

    一. 软件测试的引入 1.学习软件测试前的思考 软件测试就是测试程序吗?(不是,软件包括程序丶数据以及文档,所以不止是测程序) 测试是不是装上软件后点鼠标.敲键盘?(不全是,测试是一个过程包括需求分析 ...

  6. 《软件测试》[(美)Ron Patton]第四章阅读总结

    第四章 检查产品说明书 一.开始测试 描述测试方式的4个术语:黑盒测试.白盒测试.静态测试.动态测试. 1.黑盒测试和白盒测试 黑盒测试:又称功能性测试或行为测试,它是通过测试来检查每个功能是否都能正 ...

  7. 《软件测试》[(美)Ron Patton]第六章阅读总结

    第六章 检查代码 一.静态白盒测试:检查设计和代码 静态白盒测试 定义:在不执行软件的条件下有条理的仔细审查软件设计.体系结构和代码从而找出软件缺陷的过程,又称结构化分析. 原因:是在开发过程早期发现 ...

  8. 软件测试入门之软件测试的原则与测试工程师的要求(了解即可)

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 接着上一篇博客继续往下写 :https://blog.csdn.net/qq_41782425/article/details/1 ...

  9. 《软件测试》[(美)Ron Patton]第十二章阅读总结

    第12章 文档测试 一.软件文档的类型 文档的软件组成部分 包装文字和图形.包括盒子,纸箱和包装纸. 市场宣传材料,广告及其它插页. 授权/注册登记表. EULA(最终用户许可协议),这是要客户同意条 ...

最新文章

  1. 部署DNS之辅助区域
  2. 终生受用的十大经典管理理论
  3. micropython esp8266教程_ESP8266 快速开发指南
  4. docker查找镜像_5 款非常好用的开源 Docker 工具,get一波~
  5. ElasticSearch-JDBC驱动 像使用SQL一样使用ElasticSearch查询语句
  6. 桌面环境选择_Fedora 30 正式版发布:引入 Deepin 桌面环境(DDE)
  7. idea 关闭检查更新_Intellij idea的抑制警告(SuppressWarnings)列表(正在持续更新)
  8. Win10: adb: error: remote could not create file(解决)
  9. 51单片机串行通信原理
  10. 利用nat123进行内网穿透
  11. python3提供了什么函数从标准输入读入一行文本_Python3 提供了print函数从标准输入(如键盘)读入一行文本...
  12. VAssistX 10.9 和 VS2010破解(win10环境)
  13. 全套web前端课程思维导图+视频+源码 web高端课程 深入学习 624个视频教程
  14. 小米android6.01 root,小米手机6详细刷成开发版开启root超级权限的教程
  15. cad画多段线时不显示轨迹_为什么CAD绘图编辑拖动时看不到预览效果?
  16. node-red实现MQTT通讯
  17. DBPedia知识图谱详细介绍
  18. 为什么人人都爱康师傅
  19. 结构体数组与结构体指针
  20. 万字长文,小学弟熬夜肝了这份腾讯面试攻略

热门文章

  1. 学生学不好数学 关键在自己而不在老师
  2. RFID资产管理软件可进行哪些管理
  3. android10 隐藏SystemUI锁屏下的多用户图标
  4. axios的使用和封装(九)
  5. python毕业设计 基于django框架新闻信息管理系统毕业设计设计与实现
  6. android yuy2,Android使用USB摄像头拍照yuy2转jpeg
  7. 如何进入UI设计行业 什么学习路线适合新手
  8. 52单片机IO口输出-蜂鸣器(硬核)
  9. 订单分库分表实践总结以及关键步骤
  10. 商务统计_14 统计指数