【2023进阶自动化测试第一步】什么是自动化测试基础?

news2024/9/20 20:28:04

 

01、自动化测试的定义

使用一种自动化测试工具来验证各种软件测试的需求,它包括测试活动的而管理与实施、测试脚本的开发与执行。

自动化测试只是策是工作的一部分,是对手工测试的一种补充:自动化测试决不能代替手工测试;多数情况下,手工测试和自动化测试应该相结合,以最有效的方法来完成测试任务。

02、自动化测试的意义

通常,软件测试的工作量很大(据统计,测试会占用到40%的开发时间,一些可靠性要求非常高的软件,测试时间甚至占到开发时间的60%)。而测试中的许多操作是重复性的、非智力性的和非创造性的,并要求做准确细致的工作,计算机就最适合于代替人工去完成这样的任务。

软件自动化测试是相对于手工测试而存在的,主要是通过所开发的软件测试工具、脚本等来实现,具有良好的可操作性、可重复性和高效率的特点。

我们要理解为什么要进行自动化测试,主要从以下两个方面来考虑:

  • 手工测试的局限性

  • 软件自动化测试所带来的好处

03、手工测试的局限性

  • 通过手工测试无法做到覆盖所有代码路径

  • 简单的功能性测试用例在每一轮测试中都不能少,而且具有一定的机械性、重复性,工作量往往比较大

  • 许多与时序、死锁、资源冲突、多线程等有关的代码隐形逻辑错误,通过手工测试很难捕捉到

  • 进行系统负载、性能测试时,需要通过大量数据或大量并发用户等各种应用场合时,很难通过手工测试来进行

  • 进行系统可靠性测试时,长时间持续测试,需要模拟大量数据或大量并发用户等各种应用场合时,很难通过于手工测试来进行

  • 如果有大量(几千)的测试用例,需要在短时间内(一天或两天)情况下完成,手工测试几乎不可能做到

04、自动化测试带来的好处

  • 缩短软件开发测试的周期,可以让产品更快投放是市场

  • 测试效率提高,充分利用硬件资源

  • 节省人力资源,降低测试成本

  • 增强测试的稳定性和可靠性

  • 提高软件测试的准确度和精确度,增加软件信任度

  • 软件测试工具使测试工作相对比较容易,且能产生更高质量的测试结果

  • 手工不能做的事情,自动化测试能做,比如负载、性能测试等。

05.、自动化测试的前提条件

实施自动化测试之前需要对软件开发国成进行分析,以观察其是否适合使用自动化测试,通常需要同时满足以下条件:

1、需求变动不频繁 测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,而脚本的维护本身就是一个代码开发的过程,需要修改、调试,必要的时候还要修改自动化测试的框架,如果所花费的成本不低于利用其节省的测试成本,那么自动化测试便是失败的。项目中的某些模块相对稳定,而某些模块需求变动性很大。我们便可对相对稳定的模块进行自动化测试,而变动较大的仍是用手工测试。

2、项目周期足够长 自动化测试需求的确定、自动化测试框架的设计、测试脚本的编写与调试均需要相当长的时间来完成,这样的过程本身就是一个测试软件的开发过程,需要较长的时间来完成。如果项目的周期比较短,没有足够的时间去支持这样一个过程,那么自动化测试便成为笑谈。

3、自动化测试脚本可重复使用 如果费尽心思开发了一套近乎完美的自动化测试脚本,但是脚本的重复使用率很低,致使其间所耗费的成本大于所创造的经济价值,自动化测试便成为了测试人员的练手之作,而并非是真正可产生效益的测试手段了。

4、在手工测试无法完成,需要投入大量时间与人力时也需要考虑引入自动化测试。比如性能测试、配置测试、大数据量输入测试等。

06、自动化测试的方法

软件测试自动化实现的基础是可以通过设计的特殊程序模拟测试人员对计算机的操作过程、操作行为,或者类似于编译系统那样对计算机程序进行检查。

软件测试自动化实现的原理和方法主要有:

1、直接对代码进行静态和动态分析

2、测试过程的捕获和回放

3、测试脚本技术

4、虚拟用户技术和测试管理技术。

07、自动化测试的不足

  • 不正确的观念或不现实的期望

  • 缺乏具有良好素质和有经验的测试人才

  • 测试工具本身的问题影响测试的质量

  • 没有进行有效、充分的培训

  • 不考虑公司的实际情况、盲目引入测试工具

  • 没有形成一个良好的测试工具使用环境

  • 其他技术问题和组织问题

  • 符号列表

08、自动化测试的应用方向

自动化测试和手工测试它们各有各自的特点,其测试对象和测试范围都不一样 在系统功能逻辑测试、验收测试、适用性测试、涉及物理交互性测试时,多采用黑盒测试的手工测试方法。

单元测试、集成测试、系统负载测试、性能测试、稳定性测试、可靠性测试等比较适合采用自动化测试。那种不稳定软件的测试、开发周期很短的软件、一次性的软件等不适合自动化测试。

典型开源的自动化测试工具

功能测试工具

性能测试工具

缺陷库

单元测试工具

 如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦......

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于想做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……加入我的学习交流群一起学习交流讨论把!!!! 

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

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

相关文章

Word处理控件Aspose.Words功能演示:使用 Java 拆分 MS Word 文档

Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。此外,API支持所有流行的Word处理文件…

ASE28N50-ASEMI高压N沟道MOS管ASE28N50

编辑-Z ASE28N50在TO-247封装里的静态漏极源导通电阻(RDS(ON))为200mΩ,是一款N沟道高压MOS管。ASE28N50的最大脉冲正向电流ISM为110A,零栅极电压漏极电流(IDSS)为1uA,其工作时耐温度范围为-55~150摄氏度。ASE28N50功…

【实战场景二】如何设计一个分布式锁?

如何优雅的设计一个分布式锁?如何设计一个分布式锁?1、什么是分布式锁2、那么分布式锁,具备什么条件呢?3、设计分布式锁有哪些方式?3.1 利用redis实现分布式锁原理3.2 基于数据库做分布式锁3.3 基于zookeeper实现分布式…

L1-064 估值一亿的AI核心代码

以上图片来自新浪微博。 本题要求你实现一个稍微更值钱一点的 AI 英文问答程序,规则是: 无论用户说什么,首先把对方说的话在一行中原样打印出来;消除原文中多余空格:把相邻单词间的多个空格换成 1 个空格&#xff0c…

如何有效提升微信小程序的排名?

微信小程序排名提升的方法有很多,今天厦门巨神峰给大家分享几点: 1. 加强小程序的用户体验,提升用户满意度; 2. 加强小程序的口碑宣传,提升小程序的知名度; 3. 加强小程序的技术支持,提升小程…

血糖高不高,看皮肤也能知道

糖尿病是一种以高血糖为特征的代谢性疾病。长期存在的高血糖,导致各种组织,特别是眼、肾、心脏、血管、神经的慢性损害、功能障碍。很多人不知道,皮肤也会受到血糖影响。以下就是皮肤发出的警告:1.黑棘皮病:后脖颈、腋…

Docker安全防护与配置

author: aming email: jikcheng163.com title: Docker安全防护与配置 creation_date: 2023-02-08 12:26 Last modified date: 2023-02-08 14:09 tags: Docker安全防护与配置 File Folder with relative path: reading notes/doc remark: other: 本章背景知识 运行在容器内部的…

【C++修行之路】C/C++内存管理

文章目录程序区域内存划分C语言动态内存分配:new和delete:new、delete和malloc、free的区别:程序区域内存划分 C/C程序内存区域划分非常相似。 C语言动态内存分配: malloc、calloc、realloc都是C语言动态开辟内存的常用函数 其中 malloc 开…

【Mybatis源码解析】一级缓存和二级缓存源码解析

文章目录缓存使用缓存源码测试代码上一篇《【Mybatis源码解析】mapper实例化及执行流程源码分析》,主要讲解了Mybatis的基本原理一级执行的流程,这一章来讲一下Mybatis的两个缓存:一级缓存和二级缓存。 因为网上大部分都是使用xml配置的方式…

函数编程之Function

文章目录前言一、Function是什么?二、Function 怎么用?1.简单使用2.真正的强大之处总结前言 在java8之后,我已经习惯了开始用stream()方式编程,但是对于新引入的其他功能,还是不清楚,今天经历了一个编程问题后,让我对于Function() 这个函数有了新的认知; 一、Func…

渲染农场优势是什么_云渲染农场怎么用?

在回答渲染农场的优势这个问题之前,我先申明一下本文中提到的渲染农场/云渲染平台/云渲染农场,都特指CG领域内的专业3D渲染平台,有一些文章会强调这个叫法的区别,但是业内一般都不会分这么细,所以也就不赘述了。渲染农…

【Spark分布式内存计算框架——Spark SQL】7. 数据处理分析案例

4.3 案例:电影评分数据分析 使用电影评分数据进行数据分析,分别使用DSL编程和SQL编程,熟悉数据处理函数及SQL使用,业务需求说明: 对电影评分数据进行统计分析,获取Top10电影(电影评分平均值最高…

4道数学题,求解极狐GitLab CI 流水线|第23题:父子流水线 + 多项目流水线

本文来自: 武让 极狐(GitLab) 高级解决方案架构师 💡 极狐GitLab CI 依靠其一体化、轻量化、声明式、开箱即用的特性,在开发者群体中的使用率越来越高,在国内企业中仅次于 Jenkins ,排在第二位。 极狐GitLab 流水线有…

如何解决错误“已超过了锁请求超时时段。 (Microsoft SQL Server,错误: 1222)“

解决 Microsoft SQL Server 的错误: 1222 使用存储过程 sp_who2设置 LOCK_TIMEOUT在Microsoft SQL Server Management Studio中,有时会在对象资源管理器中查看树、表或过程时收到错误。当查询等待的时间超过锁定超时设置时,通常会发生此错误。锁定超时以毫秒为单位,等待后端…

LeetCode 382. 链表随机节点

原题链接 难度:middle\color{orange}{middle}middle 题目描述 给你一个单链表,随机选择链表的一个节点,并返回相应的节点值。每个节点 被选中的概率一样 。 实现 SolutionSolutionSolution 类: Solution(ListNodehead)Solution…

数据库(第五次作业)

1.1 Redis概述 1.1.1 什么是Redis 2008年,意大利的一家创业公司Merzia推出了一款基于MySQL的网站实时统计系统LLOOGG,然而没过多久该公司的创始人 Salvatore Sanfilippo便开始对MySQL的性能感到失望,于是他决定亲自为LLOOGG量身定做一个数据…

Amazon S3简介

前言: 这段时间来到了某大数据平台,做平台技术底座封装和一些架构等等,有结构化数据也有非结构数据,涉及到很多技术,自己也私下花时间去研究了很多,有很多纯技术类的还是需要梳理并记录,巩固以及…

保姆级教程:Win10远程连接MACBook、MACBook远程连接Win10。

本篇给大家展示Windows远程连接连接MACBook、MACBook远程连接Windows的方法。需要明确的是,这种通过TCP远程连接的远程很稳定,基本比向日葵等软件流畅很多,但是缺点是需要保证在同一网域下,也就是同一局域网下,部分情况…

中国协同办公的终局是什么?

换言之,工具一体化是基本要求,但基于全链路集成的生态则是因地制宜、于当下的产业探索。 作者|斗斗 编辑|皮爷 出品|产业家 “计划裁员1300人,占到全球员工的15%。”美国东部时间2月7日,Zoom CEO袁征在官网博客发布公开信…

【SpringBoot】分布式日志跟踪—通过MDC实现全链路调用日志跟踪

一.MDC 1.MDC介绍 MDC(Mapped Diagnostic Context,映射调试上下文)是 log4j 和 logback 提供的一种方便在多线程场景下记录日志的功能。MDC 可以看成是一个与当前线程绑定的Map,可以往其中添加键值对。MDC 中包含的内容可以被同…