测试技术-深层讲解.pptx_第1页
测试技术-深层讲解.pptx_第2页
测试技术-深层讲解.pptx_第3页
测试技术-深层讲解.pptx_第4页
测试技术-深层讲解.pptx_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件测试 康光腾 shellframe 需求分析设计编程测试维护 软件生存周期图 制定规划 系统与软件需求分析 软件设计 编程和单元测试 集成与系统测试 运行与维护 定义阶段 开发阶段 运行与维护阶段 软件测试的生存周期模型 软件测试的概念及目的 软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试 甚至根据需要编写不同的测试工具 设计和维护测试系统 对测试方案可能出现的问题进行分析和评估 执行测试用例后 需要跟踪故障 以确保开发的产品适合需求 80 20原则测试的目的是为了发现尽可能多的缺陷 不是为了说明软件中没有缺陷 成功的测试在于发现了迄今尚未发现的缺陷 所以测试人员的职责是设计这样的测试用例 它能有效地揭示潜伏在软件里的缺陷 软件测试的分类 从是否需要执行被测试软件的角度分类 静态测试和动态测试 如果在测试过程中执行被测试软件 则称为动态测试 反之则为静态测试 从测试是否针对软件结构与算法的角度分类 白盒测试和黑盒测试 如果在测试过程中不关心软件的内部结构和具体实现算法 在无需了解软件结构与算法的情况下进行测试 称之为黑盒测试 反之则为白盒测试 从测试的不同阶段分类 单元测试 集成测试 系统测试 验收测试 分类表 黑盒测试 黑盒测试也称功能测试 它是通过测试来检测每个功能是否都能正常使用 在测试中 把程序看作一个不能打开的黑盒子 在完全不考虑程序内部结构和内部特性的情况下 在程序接口进行测试 它只检查程序功能是否按照需求规格说明书的规定正常使用 程序是否能适当地接收输入数据而产生正确的输出信息 黑盒测试着眼于程序外部结构 不考虑内部逻辑结构 主要针对软件界面和软件功能进行测试 黑盒测试的流程测试计划 测试设计 测试开发 测试执行 测试评估 白盒测试 白盒测试也称结构测试或逻辑驱动测试 它是按照程序内部的结构测试程序 通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行 检验程序中的每条通路是否都能按预定要求正确工作 这一方法是把测试对象看作一个打开的盒子 测试人员依据程序内部逻辑结构相关信息 设计或选择测试用例 对程序所有逻辑路径进行测试 通过在不同点检查程序的状态 确定实际的状态是否与预期的状态一致 因此白盒测试又称为结构测试或逻辑驱动测试 白盒测试法的覆盖标准有逻辑覆盖 循环覆盖和基本路径测试 其中逻辑覆盖包括语句覆盖 判定覆盖 条件覆盖 判定 条件覆盖 条件组合覆盖和路径覆盖 静态测试 静态测试是指不运行被测程序本身 仅通过分析或检查源程序的语法 结构 过程 接口等来检查程序的正确性 对需求规格说明书 软件设计说明书 源程序做结构分析 流程图分析 符号执行来找错 静态方法通过程序静态特性的分析 找出欠缺和可疑之处 静态测试结果可用于进一步的查错 并为测试用例选取提供指导 静态测试包括代码检查 静态结构分析 代码质量度量等 它可以由人工进行 充分发挥人的逻辑思维优势 也可以借助软件工具自动进行 代码检查包括代码走查 桌面检查 代码审查等 主要检查代码和设计的一致性 代码对标准的遵循 可读性 代码的逻辑表达的正确性 代码结构的合理性等方面 可以发现违背程序编写标准的问题 程序中不安全 不明确和模糊的部分 找出程序中不可移植部分 违背程序编程风格的问题 包括变量检查 命名和类型审查 程序逻辑审查 程序语法检查和程序结构检查等内容 动态测试 动态测试是指通过运行被测程序 检查运行结果与预期结果的差异 并分析运行效率和健壮性等性能 这种方法由三部分组成 构造测试实例 执行程序 分析程序的输出结果 所谓软件的动态测试 就是通过运行软件来检验软件的动态行为和运行结果的正确性 目前 动态测试也是公司的测试工作的主要方式 动态测试的步骤单元测试集成测试系统测试验收测试回归测试 单元测试单元测试也称为模块测试 它是开发者编写的一小段代码 用于检验被测代码的一个很小的 很明确的功能是否正确 通常而言 一个单元测试是用于判断某个特定条件 或者场景 下某个特定函数的行为 单元测试是由程序员自己来完成 最终受益的也是程序员自己 可以这么说 程序员有责任编写功能代码 同时也就有责任为自己的代码编写单元测试 执行单元测试 就是为了证明这段代码的行为和我们期望的一致 集成测试也叫组装测试 是单元测试的逻辑扩展 它的最简单的形式将两个已经测试过的单元组合成一个组件 并且测试它们之间的接口 从这一层意义上讲 组件是指多个单元的集成聚合 在现实方案中 许多单元组合成组件 而这些组件又聚合成程序的更大部分 方法是测试片段的组合 并最终扩展进程 将您的模块与其他组的模块一起测试 最后 将构成进程的所有模块一起测试 系统测试系统测试是将经过测试的子系统装配成一个完整系统来测试 它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法 系统测试的目的是对最终软件系统进行全面的测试 确保最终软件系统满足产品需求并且遵循系统设计 验收测试验收测试是部署软件之前的最后一个测试操作 验收测试的目的是确保软件准备就绪 并且可以让最终用户将其用于执行软件的既定功能和任务 验收测试是向未来的用户表明系统能够像预定要求那样工作 经集成测试后 已经按照设计把所有的模块组装成一个完整的软件系统 接口错误也已经基本排除了 接着就应该进一步验证软件的有效性 这就是验收测试的任务 即软件的功能和性能如同用户所合理期待的那样 单元测试 单元测试是在软件开发过程中要进行的最低级别的测试活动 在单元测试活动中 软件的独立单元将在与程序的其他部分相隔离的情况下进行测试 单元测试不仅仅是作为无错编码一种辅助手段在一次性的开发过程中使用 单元测试必须是可重复的 无论是在软件修改 或是移植到新的运行环境的过程中 因此 所有的测试都必须在整个软件系统的生命周期中进行维护 经常与单元测试联系起来的另外一些开发活动包括代码走读 Codereview 静态分析 Staticanalysis 和动态分析 Dynamicanalysis 静态分析就是对软件的源代码进行研读 查找错误或收集一些度量数据 并不需要对代码进行编译和执行 动态分析就是通过观察软件运行时的动作 来提供执行跟踪 时间分析 以及测试覆盖度方面的信息 单元测试是由程序员自己来完成 最终受益的也是程序员自己 可以这么说 程序员有责任编写功能代码 同时也就有责任为自己的代码编写单元测试 执行单元测试 就是为了证明这段代码的行为和我们期望的一致 由谁测试 单元测试与其他测试不同 单元测试可看作是编码工作的一部分 应该由程序员完成 也就是说 经过了单元测试的代码才是已完成的代码 提交产品代码时也要同时提交测试代码 测试部门可以作一定程度的审核 对于程序员来说 如果养成了对自己写的代码进行单元测试的习惯 不但可以写出高质量的代码 而且还能提高编程水平 单元测试不仅仅是作为无错编码一种辅助手段在一次性的开发过程中使用 单元测试必须是可重复的 无论是在软件修改 或是移植到新的运行环境的过程中 因此 所有的测试都必须在整个软件系统的生命周期中进行维护 经常与单元测试联系起来的另外一些开发活动包括代码走读 Codereview 静态分析 Staticanalysis 和动态分析 Dynamicanalysis 静态分析就是对软件的源代码进行研读 查找错误或收集一些度量数据 并不需要对代码进行编译和执行 动态分析就是通过观察软件运行时的动作 来提供执行跟踪 时间分析 以及测试覆盖度方面的信息 单元测试的优点它是一种验证行为 它是一种设计行为 它是一种编写文档的行为 它具有回归性 系统测试 系统测试 英文是SystemTesting 是将已经确认的软件计算机硬件 外设 网络等其他元素结合在一起 进行信息系统的各种组装测试和确认测试 系统测试是针对整个产品系统进行的测试 目的是验证系统是否满足了需求规格的定义 找出与需求规格不符或与之矛盾的地方 从而提出更加完善的方案 系统测试发现问题之后要经过调试找出错误原因和位置 然后进行改正 是基于系统整体需求说明书的黑盒类测试 应覆盖系统所有联合的部件 对象不仅仅包括需测试的软件 还要包含软件所依赖的硬件 外设甚至包括某些数据 某些支持软件及其接口等 由于系统测试的目的是验证最终软件系统满足用户规定的需求 因此测试内容很多 功能测试 即测试软件系统的功能是否正确 其依据是需求文档 如 产品需求规格说明书 由于正确性是软件最重要的质量因素 所以功能测试必不可少 健壮性测试 即测试软件系统在异常情况下能否正常运行的能力 健壮性有两层含义 一是容错能力 二是恢复能力 性能测试 即测试软件系统处理事务的速度 一是为了检验性能是否符合需求 二是为了得到某些性能数据供人们参考 例如用于宣传 用户界面测试 重点是测试软件系统的易用性和视觉效果等 安全性测试 是指测试软件系统防止非法入侵的能力 安全 是相对而言的 一般地 如果黑客为非法入侵花费的代价 考虑时间 费用 危险等因素 高于得到的好处 那么这样的系统可以认为是安全的 安装与卸载测试 步骤 步骤1 制定系统测试计划系统测试小组各成员共同协商测试计划 测试组长按照指定的模板起草 系统测试计划 该计划主要包括 测试范围 内容 测试方法测试环境与辅助工具测试完成准则人员与任务表项目经理审批 系统测试计划 步骤2 设计系统测试用例系统测试小组各成员依据 系统测试计划 和指定的模板 设计 撰写 系统测试用例 测试组长邀请开发人员和同行专家 对 系统测试用例 进行技术评审 步骤3 执行系统测试系统测试小组各成员依据 系统测试计划 和 系统测试用例 执行系统测试 将测试结果记录在 系统测试报告 中 用 缺陷管理工具 来管理所发现的缺陷 并及时通报给开发人员 步骤4 缺陷管理与改错从1至3 任何人发现软件系统中的缺陷时都必须使用指定的 缺陷管理工具 该工具将记录所有缺陷的状态信息 并可以自动产生 缺陷管理报告 开发人员及时消除已经发现的缺陷 开发人员消除缺陷之后应当马上进行回归测试 以确保不会引入新的缺陷 系统测试流程图 检查进入标准 检查结束标准 执行系统测试 建立测试环境 执行测试用例 记录测试结果 报告测试结果 管理软件错误 1 单元测试的主要目的是针对编码过程中可能存在的各种错误 例如用户输入验证过程中的边界值的错误 2 集成测试主要目的是针对详细设计中可能存在的问题 尤其是检查各单元与其它程序部分之间的接口上可能存在的错误 3 系统测试主要针对概要设计 检查了系统作为一个整体是否有效地得到运行 例如在产品设置中是否达到了预期的高性能4 验收测试通常由业务专家或用户进行 以确认产品能真正符合用户业务上的需要 需求 测试V模型 测试V模型是软件开发瀑布模型的变种 它反映了测试活动与分析和设计的关系 V模型从左到右 描述了基本的开发过程和测试行为 非常明确地标明了测试过程中存在的不同级别 并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系 模型左边依次下降的是开发过程各阶段 与此相对应的是右边依次上升的部分 即各测试过程的各个阶段 V模型的缺陷仅仅把测试过程作为在需求分析 系统设计及编码之后的一个阶段忽视了测试对需求分析 系统设计的验证 一直到后期的验收测试才被发现 功能测试 功能测试就是对产品的各功能进行验证 根据功能测试用例 逐项测试 检查产品是否达到用户要求的功能 功能测试也称为行为测试 根据产品特征 操作描述和用户方案 测试一个产品的特性和可操作行为以确定它们满足设计需求 本地化软件的功能测试 用于验证应用程序或网站对目标用户能正确工作 使用适当的平台 浏览器和测试脚本 以保证软件达到用户的需求 功能测试也叫黑盒测试或数据驱动测试 只需考虑各个功能 不需要考虑整个软件的内部结构及代码 一般从软件产品的界面 架构出发 按照需求编写出来的测试用例 输入数据在预期结果和实际结果之间进行评测 进而提出更加使产品达到用户使用的要求 性能测试 性能测试是通过自动化的测试工具模拟多种正常 峰值以及异常负载条件来对系统的各项性能指标进行测试 性能测试的目的是验证软件系统是否能够达到用户提出的性能指标 同时发现软件系统中存在的性能瓶颈 优化软件 最后起到优化系统的目的 1 评估系统的能力 测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力 并帮助作出决策 2 识别体系中的弱点 受控的负荷可以被增加到一个极端的水平 并突破它 从而修复体系的瓶颈或薄弱的地方 3 系统调优 重复运行测试 验证调整系统的活动得到了预期的结果 从而改进性能 检测软件中的问题 长时间的测试执行可导致程序发生由于内存泄露引起的失败 揭示程序中的隐含的问题或冲突 4 验证稳定性 可靠性 在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法 性能测试的步骤 性能测试的步骤1 制定目标和分析系统2 选择测试度量的方法3 学习的相关技术和工具4 制定评估标准5 设计测试用例6 运行测试用例7 分析测试结果 自动化测试 自动化测试一般是指软件测试的自动化 软件测试就是在预设条件下运行系统或应用程序 评估运行结果 预先条件应包括正常条件和异常条件 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程 通常 在设计了测试用例并通过评审之后 由测试人员根据测试用例中描述的规程一步步执行测试 得到实际结果与期望结果的比较 在此过程中 为了节省人力 时间或硬件资源 提高测试效率 便引入了自动化测试的概念 实施自动化测试之前需要对软件开发过程进行分析 以观察其是否适合使用自动化测试 通常需要同时满足以下条件 1 软件需求变动不频繁 2 项目周期足够长 3 自动化测试脚本可重复使用 自动化测试工具 QTP Load Runner 测试步骤 需求分析阶段主要针对产品的需求点测试计划阶段其中包括人员 软件硬件资源 测试点 集成顺序 进度安排和风险识别等内容 测试设计阶段一般由对需求很熟的高资深的测试工程师设计 需求点设计包括需求点简介 测试思路和详细测试方法 编写完成后需要进行评审 测试方案阶段主要是对测试用例和规程的设计 测试用例需要包括测试项 用例级别 预置条件 操作步骤和预期结果 其中操作步骤和预期结果需要编写详细和明确 测试用例应该覆盖测试方案 而测试方案又覆盖了测试需求点 这样才能保证客户需求不遗漏 同样 测试用例也需要评审 测试执行阶段执行测试用例 及时提交有质量的Bug和测试记录 测试报告等相关文档 测试关键点编写测试计划 测试用例 测试缺陷报告 并执行测试用例 搭建测试环境 详细测试步骤 1 书写测试计划2 审核测试计划 未通过返回第一步3 书写测试用例 4 审核测试用例 未通过返回第三步5 测试人员按照测试用例逐项进行测试活动 并且将测试结果填写在测试报告上 测试报告必须覆盖所有测试用例 6 测试过程中发现bug 将bug填写在bugzilla上发给集成部经理 bug状态NEW 7 集成部经理接到bugzilla发过来的bug7 1对于明显的并且可以立刻解决的bug 将bug发给开发人员 bug状态ASSIGNED 7 2对于不是bug的提交 集成部经理通知测试设计人员和测试人员 对相应文档进行修改 bug状态RESOLVED 决定设置为INVALID 7 3对于目前无法修改的 将这个bug放到下一轮次进行修改 bug状态RESOLVED 决定设置为REMIND 8 开发人员接到发过来的bug立刻修改 bug状态RESOLVED 决定设置为FIXED 9 测试人员接到bugzilla发过来的错误更改信息 应该逐项复测 填写新的测试报告 测试报告必须覆盖上一次中所有R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论