资源预览内容
第1页 / 共55页
第2页 / 共55页
第3页 / 共55页
第4页 / 共55页
第5页 / 共55页
第6页 / 共55页
第7页 / 共55页
第8页 / 共55页
第9页 / 共55页
第10页 / 共55页
亲,该文档总共55页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
软件测试 第4章 自动化测试,Kerry Zhu Zhu.KerryGmail.com http:/blog.csdn.net/Kerryzhu,人与工具,工欲善其事,必先利其器。荀子曰:吾尝终日而思矣,不如须臾之所学也。吾尝足支而望矣,不如登高之博见也。登高而招,臂非加长也,而见者远。顺风而呼,声非加疾也,而闻者彰。假舆马者,非利足也,而致千里。假舟辑者,非能水也,而绝江河。君子生非异也,善假于物也。君子性非异也,善假于物也。,http:/blog.csdn.net/Kerryzhu,测试面临的问题,测试用例会越来越多,工作量越来越大,而且许多测试用例会被不断地重复执行。如果由手工来完成,不仅占用很多人力资源,而且工作重复单调,会影响测试人员的积极性,降低测试工作人员的热情 怎么办?,自动化测试,本章内容,4.1 测试自动化的内涵 4.2 自动化测试的原理 4.3 测试工具的分类和选择 4.4 自动化测试的引入,本章内容,4.1 测试自动化的内涵 4.2 自动化测试的原理 4.3 测试工具的分类和选择 4.4 自动化测试的引入,4.1 测试自动化的内涵,4.1.1 简单的实验 4.1.2 自动化测试的例子 4.1.3 什么是自动化测试 4.1.4 自动化测试的特点和优势,简单的实验,批处理文件 Word的邮件合并功能,“工具”“信和邮件”“邮件合并”,Word中的宏,自动化测试的例子(1),先下载并安装Selenium IDE,http:/seleniumhq.org/projects/ide/,自动化测试的例子(2),录制操作 查看脚本 回放脚本,什么是自动化测试,自动化测试(automated test)是相对手工测试(manual test)而存在的一个概念,由手工逐个地运行测试用例的操作过程被测试工具自动执行的过程所代替。 测试工具的使用是自动化测试的主要特征,自动化测试 vs. 测试自动化,自动化测试焦点集中在测试执行,主要是由测试工具自动地完成测试。 测试自动化指“一切可以由计算机系统自动完成的测试任务都已经由计算机系统或软件工具、程序来承担并自动执行”,自动化测试 vs. 测试自动化,. . . . . . . .,测试自动化 理念 全过程 所有测试活动 包括测试设计 测试管理,. . . . . . . .,自动化测试 测试工具 测试执行 单项活动,http:/blog.csdn.net/Kerryzhu,手工测试的局限性,无法做到覆盖所有代码路径 很难捕捉到与时序、死锁、资源冲突、多线程等有关的错误 难以实施系统负载/性能测试,因为需要模拟大量数据或大量并发用户 难以实施系统可靠性测试,因为需要模拟系统运行十年、甚至几十年。 难以在短时间内完成大量(如几千个)的(回归)测试用例 面对测试条件组合爆炸,无能为力或效率非常低。,http:/blog.csdn.net/Kerryzhu,您的看法?,自动化测试的特点,自动运行的速度快,是手工无法相比的。 测试结果准确。例如搜索用时及时是0.33秒或0.24秒,系统都会发现问题,不会忽视任何差异 高复用性。一旦完成所用的测试脚本,可以一劳永逸运行很多遍 永不疲劳 可靠 独特的能力,自动化测试带来的好处,测试周期缩短 更高质量的产品 软件过程更规范 高昂的团队士气 节省人力资源,降低企业成本 充分利用硬件资源,降低企业成本。,表4-2 自动化测试在不同测试阶段的应用,手工测试,发现缺陷率高 容易实施 创造性、灵活性 覆盖率量化困难 重复测试效率低 不一致性、可靠性低 依赖人力资源,高效率(速度) 高复用性 覆盖率容易度量 准确、可靠 不知疲劳 激励团队士气 机械、难以发现缺陷 一次性投入大,手工测试 vs.自动测试,http:/blog.csdn.net/Kerryzhu,两者相互补充,在系统功能逻辑测试、验收测试、适用性测试、涉及交互性测试时,多采用手工测试方法; 单元测试、集成测试、系统负载或性能、可靠性测试等比较适合采用TA; 对那种不稳定、开发周期短或一次性的软件等不适合TA 工具本身缺乏想象力和创造性,自动测试只能发现15%的缺陷,而手工测试可以发现85%的缺陷;,本章内容,4.1 测试自动化的内涵 4.2 自动化测试的原理 4.3 测试工具的分类和选择 4.4 自动化测试的引入,4.2 自动化测试的原理,4.2.1 代码分析 4.2.2 GUI对象识别 4.2.3 DOM对象识别 4.2.4 自动比较技术 4.2.5 脚本技术,http:/blog.csdn.net/Kerryzhu,自动化测试的流程举例,保存脚本,测试报告,http:/blog.csdn.net/Kerryzhu,测试工具实现的原理,代码扫描及其分析 对象识别 捕获和回放(record/playback) 脚本技术 自动结果比较,http:/blog.csdn.net/Kerryzhu,代码分析,代码的静态分析的关键是建立各种规则,而这种规则的建立是依赖于相应编程语言的语法。如依据EBNF(扩展巴科斯-诺尔范式) 对 Java代码的分析。 参考Parasoft Jtest 或C+test,代码规则表示举例,代码扫描,编译器 规则 工具,http:/blog.csdn.net/Kerryzhu,逻辑名称是对象属性之一的值 数值 用于识别对象名称,Nativeclass: Edit Attached Text: Agent Name: Enabled: True Focused: True Height: 20 Text: Harold Width: 119,Windows对象识别,http:/blog.csdn.net/Kerryzhu,Windows对象识别 2,对象库 是本地在测试结构范围内 存储对像信息.,对象库,例如对象 (属性) 包含登陆窗口在记录过程中捕获的: - Agent Name field - Password field - OK button - Cancel button - Help button,http:/blog.csdn.net/Kerryzhu,对象识别工具,http:/blog.csdn.net/Kerryzhu,DOM对象的识别,IE DOM Inspector,http:/blog.csdn.net/Kerryzhu,DOM对象识别工具,FireBug,http:/blog.csdn.net/Kerryzhu,脚本技术,线性脚本,是录制手工执行的测试用例得到的脚本,这种脚本包含所有的击键、移动、输入数据等,所有录制的测试用例都可以得到完整的回放。 结构化脚本,类似于结构化程序设计,具有各种逻辑结构、函数调用功能。 数据驱动脚本,将测试输入存储在独立的(数据)文件中,而不是存储在脚本中。 关键字驱动脚本,是数据驱动脚本的逻辑扩张,http:/blog.csdn.net/Kerryzhu,线性脚本,http:/blog.csdn.net/Kerryzhu,结构化脚本,http:/blog.csdn.net/Kerryzhu,关键字驱动脚本,http:/blog.csdn.net/Kerryzhu,数据驱动测试脚本,Order ID changes with each order placed,Test Fails when comparing static baseline to dynamic data,Test Passes when comparing pattern baseline to dynamic data,动态内容匹配 利用模式匹配技术来验证数据,如不是验证 “Order ID 230”, 而是 “Order ID #” 当验证应用的行为时,考虑了各种不同的合法响应,http:/blog.csdn.net/Kerryzhu,另外一个例子,对象映射,Version 1.0,Version 2.0,http:/blog.csdn.net/Kerryzhu,自动比较,静态比较和动态比较, 简单比较和复杂比较, 敏感性测试比较和健壮性测试比较,。 比较过滤器,http:/blog.csdn.net/Kerryzhu,Selenium中验证命令的示例,ComboBoxVP EditBoxVP FileVP HTMLLinkVP HTMLDocumentVP ListViewVP WindowVP JavaListViewVP,Syntax of WindowVP function: Result = WindowVP (action%, recMethod$, parameters$) action can be one of following values CompareImage CompareMenu CompareProperties Exists/DoesNotExist WindowVP (CompareImage, “Caption=Paint“, “VP=PICT1A“) This function returns 1 if the action performed passes Return 0 if the action performed fails.,Robot验证点,http:/blog.csdn.net/Kerryzhu,本章内容,4.1 测试自动化的内涵 4.2 自动化测试的原理 4.3 测试工具的分类和选择 4.4 自动化测试的引入,各类测试工具,根据测试方法不同,分为白盒测试工具和黑盒测试工具、静态测试工具和动态测试工具等。 根据工具的来源不同,分为开源测试工具(多数是免费的)和商业测试工具、自主开发的测试工具和第三方测试工具等。 根据测试的对象和目的,分为单元测试工具、功能测试工具、性能测试工具、测试管理工具等,测试工具的分类,静态测试工具 - 扫描分析:Findbugs, JTest/C+Test - 规则定义 动态测试工具 - 内存检测工具 - 录制/回放工具 - 负载测试工具 - 监控工具,http:/blog.csdn.net/Kerryzhu,商业工具解决方案,单元测试:Parasoft JTest /C+test, PR QAC/C+、CompuWare DevPartner for Visual C+ CompuWare BounceChecker, IBM Rational PurifyPlus/PureCoverage, CompuWare TrueCoverage, TeleLogic Logiscop 功能测试:HP QTP/WinRunner, IBM Rational Functional Tester/Robot, Segue SilkTest , Oracle Empirix e-Test Suite , Compuware Test Partner, Parasoft WebKing 性能测试:HP LoadRunner, Borland SilkPerformer, IBM Rational Performance Tester, Radview WebLoad , Compuware QA Load,http:/blog.csdn.net/Kerryzhu,开源工具解决方案,单元测试:JUnit & XUnit 家族 功能测试:Selenium、Abbot AutoIT/AutoHotkey 性能测试:JMeter 数据库:DBprobe 网络监控:Wireshark/Ethereal, Netcat, Snort,http:/www.opensourcetesting.org,http:/blog.csdn.net/Kerryzhu,Demo,JUnit,http:/blog.csdn.net/Kerryzhu,Demo
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号