测试技术基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 设计测试关注重点:
– 完备性 – 一致性 – 正确性 – 可行性 – 易修改性 – 模块性 – 健壮性 – 易追溯性 – 易测试性和可验证性
3.2 W模型-问题
• W模型未解决V模型中的部分问题:
– 需求、设计、编码串行进行,无法并行工作。 – 未将测试流程的完整性表示出来。
培训内容
• 第一章 软件测试的发展 • 第二章 软件测试的定义 • 第三章 软件测试的模型 • 第四章 质量保证与测试 • 第五章 测试方法 • 第六章 测试策略 • 第七章 测试实施
4.3 工作内容
• 参与公司质量体系建设 • 促使过程持续改进 • 指导项目实施 • 评审项目活动 • 审核工作产品 • 提供决策参考 • 进行缺陷预防
4.4 工作过程
• 计划
– 针对具体项目制定SQA计划,确保项目组正确执行过程 • 有重点:依据企业目标以及项目情况确定检查、审计的重点 • 明确内容:标识出检查、审计的工作产品对象 • 明确方式:确定怎样进行检查、审计 • 明确结果报告:每个阶段SQA的输出产品、结果报告给谁
用户需求
3.1 V模型
软件产品
需求分析
验收测试 确认和系统测试
概要设计
集成测试
——制定测试案例
详细设计
单元测试
编码
3.1 V模型-应用
• 需求、设计和编码的开发活动随时间而进行, 而相应的测试活动(即针对需求、设计和编 码的测试)开展的次序正好相反。
• 成功应用V模型的关键因素是设计测试案例 的时机。
培训内容
• 第一章 软件测试的发展 • 第二章 软件测试的定义 • 第三章 软件测试的模型 • 第四章 质量保证与测试 • 第五章 测试方法 • 第六章 测试策略 • 第七章 测试实施
第三章 软件测试的模型
• 3.1 V模型 • 3.2 W模型 • 3.3 H模型 • 3.4 其他模型 • 3.5 模型的指导意义
• 验证(verification):are we building the product right ?
2.2 软件测试的概念
• 确认主要体现在计划阶段、需求分析阶段, 也会出现在测试阶段;验证主要体现在设计 阶段、编码阶段;测试主要体现在编码阶段 和测试阶段。
• 确认、验证与测试是相辅相成的。确认产生 验证和测试的标准,验证和测试帮助完成确 认。
软件测试工程师培训 测试技术基础
培训内容
• 第一章 软件测试的发展 • 第二章 软件测试的定义 • 第三章 软件测试的模型 • 第四章 质量保证与测试 • 第五章 测试方法 • 第六章 测试策略 • 第七章 测试实施
培训内容
• 第一章 软件测试的发展 • 第二章 软件测试的定义 • 第三章 软件测试的模型 • 第四章 质量保证与测试 • 第五章 测试方法 • 第六章 测试策略 • 第七章 测试实施
4.2 主要职责
• QA的主要职责:
• 检查开发和管理活动是否与已定的过程策略、标准 和流程一致
• 检查工作产品是否遵循模板规定的内容和格式 • 收集度量数据,确定和管理风险,促进和协助流程
改进 • 向管理者提供正确的信息,以使软件开发正确的执
行 • 充当测试工作的监督者,测试工作是否按照既定的
流程(测试计划、测试方案、测试案例、测试执行) 进行
第四章 质量保证与测试
• 4.1 质量保证 • 4.2 主要职责 • 4.3 工作内容 • 4.4 工作方法 • 4.5 与测试的区别 • 4.6 误解
4.1 质量保证
• 质量保证(Quality Assurance) • 质量保证:通过预防、检查与改进来保证软
件质量,是软件生命周期的管理以及验证软 件是否满足规定的质量和用户的需求 • 质量保证软件测试
2.5 软件测试的目的
2. 通过分析错误产生的原因还可以帮助发 现当前开发工作所采用的软件过程的缺 陷,以便进行软件过程改进。同时通过 对测试结果的分析整理,还可以修正软 件开发规则,并为软件可靠性分析提供 依据。
2.5 软件测试的目的
3. 测试是以评价一个程序或者系统属性为目 标的一种活动,测试是对软件质量的度量 与评估,以验证软件的质量满足用户的需 求,为用户选择与接受软件提供有力的 依据。
第一章 软件测试的发展
• 1981年,Bill Hetzel开设“Structured Software Testing”公共课。
• 1988年David Gelperin & Bill Hetzel 在 “Communications of the ACM”发表“The Growth of Software Testing”,介绍系统化的测 试和评估流程。
第三方测试。
2.5 软件测试的目的
• 测试的最直接的目的是寻找错误,并且是尽 最大可能找出最多的错误。
• 观点1:好的测试方案是极可能发现迄今为止 尚未发现的错误的测试方案。
• 观点2:成功的测试是发现了至今为止尚未发 现的错误的测试。
2.5 软件测试的目的
• 证明程序的正确性——除非仅处理有限种情 况
– 软件缺陷是存在于软件之中的那些不希望或不可 接受的偏差。其结果是软件运行于某一特定条件 时出现软件故障,这时称软件缺陷被激活。
– 软件故障是指软件运行过程中出现的一种不希望 或不可接受的内部状态。此时若无适当措施(容 错)加以及时处理,便产生软件失效。
– 软件失效是指软件运行时产生的一种不希望或不 可接受的外部行为结果。
2.3 软件测试的对象
• 软件测试不等于程序测试。 • 软件测试贯串于软件定义和开发的整个期间。 • 需求规格说明、概要设计说明、详细设计说
明、程序都是软件测试的对象。
2.4 软件测试的分类
• 按测试用例设计方法:白盒测试、黑盒测试。 • 按测试策略和过程:单元测试、集成测试、
确认测试、系统测试、验收测试。 • 按实施对象:企业内部测试、最终用户测试、
• 发现程序错误——直接目标 • 检查系统是否满足需求——期望目标
2.5 软件测试的目的
• 测试目的延伸(软件工程):
1. 测试的目的是想以最少的人力、物力和时 间找出软件中潜在的各种错误和缺陷,通 过修正各种错误和缺陷提高软件质量, 回避软件发布后由于潜在的软件缺陷和错 误造成的隐患带来的商业风险。
3.1 V模型-问题
• 测试是开发之后的一个阶段。 • 测试的对象就是程序本身。 • 实际应用中容易导致需求阶段的错误一直到
最后系统测试阶段才被发现。
3.2 W模型
需求分析 需求测试
交付 系统测试
概要设计 功能测试
确认 确认测试
详细设计 设计测试
集成 集成测试
编码 单元测试
3.2 W模型-应用
2.5 软件测试的目的
验证用户需求
发现软件缺陷
目的:在软件分 发到最终用户手 中之前,发现并 解决软件缺陷
改进开发过程
2.6 软件测试的原则
• 所有的软件测试都应追溯到用户需求。 • 尽早地和不断地进行软件测试。 • 程序员应避免检查测试自己编写的程序。 • 执行测试计划,尽量避免测试的随意性。 • 增量测试,由小到大。
2.6 软件测试的原则
• 充分注意群集现象。 • 完全测试是不可能的,测试需要终止。 • 测试无法显示软件潜在的错误 • 妥善保存一切测试过程文档。
2.7 软件失效机理
• 软件错误>软件缺陷>软件故障>软件失效
– 软件错误是指在软件生存期内的不希望或不可接 受的人为错误,其结果是导致软件缺陷的产生。
– 使用人工或自动化手段来运行或测定某个系统的 过程,其目的在于检验它是否满足规定的需求或 是发现预期结果与实际结果之间的差别。
2.2 软件测试的概念
• 扩展定义:
– 软件测试就是在软件投入运行前,对软件需求分 析、设计规格说明和编码的最终复审,是软件质 量保证的关键步骤。
– 软件测试是根据软件开发各阶段的规格说明和程 序的内部结构而精心设计一批测试用例(包括输 入数据与预期输出结果),并利用这些测试用例 运行软件,以发现软件错误的过程。
– 测试:与狭隘的测试概念统一。
2.2 软件测试的概念
• 确认:保证所生产的软件可追溯到用户需求 的一系列活动。(生产的软件是否正确)
• 确认(validation):are we building the right product ?
• 验证:保证软件正确地实现了特定功能的一 系列活动。(生产软件的步骤是否正确)
第一章 软件测试的发展
• 20世纪60年代(软件工程建立前),为表明 程序正确而进行测试。
• 1972年, Bill Hetzel 在North Carolina大学举 行第一次以软件测试为主题的正式会议。
• 1979年, Glenford Myers《The Art of Software Testing》提出软件测试的目的是证 伪,软件测试是为发现错误而执行一个程序 或者系统的过程
• 评审/审计
– 依据SQA计划进行SQA检查、审计工作,按照规则发布结果报告 – 审计的内容:是否按照过程要求执行了相应活动,是否按照过程要求产生了
相应产品、产品是否符合相应的规程定义
• 问题跟踪
– 对审计中发现的问题,要求项目组改进,并跟进直到解决。 – 提供项目改进的依据
4.5 与测试的区别
理解正确性 表达正确性
软件需求 用户:我要
什么?
相符吗?
输入正确性 运行正确性
运行结果 计算机:程序wenku.baidu.com行
得到什么?
2.2 软件测试的概念
• 软件生存期的各个阶段都可能产生错误。而 软件需求分析、设计和实现阶段是软件的主 要错误来源。
2.2 软件测试的概念
• 经典定义:
– 在规定的条件下对程序进行操作,以发现错误和 对软件质量进行评估
• 20世纪80年代早期,开始吹响“质量”的号 角,软件测试的定义发生了改变,开始引入 “质量评价”的内容
第一章 软件测试的发展
• 1996年提出的测试能力成熟度TCMM (Testing Capability Maturity Model)、测试 支持度TSM(Testability Support Model)、测 试成熟度TMM(Testing Maturity Model)。
2.1 软件生存周期
• 软件生存周期:项目规划、需求定义和需求 分析、软件设计、程序编码、软件测试、运 行维护。
2.1 软件生存周期
理解正确性 设计正确性 表达正确性
需求规格说明书 分析员:我可以提供
什么?
设计说明书 设计员:我要让软件
怎么做?
理解正确性 编码正确性
源程序 程序员:我要让计算
机怎么做?
2.7 软件失效机理
• 软件错误>软件缺陷>软件故障>软件失效
– 软件错误是一种人为错误。 – 一个软件错误必定产生一个或多个软件缺陷。 – 当一个软件缺陷被激活时,便产生一个软件故障;
同一个软件缺陷在不同条件下被激活,可能产生 不同的软件故障。
– 软件故障如果没有及时的容错措施加以处理,便 不可避免地导致软件失效;同一个软件故障在不 同条件下可能产生不同的软件失效。
2.2 软件测试的概念
• 广义的软件测试是由确认、验证、测试3个方 面组成。
– 确认:评估将要开发的软件产品是否正确无误、 可行和有价值的。确认意味着确保一个待开发软 件是正确无误的,是对软件开发构想的检测。
– 验证:检测软件开发的每个阶段、每个步骤结果 是否正确无误,是否与软件开发各阶段的要求或 期望的结果相一致。验证意味着确保软件会正确 无误地实现软件的需求,开发过程是沿着正确的 方向进行的。
• 软件测试相关标准逐步形成、完善。
培训内容
• 第一章 软件测试的发展 • 第二章 软件测试的定义 • 第三章 软件测试的模型 • 第四章 质量保证与测试 • 第五章 测试方法 • 第六章 测试策略 • 第七章 测试实施
第二章 软件测试的定义
• 2.1 软件生存周期 • 2.2 软件测试的概念 • 2.3 软件测试的对象 • 2.4 软件测试的分类 • 2.5 软件测试的目的 • 2.6 软件测试的原则 • 2.7 软件失效机理
• 测试伴随整个开发周期。 • 测试对象不仅是程序,还包括需求和设计。 • 相应开发活动完成,即可执行测试(例如:
需求分析完成,即可对需求进行测试) 。
3.2 W模型-应用
• 需求测试关注重点:
– 完备性 – 一致性 – 正确性 – 可行性 – 易修改性 – 易理解性 – 易测试性和可验证性
3.2 W模型-应用
– 完备性 – 一致性 – 正确性 – 可行性 – 易修改性 – 模块性 – 健壮性 – 易追溯性 – 易测试性和可验证性
3.2 W模型-问题
• W模型未解决V模型中的部分问题:
– 需求、设计、编码串行进行,无法并行工作。 – 未将测试流程的完整性表示出来。
培训内容
• 第一章 软件测试的发展 • 第二章 软件测试的定义 • 第三章 软件测试的模型 • 第四章 质量保证与测试 • 第五章 测试方法 • 第六章 测试策略 • 第七章 测试实施
4.3 工作内容
• 参与公司质量体系建设 • 促使过程持续改进 • 指导项目实施 • 评审项目活动 • 审核工作产品 • 提供决策参考 • 进行缺陷预防
4.4 工作过程
• 计划
– 针对具体项目制定SQA计划,确保项目组正确执行过程 • 有重点:依据企业目标以及项目情况确定检查、审计的重点 • 明确内容:标识出检查、审计的工作产品对象 • 明确方式:确定怎样进行检查、审计 • 明确结果报告:每个阶段SQA的输出产品、结果报告给谁
用户需求
3.1 V模型
软件产品
需求分析
验收测试 确认和系统测试
概要设计
集成测试
——制定测试案例
详细设计
单元测试
编码
3.1 V模型-应用
• 需求、设计和编码的开发活动随时间而进行, 而相应的测试活动(即针对需求、设计和编 码的测试)开展的次序正好相反。
• 成功应用V模型的关键因素是设计测试案例 的时机。
培训内容
• 第一章 软件测试的发展 • 第二章 软件测试的定义 • 第三章 软件测试的模型 • 第四章 质量保证与测试 • 第五章 测试方法 • 第六章 测试策略 • 第七章 测试实施
第三章 软件测试的模型
• 3.1 V模型 • 3.2 W模型 • 3.3 H模型 • 3.4 其他模型 • 3.5 模型的指导意义
• 验证(verification):are we building the product right ?
2.2 软件测试的概念
• 确认主要体现在计划阶段、需求分析阶段, 也会出现在测试阶段;验证主要体现在设计 阶段、编码阶段;测试主要体现在编码阶段 和测试阶段。
• 确认、验证与测试是相辅相成的。确认产生 验证和测试的标准,验证和测试帮助完成确 认。
软件测试工程师培训 测试技术基础
培训内容
• 第一章 软件测试的发展 • 第二章 软件测试的定义 • 第三章 软件测试的模型 • 第四章 质量保证与测试 • 第五章 测试方法 • 第六章 测试策略 • 第七章 测试实施
培训内容
• 第一章 软件测试的发展 • 第二章 软件测试的定义 • 第三章 软件测试的模型 • 第四章 质量保证与测试 • 第五章 测试方法 • 第六章 测试策略 • 第七章 测试实施
4.2 主要职责
• QA的主要职责:
• 检查开发和管理活动是否与已定的过程策略、标准 和流程一致
• 检查工作产品是否遵循模板规定的内容和格式 • 收集度量数据,确定和管理风险,促进和协助流程
改进 • 向管理者提供正确的信息,以使软件开发正确的执
行 • 充当测试工作的监督者,测试工作是否按照既定的
流程(测试计划、测试方案、测试案例、测试执行) 进行
第四章 质量保证与测试
• 4.1 质量保证 • 4.2 主要职责 • 4.3 工作内容 • 4.4 工作方法 • 4.5 与测试的区别 • 4.6 误解
4.1 质量保证
• 质量保证(Quality Assurance) • 质量保证:通过预防、检查与改进来保证软
件质量,是软件生命周期的管理以及验证软 件是否满足规定的质量和用户的需求 • 质量保证软件测试
2.5 软件测试的目的
2. 通过分析错误产生的原因还可以帮助发 现当前开发工作所采用的软件过程的缺 陷,以便进行软件过程改进。同时通过 对测试结果的分析整理,还可以修正软 件开发规则,并为软件可靠性分析提供 依据。
2.5 软件测试的目的
3. 测试是以评价一个程序或者系统属性为目 标的一种活动,测试是对软件质量的度量 与评估,以验证软件的质量满足用户的需 求,为用户选择与接受软件提供有力的 依据。
第一章 软件测试的发展
• 1981年,Bill Hetzel开设“Structured Software Testing”公共课。
• 1988年David Gelperin & Bill Hetzel 在 “Communications of the ACM”发表“The Growth of Software Testing”,介绍系统化的测 试和评估流程。
第三方测试。
2.5 软件测试的目的
• 测试的最直接的目的是寻找错误,并且是尽 最大可能找出最多的错误。
• 观点1:好的测试方案是极可能发现迄今为止 尚未发现的错误的测试方案。
• 观点2:成功的测试是发现了至今为止尚未发 现的错误的测试。
2.5 软件测试的目的
• 证明程序的正确性——除非仅处理有限种情 况
– 软件缺陷是存在于软件之中的那些不希望或不可 接受的偏差。其结果是软件运行于某一特定条件 时出现软件故障,这时称软件缺陷被激活。
– 软件故障是指软件运行过程中出现的一种不希望 或不可接受的内部状态。此时若无适当措施(容 错)加以及时处理,便产生软件失效。
– 软件失效是指软件运行时产生的一种不希望或不 可接受的外部行为结果。
2.3 软件测试的对象
• 软件测试不等于程序测试。 • 软件测试贯串于软件定义和开发的整个期间。 • 需求规格说明、概要设计说明、详细设计说
明、程序都是软件测试的对象。
2.4 软件测试的分类
• 按测试用例设计方法:白盒测试、黑盒测试。 • 按测试策略和过程:单元测试、集成测试、
确认测试、系统测试、验收测试。 • 按实施对象:企业内部测试、最终用户测试、
• 发现程序错误——直接目标 • 检查系统是否满足需求——期望目标
2.5 软件测试的目的
• 测试目的延伸(软件工程):
1. 测试的目的是想以最少的人力、物力和时 间找出软件中潜在的各种错误和缺陷,通 过修正各种错误和缺陷提高软件质量, 回避软件发布后由于潜在的软件缺陷和错 误造成的隐患带来的商业风险。
3.1 V模型-问题
• 测试是开发之后的一个阶段。 • 测试的对象就是程序本身。 • 实际应用中容易导致需求阶段的错误一直到
最后系统测试阶段才被发现。
3.2 W模型
需求分析 需求测试
交付 系统测试
概要设计 功能测试
确认 确认测试
详细设计 设计测试
集成 集成测试
编码 单元测试
3.2 W模型-应用
2.5 软件测试的目的
验证用户需求
发现软件缺陷
目的:在软件分 发到最终用户手 中之前,发现并 解决软件缺陷
改进开发过程
2.6 软件测试的原则
• 所有的软件测试都应追溯到用户需求。 • 尽早地和不断地进行软件测试。 • 程序员应避免检查测试自己编写的程序。 • 执行测试计划,尽量避免测试的随意性。 • 增量测试,由小到大。
2.6 软件测试的原则
• 充分注意群集现象。 • 完全测试是不可能的,测试需要终止。 • 测试无法显示软件潜在的错误 • 妥善保存一切测试过程文档。
2.7 软件失效机理
• 软件错误>软件缺陷>软件故障>软件失效
– 软件错误是指在软件生存期内的不希望或不可接 受的人为错误,其结果是导致软件缺陷的产生。
– 使用人工或自动化手段来运行或测定某个系统的 过程,其目的在于检验它是否满足规定的需求或 是发现预期结果与实际结果之间的差别。
2.2 软件测试的概念
• 扩展定义:
– 软件测试就是在软件投入运行前,对软件需求分 析、设计规格说明和编码的最终复审,是软件质 量保证的关键步骤。
– 软件测试是根据软件开发各阶段的规格说明和程 序的内部结构而精心设计一批测试用例(包括输 入数据与预期输出结果),并利用这些测试用例 运行软件,以发现软件错误的过程。
– 测试:与狭隘的测试概念统一。
2.2 软件测试的概念
• 确认:保证所生产的软件可追溯到用户需求 的一系列活动。(生产的软件是否正确)
• 确认(validation):are we building the right product ?
• 验证:保证软件正确地实现了特定功能的一 系列活动。(生产软件的步骤是否正确)
第一章 软件测试的发展
• 20世纪60年代(软件工程建立前),为表明 程序正确而进行测试。
• 1972年, Bill Hetzel 在North Carolina大学举 行第一次以软件测试为主题的正式会议。
• 1979年, Glenford Myers《The Art of Software Testing》提出软件测试的目的是证 伪,软件测试是为发现错误而执行一个程序 或者系统的过程
• 评审/审计
– 依据SQA计划进行SQA检查、审计工作,按照规则发布结果报告 – 审计的内容:是否按照过程要求执行了相应活动,是否按照过程要求产生了
相应产品、产品是否符合相应的规程定义
• 问题跟踪
– 对审计中发现的问题,要求项目组改进,并跟进直到解决。 – 提供项目改进的依据
4.5 与测试的区别
理解正确性 表达正确性
软件需求 用户:我要
什么?
相符吗?
输入正确性 运行正确性
运行结果 计算机:程序wenku.baidu.com行
得到什么?
2.2 软件测试的概念
• 软件生存期的各个阶段都可能产生错误。而 软件需求分析、设计和实现阶段是软件的主 要错误来源。
2.2 软件测试的概念
• 经典定义:
– 在规定的条件下对程序进行操作,以发现错误和 对软件质量进行评估
• 20世纪80年代早期,开始吹响“质量”的号 角,软件测试的定义发生了改变,开始引入 “质量评价”的内容
第一章 软件测试的发展
• 1996年提出的测试能力成熟度TCMM (Testing Capability Maturity Model)、测试 支持度TSM(Testability Support Model)、测 试成熟度TMM(Testing Maturity Model)。
2.1 软件生存周期
• 软件生存周期:项目规划、需求定义和需求 分析、软件设计、程序编码、软件测试、运 行维护。
2.1 软件生存周期
理解正确性 设计正确性 表达正确性
需求规格说明书 分析员:我可以提供
什么?
设计说明书 设计员:我要让软件
怎么做?
理解正确性 编码正确性
源程序 程序员:我要让计算
机怎么做?
2.7 软件失效机理
• 软件错误>软件缺陷>软件故障>软件失效
– 软件错误是一种人为错误。 – 一个软件错误必定产生一个或多个软件缺陷。 – 当一个软件缺陷被激活时,便产生一个软件故障;
同一个软件缺陷在不同条件下被激活,可能产生 不同的软件故障。
– 软件故障如果没有及时的容错措施加以处理,便 不可避免地导致软件失效;同一个软件故障在不 同条件下可能产生不同的软件失效。
2.2 软件测试的概念
• 广义的软件测试是由确认、验证、测试3个方 面组成。
– 确认:评估将要开发的软件产品是否正确无误、 可行和有价值的。确认意味着确保一个待开发软 件是正确无误的,是对软件开发构想的检测。
– 验证:检测软件开发的每个阶段、每个步骤结果 是否正确无误,是否与软件开发各阶段的要求或 期望的结果相一致。验证意味着确保软件会正确 无误地实现软件的需求,开发过程是沿着正确的 方向进行的。
• 软件测试相关标准逐步形成、完善。
培训内容
• 第一章 软件测试的发展 • 第二章 软件测试的定义 • 第三章 软件测试的模型 • 第四章 质量保证与测试 • 第五章 测试方法 • 第六章 测试策略 • 第七章 测试实施
第二章 软件测试的定义
• 2.1 软件生存周期 • 2.2 软件测试的概念 • 2.3 软件测试的对象 • 2.4 软件测试的分类 • 2.5 软件测试的目的 • 2.6 软件测试的原则 • 2.7 软件失效机理
• 测试伴随整个开发周期。 • 测试对象不仅是程序,还包括需求和设计。 • 相应开发活动完成,即可执行测试(例如:
需求分析完成,即可对需求进行测试) 。
3.2 W模型-应用
• 需求测试关注重点:
– 完备性 – 一致性 – 正确性 – 可行性 – 易修改性 – 易理解性 – 易测试性和可验证性
3.2 W模型-应用