当前位置: 首页 > news >正文

第八章 软件测试自动化

一、学习目的与要求

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

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

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

  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. 增强软件可靠性,缩短软件发布时间

相关文章:

  • JavaScript进阶知识汇总~
  • c++复合数据类型
  • TeeChart for .NET 2023.10.19 Crack
  • Android 对于状态栏和导航栏的操作
  • Python之numpy数组学习(五)——广播
  • python实现PDF表格与文本分别导出EXCEL
  • 在本地模拟C/S,Socket套接字的使用
  • ChatGPT专业术语及有效使用方法概述
  • 城市群(Megalopolis)/城际(inter-city)OD相关研究即Open Access数据集调研
  • java面试--线程总结
  • openGauss学习笔记-108 openGauss 数据库管理-管理用户及权限-用户
  • Powershell脚本自动备份dhcp数据库
  • 【爬虫】python打包可执行程序(ui界面制作完成后)
  • Maven第三章:IDEA集成与常见问题
  • Jmeter性能测试:高并发分布式性能测试
  • ES6--对象的扩展
  • github从入门到放弃(1)
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • js数组之filter
  • Spark RDD学习: aggregate函数
  • SQLServer之创建数据库快照
  • Vue官网教程学习过程中值得记录的一些事情
  • 闭包,sync使用细节
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • - 概述 - 《设计模式(极简c++版)》
  • 基于webpack 的 vue 多页架构
  • 前端代码风格自动化系列(二)之Commitlint
  • 再谈express与koa的对比
  • ![CDATA[ ]] 是什么东东
  • (C语言)逆序输出字符串
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (备忘)Java Map 遍历
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (十三)Flask之特殊装饰器详解
  • (一)Dubbo快速入门、介绍、使用
  • (一)u-boot-nand.bin的下载
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .net 发送邮件
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .NET委托:一个关于C#的睡前故事
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • [20190401]关于semtimedop函数调用.txt
  • [C/C++]数据结构 循环队列
  • [C++]AVL树怎么转
  • [C++11 多线程同步] --- 条件变量的那些坑【条件变量信号丢失和条件变量虚假唤醒(spurious wakeup)】
  • [Flex] PopUpButton系列 —— 控制弹出菜单的透明度、可用、可选择状态
  • [html] 动态炫彩渐变背景
  • [ICCV2017]Neural Person Search Machines
  • [ios-必看] IOS调试技巧:当程序崩溃的时候怎么办 iphone IOS