15-自动化测试——理论知识

news2024/11/20 8:29:24

目录

1.什么是自动化测试?

2.常见的自动化测试分类

2.1.单元测试(Java、Python)

2.2.接口测试(Java、Python)

2.3.UI测试(移动端、网站)

3.如何实施自动化测试?

4.自动化测试需要了解的技能


1.什么是自动化测试?

自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。

2.常见的自动化测试分类

自动化测试包括UI自动化,接口自动化,单元测试自动化。

按照这个金字塔模型来进行自动化测试规划,可以产生最佳的自贡话测试产出投入比(ROI),可以用较少的投入获得很好的收益。

2.1.单元测试(Java、Python)

最大的投入应该在单元测试上,单元测试运行的频率也更加高。 java的单元测试框架是Junit。

2.2.接口测试(Java、Python)

接口测试就是API测试,相对于UI自动化,API自动化更加容易实现,执行起来也更稳定。

接口自动化的特点:

  • 可在产品前期,接口完成后介入。
  • 用例维护量小。
  • 适合接口变动较小,界面变动频繁的项目。

常见的接口自动化测试工具有:

RobotFramework,JMeter,SoapUI,TestNG+HttpClient,Postman 等。

2.3.UI测试(移动端、网站)

虽然测试金字塔告诉我们尽量多做API层的自动化测试,但是UI层的自动化测试更加贴近用户的需求和软件系统的实际业务。并且有时候我们不得不进行UI层的测试。

UI自动化的特点:

  • 用例维护量大。
  • 页面相关性强,必须后期项目页面开发完成后介入。
  • UI测试适合于界面变动较小的项目。

UI自动化测试的好处:

  • 降低大型系统的由于变更或者多期开发引起的大量的回归测试的人力投入,这可能是自动化测试最主要的任务,特别是在程序修改比较频繁时,效果是非常明显的。自动化测试前期人力投入较多,但后期进入维护期后,可节省大量人力;而手工测试后期需要增加大量人力用于回归测试。
  • 减少重复测试的时间,实现快速回归测试。
  • 创建优良可靠的测试过程,减少人为错误。
  • 可以运行更多更繁琐的测试。
  • 可以执行一些手工测试困难或不可能进行的测试。
  • 更好地利用资源。
  • 测试脚本的重用性。

UI自动化测试的框架:

UI层的测试框架比较多,比如Windows客户端测试的AutoIT,web测试的selenium以及TestPlant eggPlant,Robot framework,QTP等。

这里主要以Web UI自动化测试框架Selenium为例进行详细介绍。

selenium有以下优点:

  • 免费,也不用再为破解软件而大伤脑筋。
  • 小巧,对于不同的语言它只是一个包而已,而QTP 需要下载安装1个多G 的程序。
  • 这也是最重要的一点,不管以前更熟悉C、java、ruby、python、或都是C# ,都可以通过 selenium 完成自动化测试,而QTP 只支持VBS。
  • 支持多平台:windows、linux、MAC。
  • 支持多浏览器:ie、ff、safari、opera、chrome。
  • 支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器执行,相当于分发机的功 能。

UI自动化测试的适用对象:

实施自动化测试的前提条件:需求变动不频繁、项目周期足够长、自动化测试脚本可重复使用。

适合做自动化的项目:

①产品型项目,新版本是在旧版本的基础上进行改进,功能变动不大的项目,但项目的新老功能都必须重复地进行回归测试。回归测试是自动化测试的强项,它能够很好地验证是否引入了新的缺陷,老的缺陷是否修改过来了。在某种程度上可以把自动化测试工具叫做回归测试工具。

②机械并频繁的测试,每次需要输入相同、大量的一些数据,并且在一个项目中运行的周期比较长。 比如兼容性测试。

不适合做自动化的项目:

①需求变动频繁的项目,自动化脚本不能重复使用,维护成本太大,性价比低。

②项目周期短,自动化脚本编制完成后使用次数不多,性价比低。

③交互型较强的项目,需要人工干预的项目,自动化无法实施。

3.如何实施自动化测试?

单纯的讲,自动化测试的具体实现,包含下面七个过程:

  1. 分析:总体把握系统逻辑,分析出系统的核心体系架构。
  2. 设计:设计测试用例,测试用例要足够明确和清晰,覆盖面广而精。
  3. 实现:实现脚本,有两个要求:一是断言,二是合理运用参数化。
  4. 执行:执行脚本远远没有想象中那么简单。脚本执行过程中的异常需要仔细去分析原因。 
  5. 总结:测试结果的分析和测试过程的总结是自动化测试的关键。 
  6. 维护:自动化测试脚本的维护是一个难以解决但又必须要解决的问题。 
  7. 分析:在自动化测试过程中深刻的分析自动化用例的覆盖风险和脚本维护的成本。

4.自动化测试需要了解的技能

  • 了解被测试系统的基本业务
  • 了解业务的技术框架
  • 懂得功能测试
  • 懂得一种编程语言
  • 懂数据库、操作系统
  • 了解常见的测试框架
  • ......

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1059161.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

测开 | Vue速查知识点

文章目录 Vue知识1. Vue 概述2. Vue 代码格式3. Vue 指令3.1 v-bind & v-model3.2 v-on3.3 v-if和v-show3.4 v-for 4. 生命周期 Vue知识 1. Vue 概述 简介: Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架。与其他…

[QT编程系列-44]: Windows + QT软件闪退的检测方法

目录 一、Windows程序闪退的问题定位方法 1.1 Windows程序闪退 1.2 要找到Windows程序的crash点 1.3 当Windows程序崩溃时,可以尝试以下方法获取出错信息: 二、关键工具的进一步分析 2.1 Windows事件查看器(Event Viewer) …

openGauss学习笔记-87 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用简单概述

文章目录 openGauss学习笔记-87 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用简单概述87.1 授予用户权限87.2 创建/删除MOT87.3 为MOT创建索引 openGauss学习笔记-87 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用简单概述 使用…

【python的输入】sys.stdin与sys.argv

在老师的课堂里碰到了sys.stdin与sys.argv,虽然是很简单的东西,还是花了大半天的时间才勉强理解。在这里记录一下学习过程,方便以后用到复习。 一、sys.stdin 根据python3 library里的解释, sys.stdin可用于所有交互式的输入。 …

Vscode爆红Delete `␍`eslintprettier/prettier

一、先看报错 文件中爆红,提示 Delete ␍eslintprettier/prettier 二、解决方案 项目根目录下,.prettierrc.js 文件中: endOfLine: auto,三、重启VsCode 此时不在爆红,问题完美解决

STM32CubeMX学习笔记-USB接口使用(HID按键)

STM32CubeMX学习笔记-USB接口使用(HID按键) 一、USB简介1.1 USB HID简介 二、新建工程1. 打开 STM32CubeMX 软件,点击“新建工程”2. 选择 MCU 和封装3. 配置时钟4. 配置调试模式 三、USB3.1 参数配置3.2 引脚配置3.3 配置时钟3.4 USB Device…

数据分析与挖掘: 红楼梦人物关系(Python)词云图

一: 角色剧本 第一代:水字辈祖宗创下基业 贾源、贾演兄弟二人帮先帝打江山立下战功,贾演被封为宁国公(大约有平定江山安宁天下之意),贾源被封荣国公(大约有强国富民之功)。贾源贾演二兄弟皆是一…

项目进展(五)-修复PCB电路板,学习32位ADC芯片ADS1285

一、前言 上个月29号放假了,和朋友一起去了南京(人是真滴多),师兄晚放假几天,结果在测试时不小心把12V和GND碰触到一起了,导致12V短路,电路板几乎瘫痪了。 今天下午到学校之后就开始着手寻找问题和修复,最…

Kafka日志索引详解以及生产常见问题分析与总结

文章目录 1、Kafka的Log日志梳理1.1、Topic下的消息是如何存储的?1.1.1、 log文件追加记录所有消息1.1.2、 index和timeindex加速读取log消息日志。 1.2、文件清理机制1.2.1、如何判断哪些日志文件过期了1.2.2、过期的日志文件如何处理 1.3、Kafka的文件高效读写机制…

腾讯云服务器南京地域详细介绍、测试IP和Ping值测速

腾讯云服务器南京地域怎么样?南京地域很不错,正好处于中间的位置,南方北方用户均可以选择,网络延迟更低速度更快,并且目前南京地域有活动,南京地域可用区可选南京一区、南京二区和南京三区,腾讯…

软件设计模式系列之二十四——模板方法模式

在软件设计领域,设计模式是一组被反复使用、多次实践验证的经典问题解决方案。其中,模板方法模式是一种行为型设计模式,用于定义一个算法的骨架,将算法中的某些步骤延迟到子类中实现,从而使子类可以重新定义算法的某些…

互联网Java工程师面试题·Zookeeper 篇·第二弹

目录 13. 服务器角色 14. Zookeeper 下 Server 工作状态 15. 数据同步 16. zookeeper 是如何保证事务的顺序一致性的? 17. 分布式集群中为什么会有 Master? 18. zk 节点宕机如何处理? 19. zookeeper 负载均衡和 nginx 负载均衡区别 20…

代码随想录算法训练营第五十七天 | 392.判断子序列 115.不同的子序列

1. 判断子序列 392. 判断子序列 - 力扣(LeetCode) dp[i][j] 表示以下标i-1为结尾的字符串s,和以下标j-1为结尾的字符串t,相同子序列的长度。 class Solution {public boolean isSubsequence(String s, String t) {//dp[i][j] 表示…

Spring MVC:数据绑定

Spring MVC 数据绑定数据类型转换数据格式化数据校验 附 数据绑定 数据绑定,指 Web 页面上请求和响应的数据与 Controller 中对应处理方法上的对象绑定(即是将用户提交的表单数据绑定到 Java 对象中)。 过程如下: ServletRequest…

代数科学计算:LiveMath Maker v3.6.0 cRACK

LiveMath Maker 是一个数学计算机程序,您可以使用它来制作(并探索、实验和创建)LiveMath。您和LiveMath Maker制作的任何LiveMath都可以通过互联网与世界共享。 用LiveMath Maker 来进行数学研究,函数学习,深入探索、实验和创建你的LiveMath…

通用收藏管理器Koillection

什么是 Koillection ? Koillection 是一个自托管的收藏管理器,旨在跟踪任何类型的物理(主要)收藏,如书籍、DVD、邮票、游戏……,由于 Koillection 旨在用于任何类型的收藏,它不支持自动下载元数…

计算机网络-计算机网络体系结构-概述,模型

目录 一、计算机网络概述 二、性能指标 速率 带宽 吞吐量 时延 往返时延RTT 利用率 三、计算机网络体系结构 分层结构 IOS模型 应用层-> 表示层-> 会话层-> 传输层-> 网络层-> 数据链路层-> 物理层-> TCP/IP模型 一、计算机网络概述 计…

用向量数据库Milvus Cloud搭建检索知识库机器人

检索知识库 Milvus 中已经存储了文本块向量,现在可以进行向量查询了。 以下函数创建了 1 个查询 pipeline。注意,这是本教程中最为关键的一个步骤! ops.ann_search.osschat_milvus(host=MILVUS_HOST, port=MILVUS_PORT, **{metric_type: IP, limit: 3, output_fields: [text…

设计模式11、享元模式Flyweight

解释说明:享元模式(Flyweight Pattern)运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。 抽象享元类(Flyweight&…

STM32复习笔记(五):FSMC连接外部SRAM

目录 Preface: (一)原理相关 (二)CUBEMX配置 (三)轮询方式读写 (四)DMA方式读写 Preface: STM32F4有一个FSMC(Flexible Static Memory Contr…