




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 七 自动化测试 2 内容要点 自动化测试的意义自动化测试的引入自动化测试的原理和方法自动化测试生存周期 3 A 自动化测试的意义 软件测试工作量很大 常占到40 的开发时间 一些可靠性要求非常高的软件 甚至60 测试中的许多操作是重复性的 非智力性的和非创造性的 并要求做准确细致的工作 计算机就最适合于代替人工去完成这样的任务 自动化测试 编写软件去测试其它软件 编写驱动被测试应用程序的测试脚本以执行键盘 鼠标动作和后台进程并验证应用程序响应和行为 4 手工测试的局限性 无法做到覆盖所有代码路径机械 重复 工作量大许多与时序 死锁 资源冲突 多线程等有关的错误 通过手工测试很难捕捉到进行负载 性能测试 很难通过手工测试模拟大量数据或大量并发用户可靠性测试时 常需要模拟系统运行10年 几十年 以验证稳定性 这也是手工测试无法做到的如果有大量 几千 的测试用例 需要在短时间内 1天 完成 手工测试几乎不可能做到 5 自动化测试的好处 良好的可操作性 可重复性和高效率等缩短软件开发测试周期 让产品更快投放市场测试效率高 充分利用硬件资源 可运行更多 更频繁节省人力资源 降低测试成本增强测试的稳定性和可靠性提高测试的准确度和精确度 增加软件信任度能做负载 性能测试等手工不能做的事情可以选择受影响测试集 自动进行回归测试 6 B 自动化测试的引入 自动化测试有很多优点 但它只是测试工作的一部分 是对手工测试的一种补充 自动化测试不可能完全代替手工测试在功能逻辑测试 适用性测试 涉及物理交互性测试时 多采用黑盒测试的手工测试方法单元测试 集成测试 负载测试 性能测试 稳定性测试 可靠性测试等较适合自动化 7 建立正确的自动化测试目标 测试计划制定基本靠人一种测试工具不完全适用于所有测试自动测试不一定减轻工作量测试进度可能不一定缩短测试工具不一定易于使用测试覆盖率不会达到100 自动化测试很难普遍应用 一些软件很难自动化测试 可测性低的产品也不易自动化测试测试自动化初始代价高 技术要求也高 不要有过分的期待 8 建立正确的自动化测试目标 工具本身缺乏想象力和灵活性 据报道 自动化测试只能发现15 的缺陷 而手工测试可以发现85 的缺陷自动化测试对测试设计质量的依赖极大 错误的测试设计可能使测试情境与用户使用情境相背离测试工具在进行功能测试时 更多是做回归测试 这时工具不能发现更多的新问题 但可以保证对已经测试过部分的准确性和客观性 工具不能处理突发情况 自动化测试工具虽然能处理部分异常事件 但是对真正的突发事件和不能由软件解决的问题就无能为力 多数情况下 手工测试和自动化测试应该相结合 以最有效的方法来完成测试任务 9 适合自动化测试的场合 非常重要的测试涉及范围很广的测试对主要功能的测试容易自动化的测试很快有回报的测试运行最频繁的测试 10 不适合自动化的测试场合 那种不稳定软件的测试 开发周期很短的软件 一次性的软件等不适合开发测试工具进行自动化测试 测试自动化建立和维护等方面的负担可能会造成延误工期 成本浪费等问题 11 选择高效的自动化测试体系 应选择合理的点进行自动化 建立合理的自动化体系结构 编写合理的自动化测试代码 优秀自动化测试体系的七个属性应根据测试目标 有针对性地提高自己关注的属性 实施符合需要的自动化测试体系高效的自动化测试体系源于好的测试软件应根据需要和能力决定自主开发或选购适合的测试工具 12 优秀自动化测试体系的七个属性 可维护性是否很容易使测试更新跟上软件升级的步伐自动化测试的维护工作量过大可能导致整个测试自动化工作被全面否决 甚至束之高阁 高效性自动化测试的一个重要目标就是更经济地运行测试应在测试计划和设计阶段全面审视各方面因素 在科学合理的测试流程基础上利用优秀的自动化策略将自动化测试与手工测试有机结合 才能实现效率最大化 13 优秀自动化测试体系的七个属性 可靠性测试体制是否能给出精确而且可重现的结果兼容性是否允许测试用例为不同的测试目标而以不同方式组合可用性定制或更改测试用例是否容易 使用是否容易健壮性是否可以处理意外情况而不退出或终止可移植性在不同环境中运行测试的能力 14 C 自动化测试的原理和方法 测试自动化实现的基础可以通过设计的特殊程序模拟测试人员对计算机的操作过程 操作行为 或者类似于编译系统那样对计算机程序进行检查 测试自动化实现的原理和方法主要有代码静态和动态分析测试过程的捕获和回放 RecordandReplay 测试脚本技术虚拟用户技术测试管理技术 15 代码分析 白盒 代码分析类似于高级编译系统 一般针对不同的高级语言去构造分析工具定义类 对象 函数 变量等的使用规则 推理检查规则实现情况在分析时对代码进行语法扫描 找出不符合编码规范的地方根据某种质量模型评价代码质量生成系统的调用关系图等 16 代码分析 白盒 常用技术SyntaxanalysisParsingControlflowanalysisDataflowanalysisConstraintbasedanalysisAbstractinterpretationType effectsystemSymbolicexecution 17 程序 语法树 词法语法抽象 中间表示IR 连接 link 抽象 控制流图CFG 带内存抽象的IR 内存抽象pointer heap shapeanalysis 调用图CG ICFG 带值信息的IR 值抽象abstractinterpretation 带流信息的IR 控制流抽象 调用抽象 带符号信息的IR 流抽象dataflowanalysis 类型抽象type effectsystem 带类型抽象的IR 带约束信息的IR 约束抽象constraintsolving 符号抽象symbolicevaluation 其它 18 控制流图 voidm throwsException s1 if s2 thrownewException try s3 s4 catch Exceptione s5 entry s1 s2 throw s3 s4 s5 exit 异常分析哪些语句可能抛出异常 哪些异常可能被捕获 一个catch上可能捕获哪些异常 来源哪些模块 19 调用图 main A foo s1 B foo s1 A bar B bar s2 s2 A B 显式调用 隐式调用 语句标记 20 ICFG 过程间控制流图 InterproceduralCFG 概念一种全局的控制流视图 通过调用边 calledge 和调用返回边 returnedge 联系程序中的各个过程 entry exit call ret entry exit entry exit call ret 21 捕获 录制 和回放 黑盒 优点 简单 快捷缺点 灵活性差 优点 灵活性好缺点 复杂 工作量大 手工编写测试驱动 录制回放方式 22 捕获 录制 和回放 黑盒 捕获将用户每一步操作都记录下来 对GUI 记录下操作对象 以及相对应的操作 状态变化或是属性变化 所有的记录转换为一种脚本语言所描述的过程 以模拟用户操作 操作对象描述方式有两种 以用户界面的像素坐标描述 以逻辑对象 如窗口 按钮等 描述回放将脚本语言所描述的过程转换为屏幕上的操作 然后将被测系统的输出记录下来同预先给定的标准结果比较 这可以大大减轻黑盒测试的工作量 在迭代开发的过程中 能够很好地进行回归测试 23 捕获 录制 和回放 黑盒 目前的自动化性能测试几乎都采用录制 回放技术先由手工完成一遍需要测试的流程 同时由计算机记录下这个流程期间客户端和服务器端之间的通信信息 这些信息通常是一些协议和数据 并形成特定的脚本程序 然后在系统的统一管理下同时生成多个虚拟用户 并运行该脚本 监控硬件和软件平台的性能 提供分析报告或相关资料 这样 通过几台机器就可以模拟出成百上千的用户对应用系统进行负载能力的测试 24 脚本技术 脚本是一组测试工具执行的指令集合 也是计算机程序的一种形式 脚本可以通过录制测试产生 然后再做修改 减少直接编写的工作量 也可以直接用脚本语言编写脚本语言 vbscript javascirpt C子集 Python等 25 脚本技术 脚本技术可分为以下几类 线性脚本结构化脚本共享脚本数据驱动脚本关键字驱动脚本 26 脚本技术 脚本技术可分为以下几类 线性脚本 录制手工执行的测试用例得到的脚本缺点 不具有逻辑判断能力 可维护性差 效率低下 代码量大 兼容性差优点 简单 易得 用作程序操作的演示很不错结构化脚本 类似于结构化程序 具有各种逻辑结构 顺序 分支 循环 甚至函数调用功能优点 脚本的逻辑判断能力和处理问题的灵活性得到增强 基本实现脚本的模块化 缺点 脚本内仍然捆绑测试信息 即键盘 鼠标动作表示的输入被固化在脚本中 测试修改和定制非常复杂困难 27 脚本技术 脚本技术可分为以下几类 共享脚本 指某个脚本可被多个测试用例使用 即脚本语言允许一个脚本调用另一个脚本优点 可将公共操作放在一个地方提供调用实现共享 可重用性加强 在需要更改此部分的代码时 不用修改所有使用此公共操作的脚本 大大减少了维护开销 数据驱动脚本 将测试输入存储在独立的数据文件中 数据和执行控制分离 28 脚本技术 脚本技术可分为以下几类 关键字驱动脚本 用关键词序列表示测试优点 界面元素名与具体测试对象分离 测试描述与测试实现分离 脚本与数据分离缺点 需要有驱动程序去解释测试描述 将关键词序列变为可执行的程序 29 脚本示例 点击 开始 菜单选择菜单目录 程序 附件 计算器 将计算器移动到屏幕中间位置按键计算7 8 15关闭计算器 30 自动化测试工具的特征 支持脚本化语言 ScriptingLanguage 对程序界面中对象的识别能力支持函数的可重用支持外部函数库抽象层 将程序界面中的对象实体映射成逻辑对象分布式测试 DistributedTest 的支持支持数据驱动测试 Data DrivenTest 错误处理调试器 Debugger 源代码管理 持续集成 持续构建支持脚本的命令行 CommandLine 方式 31 自动化测试工具的应用 测试用例的生成 测试输入 测试输出 测试操作指令等测试的执行与控制 包括单机运行和网络多机分布式的运行 在节假日的运行 测试个案调用控制 测试对象 测试范围与测试版本的控制等测试结果与标准输出进行对比不吻合测试结果的分析处理 不吻合预期的测试结果的分析 记录 分类和报告总体测试状况的统计及报表的产生自动化测试与开发中产品每日构建的配合 32 自动化测试工具的应用 确定系统最优的硬件配置检查系统的可靠性检查系统硬件和软件的升级情况评估新产品模仿各种设备监控软硬件系统 33 D 自动化测试生存周期 自动化测试生存周期 2 测试工具获取 3 自动化测试引入过程 5 测试执行与管理 6 测试评审与评估 4 测试计划 设计与开发 1 自动化测试决定 包括制订测试计划 建立测试环境 测试设计和设计开发 包括测试过程分析和测试工具的考查 34 测试自动化的发展阶段与计划 35 完备的自动化测试体系 开发环境开发语言 库程序 驱动程序 开发工具 测试用例管理测试用例的定义 设置 分类和组合运行 分析报告单运行结果报告 多运行综合报告 长期走势报告 运行环境机器池 自动安装和配置 运行 代码管理存储 编译 硬件 基础设施实验室 机器 网络 36 实例 37 每日构建 自动化测试 SQLAdapter XMLMessage 表 表 表 SQL数据库 BizTalk服务器 BizTalk应用 案例 BizTalkSQLAdapter 38 每日构建 自动化测试 版本CheckOut cvs svn SourceSafe git 项目构建 make msdev ant 测试环境的搭建安装并验证BizTalk SQL数据库等已安装设置好测试目标的安装与配置在BizTalk中设置一个使用SQLAdapter的应用在SQL数据库中建立测试表格运行测试生成一个预定格式的Message XML字符串 发送给BizTalk检验结果访问SQL数据库 验证数据到达无误 验证系统日志中无意外事件清理删除BizTalk中的应用 删除SQL中的表格其他意外情况下的特殊清理 39 测试用例的分级
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版招投标投标担保合同解除条件及法律后果
- 2025年度智能设备采购与管理规范合同
- 2025年度智能硬件开发与应用合伙协议
- 新能源微电网稳定性控制与新能源发电系统谐波治理报告
- 2025电子商务平台会员管理与基础应用服务协议
- 2025版离婚房屋下载全新协议范本
- 2025年智能停车场车位销售及管理服务合同范本
- 2025版商场内快闪店场地租赁与推广合作合同
- 2025版图书售后服务与客户保障合同范本
- 2025年度水利工程专用土工布采购及施工服务合同
- 八年级下册美术提纲
- 内部准驾证管理办法
- 2023年单螺杆泵的结构设计与性能分析全套图纸
- 无创正压通气护理
- GB/T 20481-2017气象干旱等级
- 风电发电机组电控系统知识-安全链部分课件
- 医疗质量管理工具课件
- 急性上呼吸道感染病人的护理
- 小学教师量化考核表
- 房建监理平行检查记录表格模板(参考版)
- 计算机操作系统(第四版)-汤小丹-课后习题答案
评论
0/150
提交评论