自动化测试知识总结

一、自动化测试概念

自动化测试是指一切把人为驱动的测试行为转换成机器程序去驱动测试的过程,小到可以通过脚本生成一些测试数据,大到根据测试用例生成测试脚本并驱动测试行为。

二、自动化测试优势

自动化测试在提升软件测试团队效率方面有很多优势

1.快速的进行回归测试

2.快速反馈测试结果

3.可以支持几乎无限制的测试用例迭代执行

4.可以有效的支持敏捷、极限编程思想

5.自定义的缺陷报告

6.解决手工测试无法完成的工作(性能测试-高并发的测试,需要模拟大量的虚拟用户来进行测试,单元测试)

三、常见问题

1.需要什么样的自动化测试?

2.什么样的系统适合自动化测试

3.改选择什么样的测试工具较为合适?

4.自动化测试覆盖程度如何?

同时,在这我也准备了一份软件测试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看就行,希望对你有所帮助!【公众号:互联网杂货铺】免费领取软件测试资料!

【2024最新版】Python自动化测试15天从入门到精通,10个项目实战,允许白嫖。。。

四、自动化测试分类

按照测试目的分为:功能自动化,性能自动化

按照测试对象分为:Web应用测试,APP测试,接口测试,单元测试等。

功能自动化:

测试目的是发现软件中实现功能是否符合需求规格,比较大的误区是很多人以为是针对用户界面功能是否满足需求来进行测试的,其实不然,功能自动化的测试入口点有很多,不能讲思维局限于用户界面,而是应该放在软件系统的各个组成部分。

实践证明,基于系统UI的自动化测试只能发现软件中极少的缺陷,往往实施UI自动化测试的目的不是去发现软件系统中的缺陷,更多是为了验证系统是否可以正常运行。

除了可以基于UI进行自动化测试,还可以基于网络服务接口提供者进行测试,比如Grpc服务,Webservice接口,Restful等,基于接口进行功能测试较为常见,也是非常有效的手段。

另外还可以基于系统基础代码进行测试,比如单元测试,集成测试阶段,这一阶段的测试也称白盒测试,我们可以直接对DAO、Service服务进行测试,这里常用的测试技术包括Junit,TestNG,Mock,Stub等

性能自动化:

性能自动化测试是通过测试工具模拟高并发负载进行压力测试,以发现软件系统在高负载情况下运行瓶颈,这里系统瓶颈包含多个部分,应用程序本身的性能瓶颈、网络瓶颈,服务器硬件资源瓶颈(CPU,MEM,DISK),数据存储服务器等,这一测试活动通常唯有借助自动化测试工具来完成,常见的性能测试工具有Loadrunner,Jmeter,Mgrinder,Gatling等,不管哪一款测试工具,基本有三大部分组成:测试脚本管理,测试场景配置,监控结果。

与功能自动化类似的是,性能测试工作对象也可以面向用户UI层,或者服务接口提供方,甚至可以直接面向底层基础业务逻辑层,绝大多数通过用户层进行性能测试模拟的是最接近真实用户场景的测试,也是性能测试必然实施的阶段,另外面向接口的性能测试也是发现系统性能瓶颈很有效的阶段,应当结合实际工作需求有选择性的开展。

五、自动化测试流程

1.制定测试计划

在开展自动化测试之前,最好有个测试计划,明确测试对象,测试目的,测试的项目内容,测试的方法,测试的进度要求,并确保测试所需的人力、硬件、数据等资源都准备充分。制定好测试计划后,下发给用例设计者。

2.分析测试需求

用例设计者根据测试计划和需求说明书,分析测试需求,设计测试需求树,以便用例设计时能够覆盖所有的需求点,一般来讲,基于Web功能测试需要覆盖以下几个方面:

1)页面链接测试,确保各个链接正常

2)页面空间测试,确保各个控件可靠

3)页面功能测试,确保各项操作正常

4)数据处理测试,确保数据显示准确、处理精度可靠

5)模块业务逻辑测试、确保各个业务流程畅通

3.设计测试用例

通过分析测试需求,设计出能否覆盖所有需求点的测试用例,形成专门的测试文档,由于不是所有的测试用例都能用自动化来执行,所以需要将能够执行自动化测试的用例汇总成自动化测试用例。必要时,要将登录系统的用户、密码、产品、客户等参数信息独立出来形成测试数据,便于脚本开发。

4.搭建测试环境

自动化测试人员在用例设计工作开展的同时即可着手搭建测试环境,因为自动化测试的脚本编写需要录制页面控件,添加对象。测试环境的搭建,包括被测试系统的部署、测试硬件的调用、测试工具的安装盒设置、网络环境的布置等。

5.编写测试脚本

根据自动化测试用例和问题的难易程度,采取适当的脚本开发方法编写测试脚本,一般先通过录制的方式获取测试所需要的页面控件,然后再用结构化语句控制脚本的执行,插入检查点和异常判定反馈语句,将公共普遍的功能独立成共享脚本,必要时对数据进行初始化。当然还可以用其他高级功能编辑脚本,脚本编写好了之后,需要反复执行,不断调试,直到运行正常位置。脚本的编写和运行要符合管理规范,以便同一管理和维护。

6.分析测试结果,记录测试问题

应该及时分析自动化测试结果。如果采用开源自动化测试工具,建议对其进行二次开发,以便与测试部门选定的缺陷管理工具紧密结合。理想情况下,自动化测试案例运行失败后,自动化测试平台就会自动上报一个缺陷,测试人员只需每天抽出一定的时间,确认这些自动上报的缺陷,是否是真实的系统缺陷。如果是系统缺陷就交给开发人员修复,如果不是系统缺陷,就检查自动化测试脚本或者测试环境。

六、测试工具概览

性能测试工具:

Loadrunner、Jmeter、Ngrinder,Gatling,每款测试工具都存在一定的差异及其局限性

功能测试工具:Selenium,QTP

APP自动化测试工具:

Appium,UI,Automator,MnkeyRunner,Android UI测试推荐使用UI Automator,是Android提供的自动化测试框架,基本上支持所有的Android时间操作,IOS应用程序可以选择使用Appium

Junit,TestNG,OKhttp,HttpClient,Spring Restful等,需要有一定的编码经验,当然也有现成的工具,比如Postman,HttppRequester,SoupUI等。

单元测试工具:Junit,TestNG,EasyMock,Mockito,JMockit等

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

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

相关文章

【六大排序详解】终篇 :冒泡排序 与 快速排序

终篇 :冒泡排序 与 快速排序 1 冒泡排序1.1 冒泡排序原理1.2 排序步骤1.3 代码实现 2 快速排序2.1 快速排序原理2.1.1 Hoare版本代码实现 2.1.2 hole版本代码实现 2.1.3 前后指针法代码实现 2.1.4 注意取中位数局部优化 2.1.5 非递归版本非递归原理代码实现 2.2 特性总结 谢谢阅…

室内效果图没有质感?外国大神这6个实用技巧,带你轻松掌握!

为了创作出高级有质感的效果图,我们需要注意构图、颜色、布光等多种因素,以打造出逼真的渲染效果。不过不要担心!今天小编带来了国外知名设计师Arch Viz Artist在油管上分享的6个实用小技巧。看完带你轻松提升室内效果图的表现力!…

Vue2面试题:说一下$set的作用和原理?

作用: 对象: 响应式原理:通过触发setter实现更新 对象中后追加的属性、删除已有属性,Vue默认不做响应式处理 解决:this.$set() 数组: 响应式原理:调用重写的原生方法实现更新 数组中修改某下标的…

WPS/PPT插件-大珩助手免费功能更新-特殊字符

扩展特殊格式下特殊字符,增加200多个常用特殊字符,可直接点击插入。 PPT大珩助手 1.7.6 1、提供素材库功能,可实现一键保存素材,支持对选中的形状,支持一键替换素材,保留原素材的尺寸和位置,…

Redis使用场景(五)

Redis实战精讲-13小时彻底学会Redis 1.计数器 可以对 String 进行自增自减运算,从而实现计数器功能。 Redis 这种内存型数据库的读写性能非常高,很适合存储频繁读写的计数量。 2.缓存 将热点数据放到内存中,设置内存的最大使用量以及淘汰策略…

c++学习笔记-提高篇-STL-常用六大算法(遍历、查找、排序、拷贝和替换、算术生成、集合算法)

目录 概述 一、常用遍历算法 (1)for_each (2)transform 二、常用查找算法 (1)find (2)find_if (3)adjacent_find (4)binary…

RTT打印时间戳

官方的RTT VIEWER没有打印接收时间戳的功能,经过查找后发现可以有以下三种打印时间戳的方法。 第三方的RTT上位机ExtraPutty自己打印 第三方的RTT上位机 码云上有一个RTT_T2的仓库,基于python qt包写的画面,通过pylink来jlink通信。 优点…

Journal of King Saud University - Computer and Information Sciences投稿经验

期刊标签: 中科院二区 JCR Q1 影响因子:6.9 双盲审 个人认为还是很不错的期刊 开源期刊1350美元版面费 投稿经验 一共三个审稿人,一个建议小修后录取(list文章的贡献,添加一篇文章的引用), 另…

conda创建、查看、删除虚拟环境

在现代的Python开发中,使用虚拟环境已经成为了一种标准的做法。它可以帮助我们隔离不同的项目,使得每个项目都有自己独立的Python环境和依赖,从而避免各种依赖冲突。Conda是一个流行的包管理器和环境管理器,它可以帮助我们轻松地创…

Java八股文面试全套真题【含答案】-SQL优化篇

以下是关于Java八股文面试全套真题-SQL优化篇 你SQL优化这块有哪些技巧和方法,谈一谈? 以下是一些常用的SQL优化技巧: 使用索引:索引是提高SQL查询性能的最常见和有效的方法之一。通过创建适当的索引,可以加快查询的…

Nginx 负载均衡集群 节点健康检查

前言 正常情况下,nginx 做反向代理负载均衡的话,如果后端节点服务器宕掉的话,nginx 默认是不能把这台服务器踢出 upstream 负载集群的,所以还会有请求转发到后端的这台服务器上面,这样势必造成网站访问故障 注&#x…

Linux GDB 调试

文章目录 一、Qemu二、Gdbvscode 调试 三、RootFs 一、Qemu qemu 虚拟机 Linux内核学习 Linux 内核调试 一:概述 Linux 内核调试 二:ubuntu20.04安装qemu Linux 内核调试 三:《QEMU ARM guest support》翻译 Linux 内核调试 四:…

基于SSM框架和Layui框架的管理系统

计算机毕业设计:打造安全、高效的信息管理系统在这个数字化时代,信息安全和高效管理是至关重要的。为了帮助学校或机构更好地管理和保护信息,我们为您设计了一套功能强大的信息管理系统。该系统利用先进的技术,结合MD5加密&#x…

使用Go语言的HTTP客户端进行并发请求

Go语言是一种高性能、简洁的编程语言,它非常适合用于构建并发密集型的网络应用。在Go中,标准库提供了强大的HTTP客户端和服务器功能,使得并发HTTP请求变得简单而高效。 首先,让我们了解为什么需要并发HTTP请求。在许多应用场景中…

【Nacos专题】Nacos如何建立与应用服务之间的通信渠道?

作为Spring Cloud Alibaba微服务架构实战派上下册和RocketMQ消息中间件实战派上下册的作者胡弦。 Nacos是一款面向云原生服务的注册中心和配置中心技术解决方案,既然要与服务打交道,那么通信渠道是必不可少的组件,那么Nacos是如何建立与应用…

【后端已完成,前端更新ing】uniapp+springboot实现个人备忘录系统【前后端分离】

目录 (1)项目可行性分析 (一)技术可行性: (二)经济可行性: (三)社会可行性: (2)需求描述 功能模块图 用例图&#…

Xcode15在iOS12系统上崩溃的原因

1.1.崩溃在_dyld_start,如图: 崩溃截图 解决办法:在other link flags添加-ld64 注意:该办法只能解决运行真机,archive出来的包依然报错闪退...... 1.2 SwiftUI导致iOS12及以下系统闪退问题 SwiftUI是iOS13开始使用&…

(NeRF学习)NeRF复现 win11

目录 一、获取源码二、环境三、准备数据集1.下载数据集方法一:官方命令方法二:官网下载数据集 2.修改配置 四、开始训练1.更改迭代次数2.开始训练方法一:方法二: 3.使用预训练模型 五、NeRF源码学习 一、获取源码 git clone http…

Blazor 问题记录

1&#xff09;使用Ant 样式。结果弹窗提示怎么都出不来。 只要在App.razor 加最后一句即可 <Router AppAssembly"typeof(App).Assembly"><Found Context"routeData"><RouteView RouteData"routeData" DefaultLayout"typeof…

C#之反编译之路(一)

本文将介绍微软反编译神器dnSpy的使用方法 c#反编译之路(一) dnSpy.exe区分64位和32位,所以32位的程序,就用32位的反编译工具打开,64位的程序,就用64位的反编译工具打开(个人觉得32位的程序偏多,如果不知道是32位还是64位,就先用32位的打开试试) 目前只接触到wpf和winform的桌…