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

功能测试转自动化测试好不好转型?

手工测试做了好多年,点点点···成了每天必须做的事情。但是随着自动化测试趋势的日渐明显,以及受到薪资、技能的双重考验,掌握自动化测试成为了必备技能。

手工转自动化测试,不是一蹴而就的。“预先善其事,必先利其器”,凡事之前都需要一个良好的准备,自动化测试何尝不是呢?

在测试行业,一个一直被讨论的问题就是:手工测试没有前途,自动化测试会取代手工测试?

如今随着软件需求的变化比以往任何时候都快,越来越多的企业正在采用敏捷方法来缩短开发周期并加快上市时间 (TTM)。

在这个瞬息万变的技术环境中,应用程序质量比以往任何时候都更重要,手动测试似乎既耗时又重复,并且容易出现人为错误。

从手动测试转向自动化测试似乎非常适合快速变化的技术业务环境。与手动测试相比,移动(或迁移)在很大程度上可以归因于更好的测试覆盖范围和早期检测、解决问题的灵活性。

尽管手动测试必须与强大的自动化测试相结合,但它永远不会消失。起初,从手动测试转向自动化的想法似乎令人生畏。你可能会被诸如如何开始以及从哪里开始之类的问题所困扰。

结论:手工测试是由人一个一个的输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的一种。

优点:自动化测试无法代替探索性测试、发散思维类无既定结果的测试。

缺点:执行效率慢,量大易错。

不管是自动化测试还是手工测试都是测试,只不过测试的方式不一样,就像走路去上班和做车去上班,你目的都是去上班,这不过一个是走路,一个是坐车。那么现在问题来了,是不是有车子就不用走路啦?

当然,有车子还是要走路,有自动化测试还是要有手工测试,而且手工测试是必不可少的,自动化测试一般在回归测试的会使用的比较多,前期都是使用手工测试。

自动化测试不会取代手工测试,这完全是两个维度的事情。还是那句话机会是留给有准备的人?多个技能多条路,我们要学习新的知识才能扩宽我们的道路。人生是一个逆水行舟的过程,不进则退。

在本文中,我将重点介绍在你决定从手动测试转向自动化测试之前要牢记的一些关键注意事项。

一、什么是自动化测试?

自动化测试,顾名思义,自动完成测试工作。

通过一些自动化测试工具或自己造轮子实现模拟之前人工点点/写写的工作并验证其结果完成整个测试过程,这样的测试过程,便是自动化测试。

因为每一个自动化测试的case都是从手工测试做起的, 所以自动化测试的基础是手工测试 。

二、为什么要进行自动化测试

(1)自动化测试节约成本(根据项目)

(2)有些测试项目手工很难实现(手工成本较高)

(3)项目质量流程需要

三、自动化测试的优势及劣势

优势: 回归测试更方便可靠;可运行更多,更繁琐的测试,且快速高效;可执行一些手工测试执行相当困难或者做不到的测试,如大量的用户并发;更好的利用资源,具有一致性和可重复性的特点,自动化测试脚本完全可复用;提升了软件的可信度;多环境下测试等。

劣势: 维护成本相对比较高

系统开发时间不一定能缩短

还是得依赖手工测试,很多问题无法发现

四、自动化测试分类

按测试目的分类大致可划分为:功能自动化测试,性能自动化测试

按测试对象可以划分为:Web应用测试,APP测试,接口测试,单元测试等

功能自动化

测试目的是发现软件中实现功能是否符合用户需求规格,实践证明,往往我们实施UI自动化测试的目的不是去发现软件系统中的缺陷,更多的是为了验证系统是否可以正常运行。

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

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

性能自动化

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

与功能自动化类似的是,性能测试工作对象也可以面向用户UI层,或者服务接口提供方,甚至可以直接面向底层基础业务逻辑层,绝大多数通过用户层进行性能测试模拟的是最接近真实用户场景的测试,也是性能测试必然实施的阶段 。

五、 自动化测试的流程

1. 制定测试计划

 在开始自动化测试之前,最好的办法是做个测试计划,明确测试对象、测试目的、测试的项目内容、测试方法以及测试的进度要求等,确保测试所需的各种资源都准备充分。

2. 分析测试需求

  用例设计者根据测试计划和需求说明书,分析测试需求,设计测试需求树,使用例设计时能够覆盖所有的需求点。

3. 设计测试用例

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

4. 搭建测试环境

  自动化软件测试流程在进行用例设计时就可以开始搭建测试环境。自动化测试的脚本编写需要录制页面控件,添加对象。测试环境的搭建,包括被测系统的部署、测试硬件的调用、测试工具的安装和设置以及网络环境的布置等。

5. 编写测试脚本

一般先通过录制的方式获取测试所需的页面控件,然后再用结构化语句控制脚本的执行,插入检查点和异常判定反馈语句,将公共普遍的功能独立成共享脚本,必要时对数据进行参数化。还可以用其他高级功能编辑脚本。脚本编写好了之后,需要反复执行,不断调试,直到运行正常为止。脚本的编写和命名要符合管理规范,以便统一管理和维护。

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

及时分析自动化测试结果,对自动化测试结果进行分析,以便尽早地发现缺陷。如果采用开源自动化测试工具,建议对其进行二次开发,以便与测试部门选定的缺陷管理工具紧密结合。如果是系统缺陷就提交开发人员修复,如果不是系统缺陷,就检查自动化测试脚本或者测试环境。

7. 跟踪测试BUG

测试记录的BUG要记录到缺陷管理工具中去,以便定期跟踪处理。开发人员修复后,需要对此问题执行回归测试,就是重复执行一次该问题对应的较薄,执行通过则关闭,否则继续修改。如果问题的修改方案与客户达成一致,但与原来的需求有所偏离,那么在回归测试前,还需要对脚本进行必要的修改和调试。

 

六、 自动化测试常用工具

七、总结 

我有一个核心观点:软件测试的核心是效率。而不是什么设计方法,也不是什么测试思路。不管你有没有方法,有没有思路,只要时间花下去,总能找到bug。这也是为什么很多时候,测试人员累死累活测了半天的应用。来一个外行的xx总监,随便点开来就能发现一两个测试人员漏掉的bug。久而久之总监们就会质疑,测试人员到底有什么用,这么明显的问题发现不了。然而事实上,发现一个问题不难,发现一百个问题也不难,难的是在有限的时间里发现足够多的问题。也就是说,外行也能找到bug,但外行不可能在有限的时间内找到足够多的反映软件质量问题的信息。

”是雇十个应届生点点点来测,还是雇三个资深测试来做系统化的测试?“、”是买商业工具做自动化,还是自己研发测试工具自己搞一套?“软件测试一切的一切都是围绕着效率这个点来思考的。也正是为了提高效率,测试必须要引入自动化的手段。注意,不是替代不替代手工测试的问题,而是必须引入自动化才能进一步提高效率。手工测试仍然在,只要他在一些领域上效率高于自动化,就仍然会继续存在下去。自动化测试,并不是QTP,不是selenium,不是任何一种工具。

自动化测试,并不是回归测试,不是冒烟测试,不是任何一种测试阶段或类型。

自动化是一种提高效率的方法和理念。自动化测试,仅仅是自动化的一种应用。

从自动化测试开始,自动化部署,自动化发布,自动化日志收集,自动化环境管理,等等,越来越多的东西都在被自动化。这些自动化的东西我把他们划分到一起,他们的学习方法都是一样的,理念都是类似的。用到的开发语言也都是通用的。可能这些领域以后真的会融合成为一个技术领域

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

 

相关文章:

功能测试转自动化测试好不好转型?

手工测试做了好多年,点点点成了每天必须做的事情。但是随着自动化测试趋势的日渐明显,以及受到薪资、技能的双重考验,掌握自动化测试成为了必备技能。 手工转自动化测试,不是一蹴而就的。“预先善其事,必先利其器”&a…...

微软surface laptop禁用触摸屏(win10、设备管理器)

参考链接: 在屏幕中启用和禁用触摸屏Windows 设置如下...

冒泡排序算法原理和代码实现,就是这么简单!

冒泡排序,是比较简单的一种排序算法。 它的命名源于它的算法原理:重复的从前往后(或者从后往前),依次比较记录中相邻的两个元素,如果他们顺序错误就把它们交换过来,直到没有再需要交换的元素&am…...

[工业自动化-6]:西门子S7-15xxx编程 - PLC系统硬件组成与架构

目录 一、PLC系统组成 1.1 PLC 单机系统组成 1.2 PLC 分布式系统 二、PLC各个组件 2.1 PLC上位机 2.2 PLC主站:PLC CPU控制中心 (1)主要功能 (2)主站组成 2.3 PLC分布式从站: IO模块的拉远 (1&am…...

pinpoint监控tomcat应用,页面显示No data collected

pinpoint安装部署教程大家都可以搜到。这里就不说了。单说一下 页面没有数据的情况。 部署环境,pinpoint安装部署在A服务器上。现在是在C、D、E、F……linux机器上安装pinpoint-agnet 1. 将文件 pinpoint-agent-1.8.5.tar.gz 上传到 服务器C、D、E、F…… 2. 解压…...

【左程云算法全讲4】前缀树、非比较排序

系列综述: 💞目的:本系列是个人整理为了秋招面试的,整理期间苛求每个知识点,平衡理解简易度与深入程度。 🥰来源:材料主要源于左程云算法课程进行的,每个知识点的修正和深入主要参考…...

微头条项目实战:新增RequestHeader注解

1、RequestHeader package com.csdn.mymvc.annotation; import java.lang.annotation.*; Target(ElementType.PARAMETER) Retention(RetentionPolicy.RUNTIME) Inherited public interface RequestHeader { }2、DispatcherServlet package com.csdn.mymvc.core; import com.csd…...

E云管家个微协议框架--新版本的利器

在互联网时代,高效、可靠的互联网协议对于实现稳定、安全的数据传输至关重要。E云管家作为一项创新性的IPAD协议构建工具,基于IPAD8.0.37协议为开发者提供了强大而灵活的功能,使他们能够轻松构建高效的通信协议。本文将介绍E云管家的主要特点…...

百度上线“文心一言”付费版本,AI聊天机器人市场竞争加剧

原创 | 文 BFT机器人 百度不愧是我国AI技术领域的先行者,每年致力于人工智能领域取得技术产品的突破和创新。据爆料称,百度的文心一言有突破了新境界,开创了文心大模型4.0会员版本。从线上的to C产品到试水商业化,百度都是争先走…...

代码随想录算法训练营第四十七天丨 动态规划part10

121. 买卖股票的最佳时机 思路 动态规划 动规五部曲分析如下: 确定dp数组(dp table)以及下标的含义 dp[i][0] 表示第i天持有股票所得最多现金 ,这里可能有疑惑,本题中只能买卖一次,持有股票之后哪还有…...

微前端:quankun

零: 前言 微前端可以将大应用拆分功能独立的微应用,可独立开发部署, 每个微应用可以采用自己的技术栈,这样更好维护和拓展。微前端也会存在跨域 权限控制 数据共享 性能(页面加载时间) 安全 多团队协作(一个团队负责一个页面或模…...

CSDN每日一题学习训练——Java版(克隆图、最接近的三数之和、求公式的值)

版本说明 当前版本号[20231109]。 版本修改说明20231109初版 目录 文章目录 版本说明目录克隆图题目解题思路代码思路参考代码 最接近的三数之和题目解题思路代码思路参考代码 求公式的值题目解题思路代码思路参考代码 克隆图 题目 给你无向 连通(https://baike.baidu.com…...

XOR Construction

思路: 通过题目可以得出结论 b1^b2a1 b2^b3a2 ....... bn-1^bnan-1 所以就可以得出 (b1^b2)^(b2^b3)a1^a2 b1^b3a1^a2 有因为当确定一个数的时候就可以通过异或得到其他所有的数,且题目所求的是一个n-1的全排列 那么求出a的前缀异或和arr之后…...

K8S容器持续Terminating无法正常关闭(sider-car容器异常,微服务容器正常)

问题 K8S上出现大量持续terminating的Pod,无法通过常规命令删除。需要编写脚本批量强制删除持续temminating的Pod:contribution-xxxxxxx。 解决 获取terminating状态的pod名称的命令: # 获取media命名空间下,名称带contributi…...

Spring 循环依赖

文章目录 内容总结循环依赖 内容总结 循环依赖 循环依赖只存在于 Spring 中, 是因为 Spring 创建 Bean 的流程中, 依赖注入阶段, 会先从单例池中找, 没有再从定义池中找, 针对定义池中找到的候选项会通过 getBean 创建其单例并缓存到单例池, 此机制导致了存在循环依赖的问题.…...

MySQL 8.0.13升级到8.0.35记录 .NET

1、修改表结构的字符集 utf8 修改成 utf8mb4 utf8_general_ci 修改成 utf8mb4_0900_ai_ci 注:所有地方都要替换。 否则会报错误提示:Character set utf8mb3 is not supported 下面是.NET环境升级遇到的问题 2、MySQL Connector Net 8.0.13 在程…...

flink udtaf 常年不能用

[FLINK-32807] when i use emitUpdateWithRetract of udtagg,bug error - ASF JIRA flink1.18发布的时候 他都显示未解决 但是文档上一直有udtaf...

路由汇总的四要点

1.是基于链路级的还是进程级的? RIP和eigrp都是基于接口的链路级汇总,而OSPF是基于进程的 2.汇总路由什么时候消失? 最后一条明细路由消失的时候,汇总路由消失。 3.汇总之后,汇总路由被通告,本地是否会产生一条指向NULL接口的…...

HashMap存值、取值及哈希碰撞原理分析

HashMap中的put()和get()的实现原理: map.put(k,v)实现原理 首先将k,v封装到Node对象当中(节点)。 然后它的底层会调用K的hashCode()方法得出hash值。 通过哈希表函数/哈希算法,将hash值转换成数组的下标,下标位置上…...

【SVN】

SVN 1 svn使用1.1 主干合并到分支1.2 分支合并到主干1.3 分支建立1.4 创建分支1.5 切换分支1.6 合并分支1.7 删除分支 2 概念理解 1 svn使用 1.1 主干合并到分支 首先,在本地trunk中先update一下,有冲突的解决冲突,保证trunk和repository已…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...