370 likes | 638 Vues
自动化测试. 田丽芳. 测试软件是一项艰苦的工作 投入大量时间和精力 开发和使用工具会使工作更加轻松高效 Eg. 查找文档中某个单词 / 汉语词汇. 自动化和工具的好处. 软件开发模式,反复进行 “ 编码 - 测试 - 修复 ” ,需重复多次测试,测试工作量大。 工具和自动化的好处 速度 效率 准确度和精确度 坚持不懈 注意:自动化测试不能取代手工测试. 课程概述. 本课程涵盖以下内容 : 自动化测试基本概念 自动测试的典型应用 自动测试工具介绍. 自动测试概述. 自动测试基本概念 自动测试的好处 自动测试适用领域 引入自动测试的流程
E N D
自动化测试 田丽芳
测试软件是一项艰苦的工作 • 投入大量时间和精力 • 开发和使用工具会使工作更加轻松高效 • Eg. 查找文档中某个单词/汉语词汇
自动化和工具的好处 • 软件开发模式,反复进行“编码-测试-修复”,需重复多次测试,测试工作量大。 • 工具和自动化的好处 • 速度 • 效率 • 准确度和精确度 • 坚持不懈 • 注意:自动化测试不能取代手工测试
课程概述 本课程涵盖以下内容: • 自动化测试基本概念 • 自动测试的典型应用 • 自动测试工具介绍
自动测试概述 • 自动测试基本概念 • 自动测试的好处 • 自动测试适用领域 • 引入自动测试的流程 • 自动测试的局限性
自动测试基本概念 • 利用软件测试工具自动实现全部或部分测试 • 自动测试是软件测试的一个重要组成部分,它能完成许多手工测试无法实现或难以实现的测试。 • 正确、合理的实施自动测试,能够快速、全面的对软件进行测试,从而提高软件质量,节省经费,缩短软件发布周期 。
自动测试的好处 • 改进所有的测试领域 • 改进测试工作质量 • 减轻测试工作量并加快测试进度
自动测试的好处 • 改进所有的测试领域 • 测试用例设计改进 • 性能测试改进 • 压力测试改进 • 质量度量与测试优化 • ……
自动测试的好处 • 改进测试工作质量 • 回归测试改进 • 普通测试执行改进 • 集中于高级测试问题改进 • 执行手工测试无法完成的测试 • 定时启动测试
自动测试的好处 • 减轻测试工作量并加快测试进度
自动化测试适应领域 • 执行回归测试 • 执行手工很难达到或手工无法完成的测试 • 枯燥乏味的重复性工作 • 一致的,可重复的测试
自动测试常见的错误 • 实施一项测试设计时,不遵循任何设计标准,结果产生了不可重复的测试脚本,因而不可重用 • 试图将测试需求100%自动化 • 使用错误的工具 • 在应用程序开发周期中启用测试工具太晚 • 测试工程师参与应用开发生存周期太晚,导致不能很好的了解应用和系统设计,因而无法完成测试
引入自动测试过程 • 自动测试决定 • 测试工具采购 • 自动测试引入 • 测试计划、设计与开发 • 自动测试执行与管理 • 过程评估与改进
自动测试的局限性 • 发现缺陷少 • 维护成本高 • 没有创造力,不能灵活处理意外事件
自动测试的局限性 • 以下几种情况不适宜进行自动测试 • 测试运行频率比较低 • 测试中涉及物理交互的测试 • 测试结果很容易通过人员验证,而对于自动测试来说又比较难以实现
课程目录 • 自动化测试概述 • 自动化测试的典型应用 • 自动化测试工具
自动测试的典型应用 • GUI自动录制回放 • 自动化性能测试 • 通过API编程实现自动测试 • 测试管理 • 白盒测试 • 定制的测试工具
自动测试的典型应用 • GUI自动录制回放 • 自动工具 • QTP • QARun • TestPartner
GUI自动录制回放 录制用户操作 由工具生成的脚本 修改脚本 可重用的脚本 回放脚本 重复回归测试 和其他测试 测试结果 评估结果
自动测试的典型应用 • GUI自动录制回放工具 • 使用QTP录制一个登录的例子 • 启动录制 • 打开目标程序 • 输入正确的用户名/密码 • 确定登录成功 • 停止录制 • 回放脚本
自动测试的典型应用 • GUI自动录制回放工具使用 • 定义检查点 • 定义事件 • 错误处理 • 查看日志
自动测试的典型应用 • GUI自动录制回放的主要应用 • 回归测试 • 验证手工测试无法验证的窗口消息响应事件
自动测试的典型应用 • GUI自动录制回放的优点 • 提高测试效率 • 缩短测试时间 • 测试覆盖率高 • 准确率高
自动测试的典型应用 • GUI自动录制回放的缺点 • 不适合应用于界面频繁改动的情况 • 维护成本高 • 人员要求高 • 时间代价 • 在脚本多次执行时才能发挥优势 • 对象识别有误,可能需要修改脚本
自动测试的典型应用 • 自动性能测试 • 使用工具实现自动性能测试 • 工具 • QALoad,LoadRunner • 原理 • 通过录制回放功能,可以很容易地模拟数千个用户同时运行
自动测试的典型应用 • 自动化性能测试 • 特点 • 可以录制多种应用程序间的会话 • 如Win Socket、ODBC、Oracle、WWW、ADO等
自动测试的典型应用 • 使用QALoad工具达到不同测试目的 • 调用多个客户端执行不同的脚本,测试服务程序在执行多种交易情况下的性能指标和处理能力 • 模拟多个客户端并发执行一个特定的脚本,测试服务程序在多个并发交易情况下的性能指标 • 模拟真实使用情况,预估应用投入使用后的性能情况 • 大强度、持续性的运行测试脚本,对应用产生持续性的压力,可以发现应用中是否存在性能瓶颈,同时可以检查应用是否存在内存泄漏问题
自动测试的典型应用 • 通过API编程实现自动测试 • 通过编程API,建立测试框架,在测试代码中调用这个框架,验证给定输入会得到预期的结果 • 主要有JUnit、各种单元测试工具 • 大多数情况下大大减少了测试代码的维护时间,并且使应用中的复杂功能测试成为可能
自动测试的典型应用 • 测试管理 • 计划和组织测试 • 从多种多样的开发工具和自动测试工具执行测试 • 在测试过程中允许使用手动测试 • 观察和分析测试结果 • 方便的将信息加载到缺陷跟踪系统 • 针对需求验证应用测试 • 将分析过程与测试过程相结合
自动测试的典型应用 • 白盒测试 • 源代码审查 • 运行期错误检测 • 内存分析 • 性能分析 • 代码覆盖分析
自动测试的典型应用 • 定制的测试工具 • 开发适合于自身要求的测试工具 • 模拟仿真工具 • 能够仿真无法真实搭建的测试 • 如:航天应用、模拟硬件设备
课程目录 • 自动化测试概述 • 自动测试的典型应用 • 自动测试的工具
自动化测试工具一览 1、白盒测试 • Logiscope • PRQA • Junit • DevPartner • Rational Purify 3、负载压力测试 • LoadRunner • QALoad • JMeter • WAS • OpenSTA 2、功能测试 • QTP • WinRunner • QARun • Rational Robot • Functional Tester
测试工具厂商介绍 • Mercury Interactive • TestDirector,Winrunner,Loadrunner,QuickTest • Rational • TestManager,Purify,Quantify,Robot,TestFactory • Compuware • QADirector,QARun,TestPartner,QALoad,TrackRecord,Dev Partner