已阅读5页,还剩69页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
自动化测试与iatf框架介绍 wiseflytechnologycorporation boriswangwangzhengbing 人与工具 工欲善其事 必先利其器 荀子曰 吾尝终日而思矣 不如须臾之所学也 吾尝 足支 而望矣 不如登高之博见也 登高而招 臂非加长也 而见者远 顺风而呼 声非加疾也 而闻者彰 假舆马者 非利足也 而致千里 假舟辑者 非能水也 而绝江河 君子生非异也 善假于物也 君子性非异也 善假于物也 测试面临的问题 测试用例会越来越多 工作量越来越大 而且许多测试用例会被不断地重复执行 如果由手工来完成 不仅占用很多人力资源 而且工作重复单调 会影响测试人员的积极性 降低测试工作人员的热情 怎么办 自动化测试 目录 第一部分自动化测试测试自动化的内涵自动化测试的原理测试工具的分类和选择自动化测试成熟度自动化测试项目的开展第二部分ipshot自动化项目介绍itaf框架介绍关于ipshot automation1 01自动化测试演示讨论 测试自动化内涵 本节内容什么是自动化测试自动化测试特点手工测试vs自动化测试 什么是自动化测试 用工具代替 辅助人工完成软件测试活动的过程 泛指所有能用工具辅助进行的有关测试活动 自动化测试可分为测试过程自动化和测试结果分析自动化 测试过程的自动化指的是不用手工逐个的对用例进行测试 测试结果分析自动化指的是不用人工一点点去分析测试过程中的中间结果或数据流 软件自动化测试就是模拟手动测试步骤 执行用某种程序设计语言编制的测试程序 控制被测软件的执行 完成全自动或半自动测试的过程 全自动测试就是指在自动测试过程中 根本不需要人工干预 由程序自动完成测试的全过程 半自动测试就是指在自动测试过程中 需要手动输入测试用例或选择测试路径 再由自动测试程序按照人工指定的要求完成自动测试 什么是自动化测试 自动化测试焦点集中在测试执行 主要是由测试工具自动地完成测试 测试自动化指 一切可以由计算机系统自动完成的测试任务都已经由计算机系统或软件工具 程序来承担并自动执行 测试自动化理念全过程所有测试活动包括测试设计测试管理 自动化测试测试工具测试执行单项活动 自动化测试特点 自动运行的速度快测试结果准确高复用性永不疲劳可以执行一些手工测试困难或不可能进行的测试可以更好地硬件资源 节省人力资源 降低企业成本测试具有一致性和可重复性可以更快地将软件推向市场可以增加软件信任度高昂的团队士气 手工测试vs 自动测试 手工测试 发现缺陷率高容易实施创造性 灵活性覆盖率量化困难重复测试效率低不一致性 可靠性低依赖人力资源 高效率 速度 高复用性覆盖率容易度量准确 可靠不知疲劳激励团队士气机械 难以发现缺陷一次性投入大 手工测试vs自动化 手工测试原因项目时间少测试工具花钱习惯手工测试测试人员缺少自动化技术必须手工用户体验 相关性等比较主观的不稳定的 经常变化的核心至关重要的 必须靠人来非常复杂的 自动化成本过高的 手工测试vs自动化 自动化神话自动化总能保证软件质量所有项目都适合自动化自动化只有优点适合自动化回归测试每日构建和冒烟测试不太变化的重复测试 第n 1轮 数据驱动测试性能 安全 互相配合 目录 第一部分自动化测试测试自动化的内涵自动化测试的原理测试工具的分类和选择自动化测试成熟度自动化测试项目的开展第二部分ipshot自动化项目介绍itaf框架介绍关于ipshot automation1 01自动化测试演示讨论 自动化测试原理 本节内容代码分析gui对象识别dom对象识别捕获和回放脚本技术自动比较技术 自动化测试原理 自动化测试的实现方法 对于静态测试和动态测试有很大的不同 动态测试的自动化实现主要通过特定的程序来模拟软件的操作过程或操作行为 然后对软件所做出的反应或输出结果进行检查或验证 静态测试的自动化实现是按照代码规范和软件开发的最佳实践建立各种代码规则 然后依据这些规则对代码进行自动扫描 发现和规则不匹配的各种问题 软件测试自动化实现的原理和方法主要有 直接对代码进行静态和动态分析 测试过程的捕获和回放 测试脚本技术 自动比较技术 虚拟用户技术和测试管理技术等 代码分析 代码分析类似于高级编译系统 一般是针对不同的高级语言去构造分析工具 在工具中定义类 对象 函数 变量和常量等各个方面的规则 在分析时 通过对代码进行扫描和解析 找出不符合编码规范的地方 从而给出错误信息和警告信息 还可以根据某种质量模型评价代码的质量 生成系统的调用关系图 评估代码的复杂度等 代码分析 举例1 用findbugs做java代码的分析 findbugs是一个静态分析工具 它检查类或jar文件 将字节码与一组缺陷模式 java代码规范 进行对比以发现各种可能存在的问题 通过静态分析工具可以在不运行程序的情况下对软件进行测试 更早地发现软件中的缺陷 安装findbugs findbugs可以独立运行 也可以作为eclipse的插件 设置java环境 安装jdk 配置环境变量安装eclipse 下载eclipse软件包并解压在eclipse中安装findbugs插件url http findbugs cs umd edu eclipse 代码分析 举例1 用findbugs做java代码的分析 续 安装成功后 在eclipse的 窗口 首选项 中 展开 java 后发现findbugs项 从中可以发现findbugs定义了很多种检查器 detector 而且分为不同的模式 pattern 和类型 category 纠错 correctness 不合理的 dodgy 不好的实践 badpractice 安全性 security 性能 performance 和多线程纠错 multithreadedcorrectness 等问题 使用findbugs 创建或打开一个java项目选择该项目并单击右键 从菜单中执行 findbugs 运行后的警告信息会显示在右下区域的problems视图中双击某条警告信息会自动定位到编辑器中对应的源代码行 代码分析 举例1 用findbugs做java代码的分析 续 代码分析 举例1 用findbugs做java代码的分析 续 上述例子中没有执行代码 而是通过对代码的逐行扫描来分析代码 找出问题 这种静态测试是通过事先所建立的代码规则 由软件工具来自动执行 代码静态分析的关键是建立各种规则 而这种规则的建立依赖于相应编程语言的语法 利用这些规则可以找出java源程序的许多问题 如 没有用到的变量 多余的变量创建操作 空的catch块等 还可以自定义一些代码规则来供静态分析工具使用 例如 代码复杂度和代码重复率是代码质量关心的主要问题之一 对于代码复杂度可能是含有过多的条件语句 if while或for语句等 造成的 可通过圈复杂度的度量来检查 当圈复杂度为10或超过10时 一般就表明该方法过于复杂 所以 可设立如下的代码规则 gui对象识别 功能测试工具需要和用户界面打交道 就要能操作 控制用户界面上的各种对象 所以大部分功能测试工具是基于gui对象识别技术来实现自动化测试的 基于gui对象识别和控制的自动化测试工具 一般在脚本语言中采用windowsapi applicationprogramminginterface 应用程序编程接口 函数调用的方法来实现 windowsapi涵盖了系统的管理 诊断 图形和多媒体 网络 安全性等各个方面 但在自动化测试工具中或对象识别中 主要使用windowsuserinterface 用户界面 一类的api 这类函数封装了操作应用软件所需的接口函数 包括键盘和鼠标操作的捕获 以及窗口 按钮 选择项等的识别和操作 自动化测试工具可以基于这些api函数 来完成对象的识别和操作 gui对象识别 举例2 用qtp识别windows对象 安装功能测试工具qtp10 0工具下载url 192 168 0 11 share toolsqtp安装成功后 打开qtp 点击对象属性获取工具就可对windows对象和web对象进行识别了 dom对象识别 有些测试工具 如selenium 直接访问web浏览器 利用脚本语言操纵浏览器和web页面 这时就需要对dom documentobjectmodel 文档对象模型 对象进行识别 从而模拟用户控制浏览器中页面元素的操作 也只有获取dom对象的属性 才可以验证页面实际的表现 即确定实际结果和期望结果是否一致 dom定义了html的标准对象集合 是html文档的编程接口 与浏览器 平台 语言无关 dom也就是定义了标准的访问和操纵html对象的方式 使得其他程序或软件可以访问页面的标准组件 dom以层次结构组织节点 内容等相关信息 从而将一个web页面转换为一个基于树或基于对象的多层次集合 dom的本质是建立网页与脚本语言或程序语言沟通的桥梁 dom对象识别 举例3 用iewebdeveloper识别dom对象 安装iewebdeveloper工具下载url dom对象识别 举例3 用firebug识别dom对象 最好的dom识别工具是firebug 它可以javascript文件方式支持在ie opera和safari等浏览器中运行 但推荐作为firefox的一个插件使用 firebug功能强大 集html查看和编辑 javascript控制台 css script dom查看器 网络状况监视器 测试于一体 可从各个不同的角度剖析web页面内部的细节层面 安装firebug工具下载url 也可使用firefox浏览器加载附加组件方式安装打开firefox工具下的firebug后 在浏览器载入任何页面时 firebug都可以生成dom树 点击html标签 鼠标只要停在某个对象上 浏览器页面上相应的对象就会被明显标识出来 点击某个对象属性的参数 firebug还可以编辑html 如果点击dom标签 可以更详细的了解页面的dom结构及其元素 dom对象识别 举例4 用firebug识别dom对象 续 捕获和回放 代码分析是一种白盒测试的自动化方法 捕获和回放则是一种黑盒测试的自动化方法 捕获是将用户每一步操作都记录下来 这种记录的方式有两种 程序用户界面的像素坐标或程序显示对象 窗口 按钮 滚动条等 的位置 以及相对应的操作 状态变化或是属性变化 所有的记录转换为一种脚本语言所描述的过程 以模拟用户的操作 回放时 将脚本语言所描述的过程转换为屏幕上的操作 然后将被测系统的输出记录下来同预先给定的标准结果比较 这可以大大减轻黑盒测试的工作量 在迭代开发的过程中 能够很好地进行回归测试 关于自动化测试中的 录制 回放 技术目前的自动化负载测试解决方案几乎都是采用 录制 回放 的技术 所谓的 录制 回放 技术 就是先由手工完成一遍需要测试的流程 同时由计算机记录下这个流程期间客户端和服务器端之间的通信信息 这些信息通常是一些协议和数据 并形成特定的脚本程序 script 然后在系统的统一管理下同时生成多个虚拟用户 并运行该脚本 监控硬件和软件平台的性能 提供分析报告或相关资料 这样 通过几台机器就可以模拟出成百上千的用户对应用系统进行负载能力的测试 脚本技术 脚本是一组测试工具执行的指令集合 也是计算机程序的一种形式 脚本可以通过录制测试的操作产生 然后再做修改 这样可以减少脚本编程的工作量 也可以直接用脚本语言编写脚本 自动化测试脚本和程序代码比较接近 包括指令和数据 还包括其他内容 如 同步 何时进行下一个输入 比较信息 是测试验证点所需要的 包括比较什么 如何比较及和谁比较 捕获何种屏幕数据及存储在何处 从何处读取测试数据 控制信息等 脚本技术 测试脚本可以分为以下几类 线性脚本 是录制手工执行的测试用例得到的脚本 结构化脚本 类似于结构化程序设计 具有各种逻辑结构 共享脚本 是指某个脚本可被多个测试用例使用 数据驱动脚本 将测试输入存储在独立的数据文件中 关键字驱动脚本 是数据驱动脚本的逻辑扩展 线性脚本是最简单的脚本 如同流水账那样描述测试过程 一般由自动录制得来 而结构化脚本是对线性脚本的加工 类似于结构化设计的程序 是脚本优化的必然途径之一 而数据驱动脚本和关键字驱动脚本可以进一步提高脚本编写的效率 极大地降低脚本维护的工作量 目前大多数测试工具都支持数据驱动脚本和关键字驱动脚本 脚本技术 举例5 数据驱动脚本 脚本技术 举例6 关键字驱动脚本 自动比较技术 没有验证点的自动化测试就不能被称为测试 验证某个测试用例的结果 实质上就是将实际结果 输出 与期望结果进行比较 自动化测试时 预期输出是事先定义的 要么插入脚本中或记录在数据库 数据文件中 然后在测试过程中运行脚本 将捕获的结果和预期的输出进行比较 从而确定测试用例是否通过 通过自动比较技术 验证实际获得的测试结果和事先定义的期望结果是否一致 如果不一致 将记录所执行的具体日志 log 报告错误 自动比较可以是最简单的数字比较 也可能是比较复杂的图像比较 例如 selenium中自动比较有两类模式 验证 verify 和断言 assert 它们所具有的功能 命令 是非常相近的 只是对验证结果的处理不同 当assert失败时 则退出当前测试 而当verify失败时 测试会继续运行 自动比较的命令有几十个 同样在qtp中也有标准检查点 图片检查点 表格检查点等9种检查点来满足测试的需要 自动比较技术 从自动比较的方式和技术看 自动比较可分为以下四类 静态比较和动态比较 动态比较是在测试过程中进行比较 静态比较是通过另外一个单独的工具进行结果比较 简单比较和复杂比较 简单比较要求实际结果和期望结果完全匹配 复杂比较是一种智能比较 允许实际结果和期望结果有一定的差异 敏感性测试比较和健壮性测试比较 敏感性测试比较要求比较尽可能多的信息 健壮性测试比较只比较最少量 最需要的信息 比较过滤器 对实际输出结果和期望输出结果进行预先处理 执行过滤任务之后再进行比较 自动比较技术 举例6 selenium中验证命令的示例 目录 第一部分自动化测试测试自动化的内涵自动化测试的原理测试工具的分类和选择自动化测试成熟度自动化测试项目的开展第二部分ipshot自动化项目介绍itaf框架介绍关于ipshot automation1 01自动化测试演示讨论 测试工具的分类和选择 本节内容测试工具分类商业工具解决方案开源工具解决方案 测试工具分类 根据测试方法不同 分为白盒测试工具和黑盒测试工具 静态测试工具和动态测试工具等 根据工具的来源不同 分为开源测试工具 多数是免费的 和商业测试工具 自主开发的测试工具和第三方测试工具等 根据测试的对象和目的 分为单元测试工具 功能测试工具 性能测试工具 测试管理工具等 测试工具的分类 静态测试工具 扫描分析 findbugs jtest c test代码检查lint动态测试工具 内存检测工具 boundschecker 录制 回放工具 负载测试工具 监控工具 性能检查truetime 商业工具解决方案 单元测试 parasoftjtest c test prqa c c compuwaredevpartnerforvisualc compuwarebouncechecker ibmrationalpurifyplus purecoverage compuwaretruecoverage telelogiclogiscop功能测试 hpqtp winrunner ibmrationalfunctionaltester robot seguesilktest oracleempirixe testsuite compuwaretestpartner parasoftwebking testcomplete性能测试 hploadrunner borlandsilkperformer ibmrationalperformancetester radviewwebload compuwareqaload 开源工具解决方案 单元测试 junit xunit家族功能测试 selenium abbot robotframworkautoit autohotkey性能测试 jmeter数据库 dbprobe网络监控 wireshark ethereal netcat snort sniffer http www opensourcetesting org 测试工具分类 举例7 junit 测试工具分类 举例7 selenium 测试工具分类 举例8 boundschecker boundschecker 是一个run time错误检查工具 定位程序在运行时期发生的的各种错误 能很好的和c 开发环境集成 能检测的错误包括 1 指针操作和内存 资源泄漏错误 比如 内存泄漏 资源泄漏 对指针变量的错误操作 2 内存操作方面的错误 比如 内存读 写溢出 使用未初始化的内存 3 api函数使用的错误 平台兼容性两种运行模式 activecheck低级模式finalcheck高级模式 测试工具分类 举例8 boundschecker 续 测试工具分类 举例9 c test c test是一个c c 单元级测试工具 自动测试c c 类和函数或部件 而不需要编写测试用例 测试驱动程序或桩调用代码 静态检查iinformation提示信息 不一定是错误pvpossibleviolation可能不符合规则vviolation不符合规则psvpossiblesevereviolation可能严重不符合规则svsevereviolation严重不符合规则 测试工具分类 举例9 c test 续 动态检查ok通过的测试用例数fldfailed没有通过的errerror出错的tsttested已经测试过的tottotal生成的测试用例总数lclinecoverage语句覆盖bbcbasicblockcoverage基本路径覆盖pcpathcoverage路径覆盖dcdescisioncoverage判定覆盖mcdcmodifiedconditiondescisioncoverage条件 判定覆盖ccconditioncoverage条件覆盖 测试工具分类 举例9 c test 续 工具选择的过程 目录 第一部分自动化测试测试自动化的内涵自动化测试的原理测试工具的分类和选择自动化测试成熟度自动化测试项目的开展第二部分ipshot自动化项目介绍itaf框架介绍关于ipshot automation1 01自动化测试演示讨论 自动化测试成熟度 在过去的日子中 自动化的测试工具只是被看作是一种捕获和回放的工具 当前这个神话仍然在很多测试人员的思想中 而事实上自动化测试已经远不止捕获和回放这么简单了 按照成熟度自动化的测试可以被划分为5个级别 自动化测试成熟度 级别1 捕获和回放 这是使用自动化测试的最低的级别 同时这并不是自动化测试最有用的使用方式 自动化测试成熟度 级别2 捕获 编辑和回放 在这个级别中 使用自动化的测试工具来捕获想要测试的功能 将测试脚本中的任何写死的测试数据 比如名字 帐号等等 从测试脚本的代码中完全删除 并将他们转换成为变量 自动化测试成熟度 级别3 编程和回放 这个级别是面对多个构建版本的有效使用测试自动化的第一个级别 自动化测试成熟度 级别4 数据驱动的测试 对于自动化测试来说这是一个专业的测试级别 拥有一个强大的测试框架 这个测试框架是基于能够根据被测试系统的变化快速创建一个测试脚本的测试功能库 维护的成本相对是比较低的 在测试中会使用到大量真实的数据 自动化测试成熟度 级别5 使用动作词的测试自动化 这是自动化测试的最高级别 主要的思想是将测试用例从测试工具中分离出来 自动化测试成熟度 自动化测试技术发展趋势 目录 第一部分自动化测试测试自动化的内涵自动化测试的原理测试工具的分类和选择自动化测试成熟度自动化测试项目的开展第二部分ipshot自动化项目介绍itaf框架介绍关于ipshot automation1 01自动化测试演示讨论 自动化测试项目的开展 不正确的观念或不现实的期望缺乏具有良好素质 经验的测试人才测试工具本身的问题影响测试的质量测试脚本的质量低劣没有进行有效的 充分的培训没有考虑到公司的实际情况 盲目引入测试工具没有形成一个良好的使用测试工具的环境其它问题 测试自动化普遍存在的问题 正确的认识找准测试自动化的切入点把测试脚本开发纳入整个软件开发体系软件程序开发和测试自动化不可分离资源的合理调度测试自动化依赖测试流程和测试用例降低测试自动化的投入 提高其产出 自动化测试项目的开展 对策 自动化测试项目的开展 建立自动化测试体系 缺陷报告 代码 功能测试 性能测试 单元测试 录制 编写 软件 脚本 测试环境 配置管理 配置管理 自动化测试项目的开展 系统解决方案 目录 第一部分自动化测试测试自动化的内涵自动化测试的原理测试工具的分类和选择自动化测试成熟度自动化测试项目的开展第二部分ipshot自动化项目介绍itaf框架介绍关于ipshot automation1 01自动化测试演示讨论 关于itaf itaf ipshottestingautomationframework即ipshot自动化测试框架框架的核心是用vbscript脚本语言编写vbs文件 可以以资源方式将它引入到qtp测试脚本 为qtp提供更多函数支持 当框架足够成熟的时候 可以实现只使用封装过的函数而不接触qtp脚本 再辅以其它脚本语言和测试管理工具组成的一个测试系统 最终实现对测试对象的测试自动化 该框架适用于大部分的webgui和clientgui功能自动化测试 itaf框架结构 框架各模块 uut被测对象这里的测试对象包括 ipshot管理系统的功能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教版九年级化学化学使世界变得更加绚丽多彩教学课件
- 员工思想调查报告
- 甲状腺引流护理
- 《如何制定经营目标》课件
- 基于二零二四年度的股权转让合同
- 护理门诊申报答辩
- 自来水承包合同 3篇
- 2024年度电子合同签署平台开发与运营合同3篇
- 新生儿完整护理教程
- 春节园游会活动方案
- 水平定向钻施工技术培训的讲义课件
- 骆驼的抗沙标配(2020新疆中考说明文阅读试题含答案)
- 铁路客运员(初级)理论考试复习题库汇总(含答案)
- 银行信贷业务中的法律风险防范与控制
- 高中化学-探究亚铁盐和铁盐的性质及转化教学设计学情分析教材分析课后反思
- 空气压缩机技术规范标准
- 铜及铜合金物理冶金基础-相图、紫铜
- 国家有关安全生产的方针政策法律法规
- 《临床输血技术规范》之输血指南
- 色彩的三属性与色立体
- 大国工匠彭祥华PPT
评论
0/150
提交评论