第八章 软件测试自动化

一、学习目的与要求

通过本章的学习,了解自动化测试应考虑的各种因素及如何衡量自动化测试成本,掌握自动化测试和手工测试的优缺点,能正确选择软件测试策略,了解测试工

具的分类和使用目的,熟悉常用的测试工具,了解自动化测试的过程。

二、考核知识点与考核目标

(一)自动化测试概述(一般)

  1. 理解:自动化测试的时机

并非一律用自动化测试就好,要考虑经济性、有效性,适当的进行自动化测试。

  1. 理解:自动化测试成本

创建一次自动化的测试所花费的时间要比一次手工测试所花费的时间多得多。测试成本因产品

的架构以及自动化测试的方式不同而异。由高到低

  1. 通过图形用户界面来测试产品;
  2. 使用GUI捕捉/回放工具来跟踪测试与产品之间的交互,同时建立脚本;
  3. 测试的是一个编译器;
  1. 理解:自动化测试生命周期 (创建测试------运行测试------代码改变------运行测试...------测试中止
  2. 理解:自动化测试价值:自动化测试的价值必须要超过所有因此而放弃的手工测试的价值。

(二)自动化测试的特点(次重点)

  1. 理解:自动化测试与手工测试的比较:很多方面都有很大的不同,在执行测试产生测试报告方面尤为突出
  2. 理解:自动化测试的优缺点

优点

  1. 对程序的新版本运行己有的测试,即回归测试。
  2. 可以运行更多更频繁的测试。
  3. 可以进行一些手工测试难以完成或不可能完成的测试。
  4. 充分地利用资源。
  5. 测试具有一致性和可重复性。
  6. 测试具有复用性。
  7. 缩短软件发布的时间。
  8. 增强软件的可靠性。

缺点

  1. 自动化测试不能取代手工测试,测试主要还是要靠人工的。
  2. 新缺陷越多,自动化测试失败的几率就越大。
  3. 工具本身不具有想象力
  4. 技术问题、组织问题、脚本维护
  5. 测试工具与其他软件的互操作性

(三)自动化测试工具的选择和使用(重点)

  1. 应用:自动化测试工具的选择和使用

目的:

  1. 提高测试质量;
  2. 减少测试过程中重复的手工劳动,提高测试效率;
  3. 实现测试自动化,充分利用测试资源。

分类:白盒测试工具、黑盒测试工具和测试管理工具三大类。

选择:

  1. 功能
    1)报表功能;
    2)自动化测试工具的集成能力;
    3)操作系统和开发工具的兼容性;
  2. 价格
  3. 对自动化测试工具进行评估。
  4. 引入自动化测试工具的目的是使测试自动化

应用:很多引入测试软件的公司并没有能够让测试软件发挥应有的作用,其原因主要有三个方面

  1. 没有考虑公司的实际情况,盲目引入自动化测试工具
  2. 没有形成一个良好的使用自动化测试工具的环境
  3. 没有进行有效的自动化测试工具的培训

(四)常见的自动化测试工具(次重点)

  1. 应用:JUnit

介绍:单元级的白盒测试工具

  1. 快速的编写程序
  2. 使用简单
  3. 检验测试结果并立即提供反馈
  4. 可以组成有层次的测试系统架构
  5. 开发测试成本低
  6. 提升软件稳定性
  7. 免费的
  1. 应用:C++Test

是C++单元测试工具

特性:

  1. 即时测试类/函数。
  2. 支持极端编程机模式下的代码测试。
  3. 自动建立类/函数的测试驱动程序和桩调用。
  4. 自动建立和执行类/函数的测试用例。
  5. 提供快速加入和执行说明和功能性测试的框架。
  6. 执行自动回归测试。
  7. 执行部件测试(COM)。

优点

  1. 帮助用户立即验证类功能性和构造。
  2. 将用户从编写测试驱动程序、桩和测试用例的繁重工作中解放出来。
  3. 自动化极端编程和其他编程模式的单元测试过程。
  4. 能够实现和执行100%的代码覆盖性。
  5. 支持紧急和短线开发项目。
  6. 降低调试和维护时间。
  7. 改善应用的可靠性。
  8. 防止简单错误的扩大。
  1. 应用:LoadRunner

介绍:LoadRunner是一种预测系统行为和性能的负载测试工具。通过模拟成千上万名用户和实施实时性能监测来确认和查找问题,LoadRunner能够对整个企业架构进行测试。通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。其主要功能如下:

  1. 轻松创建虚拟用户
  2. 创建真实的负载
  3. 定位性能问题
  4. 分析结果精确定位问题所在

三、习题

  1. 自动化测试工具中,______是最难自动化的。
    A. 测试执行
    B. 实际输出与预期输出的比较
    C. 测试用例生成
    D. 测试录制与回放
  2. 下列()不是软件自动化测试的优点。
    A.速度快、效率高
    B.准确度和精确度高
    C.能提高测试的质量
    D.能充分测试软件
  3. 使用软件测试工具的目的不包括______。
    A. 帮助测试寻找问题
    B. 协助问题的诊断
    C. 节省测试时间
    D. 提高设计质量
  4. 简述软件测试自动化的意义。
  1. 提高测试效率;
  2. 降低对软件新版本进行回归测试的开销;
  3. 完成手工测试不能或难以完成的测试;
  4. 具有一致性和可重复性;
  5. 更好地利用资源;
  6. 降低风险,增加软件信任度。
  1. 在运用软件自动化测试时,应注意哪些缺点和事项?
  1. 软件自动化测试可能降低测试的效率;
  2. 测试首次运行时,可能发现大量错误,但当进行过多次测试后,发现错误的机率会相对较小,除非对软件进行了修改或在不同的环境下运行;
  3. 如果缺乏测试经验,测试的组织差、文档少或不一致,则自动化测试的效果比较差;
  4. 技术问题。作为第三方的技术产品,如果不具备解决问题的能力和技术支持或者产品适应环境变化的能力不强,将使得软件自动化工具的作用大大降低。
  1. 请解释LoadRunner下最大并发用户数、业务操作响应时间、服务器资源监控指标的含义与用途。
  1. 最大并发用户数是指应用系统在当前环境下能承受的最大并发的用户数。用来考察某系统的最大负载;在LoadRunner"事务性能摘要"图中可以获得业务操作的响应时间最大值、最小值和平均值,重点用于确定在方案执行期间响应时间过长的事务;
  2. 服务器资源监控指标包括内存和处理器。
  3. 内存:Linux资源监控中指标内存页交换速率(Paging rate),如果该值偶尔走高,表明当时有线程竞争内存。如果持续很高,则内存可能是瓶颈。也可能是内存访问命中率低。实际测试中,当并发点击数出现突然剧增前后,内存的PR值则居高25不下。说明目前测试的系统中内存存在瓶颈!
  4. 处理器:Linux资源监控中指标CPU占用率持续超过80%(对该值的要求,根据具体应用和机器配置而要求不同,有资料表明95%),表明瓶颈是CPU。实际测试中,当并发点击数出现突然增加前后,CPU的占用率持续保持在86%以上!
  1. 简述Junit的优点
  1. 提升程序代码质量的同时,能加快编程速度;
  2. 使用简单而且免费、开发测试成本低;
  3. 能够检验测试结果并立即提供反馈;
  4. 可以组织成一个有层次的测试系列框架;
  5. 使用Java语言开发;
  6. 提升软件的稳定性。
  1. 软件自动化测试的优点是
    A速度快
    B精确度高
    C质量高

    D能充分测试软件
    E效率高
  2. 简述应用自动化测试工具的目的。
  1. 提高测试质量
  2. 减少测试过程中重复的手工劳动,提高测试效率;
  3. 实现测试自动化,充分利用测试资源
  1. 简述自动化测试的优点
  1. 对程序的新版本运行回归测试
  2. 可以运行更多更频繁的测试
  3. 可以进行一些手工测试难以完成或不可能完成的测试;
  4. 充分地利用资源;
  5. 测试具有一致性和可重复性;
  6. 增强软件可靠性,缩短软件发布时间
相关推荐
霍格沃兹测试开发学社测试人社区7 小时前
提升软件测试报告的质量:Allure2中添加用例失败截图、日志、HTML块和视频的方法
软件测试·测试开发
霍格沃兹测试开发学社测试人社区16 小时前
数据驱动与并行策略:用 JUnit 5 让软件测试更高效
软件测试·测试开发·junit
霍格沃兹测试开发学社测试人社区16 小时前
软件测试丨探索 JUnit 5 中的参数化与调度执行:提升软件测试的效率与灵活性
软件测试·测试开发·junit
互联网杂货铺1 天前
自动化测试基础知识总结
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
qq_433716952 天前
Selenium+Pytest自动化测试框架 ------ 禅道实战
自动化测试·软件测试·selenium·单元测试·pytest·接口测试·压力测试
HKJ_numb12 天前
软件测试 —— 自动化基础
软件测试·selenium·测试工具·自动化
霍格沃兹测试开发学社测试人社区4 天前
深入了解测试开发与DevOps体系
运维·软件测试·测试开发·devops