全栈自动化测试技术笔记(一):前期调研怎么做

news2024/11/26 4:31:00

昨天下午在家整理书架,把很多看完的书清理打包好,预约了公益捐赠机构上门回收。

整理的过程中无意翻出了几年前的工作记事本,里面记录了很多我刚开始做自动化和性能测试时的笔记。

虽然站在现在的角度来看,那个时候无论是技术细节还是整体思路都不够完善,但也有一些值得回味的点。

这篇文章,我将笔记里一些值得借鉴的内容提炼总结了出来,供大家参考。

工作背景

之前都是在零售快消品行业做功能和接口测试,自动化测试在工作中的占比只有30%左右。

大概是18年上半年,入职了一家电商企业做专职的自动化测试工作,当时其实也是有一定压力和挑战的。

一方面那个时候测试团队做专职技术工作的就我一个人,领导期望和KPI压力还是比较大的;另一方面,电商的业务场景和技术复杂度较零售企业也不一样,需要一定的学习成本。

下面的内容,是我当时从零开始做自动化测试的一些实践,对新手同学应该能有所帮助。

刚入职新公司,无论是做业务测试或者技术专项,前期的调研工作是必不可少的。

我个人认为在前期的调研阶段,以下几方面是比较重要且必不可少的。

业务流程和场景(业务)

自动化测试的主要目的是提高回归效率。以电商业务场景为例,如下几方面业务流程是比较典型的:

  1. 用户登陆流程
  2. 会员注册流程
  3. 用户导购流程
  4. 下单支付流程
  5. 后台处理流程
  6. 售后服务流程
  7. 仓储物流流程

我当时刚入职的前半个月,基本都在做前期的调研工作。当然,所谓的调研并不是说找各个模块的研发测试人员一对一访谈这种形式,我更建议去深入到具体的日常工作中,比如参与技术评审、版本迭代、项目复盘

这样做相比于一对一访谈的好处,一方面是可以更快速的熟悉当前的团队研发测试流程,另一方面也可以对后续工作开展的业务场景和技术架构有一个大体的了解

被测系统技术架构(技术)

了解被测系统的技术架构是很多同学埋头做自动化测试经常忽略的,这点其实特别重要。

要了解系统的技术架构,新手可以重点关注如下几点:

  1. 请求入口:比如web端、移动端(区分Android和iOS),这会影响到后续的工具和框架选型设计;
  2. 数据库表结构:自动化测试所需的测试数据落库,以及结果校验、字段类型等都是测试过程要考虑的;
  3. 前后端技术栈:UI自动化必须熟悉前端框架,这样能避免后续的元素定位提取时踩坑;接口自动化也需要熟悉后段的技术框架甚至部分代码实现,有些技术难点(比如验证码、过滤规则、白名单配置、运费计算逻辑)都可以利用已有的封装好的接口或服务来快速实现;
  4. 技术技术组件:比如配置中心、注册中心、发布平台、代码管理工具等;

明确工作目标和KPI(产出)

虽然说自动化测试比较偏技术工作,但在开展前,明确你的工作目标和KPI也是不可忽视的一点。

并不是说技术优秀就可以拿到好的绩效,企业生存第一法则是先活下来做产出,再考虑锦上添花和技术优化的事

工作目标和KPI如何明确呢?我个人的建议如下:

  1. 根据调研结果心里对现状有个大致了解(业务复杂度、技术难度、落地成本);
  2. 多和你的领导沟通,从他那里获取有用信息(他想要的结果、覆盖范围、产出内容);
  3. 和团队其他同学以及有协作关系的技术同学打好关系(便于更好的了解工作细节以及工作开展时获得支持配合);
  4. 通过文档或者ppt形式和你的直属领导再次沟通(当前现状是什么、落地挑战是什么、需要什么样的支持配合、你的落地规划是什么、先做什么后做什么、这样做的原因是什么、这样做解决了什么问题&带来了什么价值);

工作开展区分优先级(落地)

通过前面的几项工作,当你对当前现状和业务以及技术有一定了解后,就需要出具具体的落地方案了。

其实落地方案很简单,无非就是说明做什么,解决什么问题,通过什么方式,需要哪些配合和资源,优先级是什么

如果是一个人从零开始落地自动化测试,我个人觉得比较重要的工作有如下几点:

  1. 自动化测试环境(和功能测试环境混用还是单独搭建);
  2. 测试脚本和数据如何管理(Git+gitlab、Excel/配置文件/数据库);
  3. 测试报告正确性和结果验证有效性如何解决(如何生成报告/发送给谁看/异常情况如何比对);
  4. 自动化测试的覆盖范围和粒度(第一阶段/第二阶段各是什么,具体的指标来衡量);
  5. 如何解决持续集成和快速回归验证(jenkins/CICD,自己搭建还是利用团队已有的工具平台,需要谁配合);

以上内容来源于我之前做自动化测试工作时的一些笔记内容,稍加提炼和修改。

下一篇我会聊聊做自动化测试前期的一些准备工作的细节。

 总结:
现阶段很多人都在说软件测试太内卷了,工作太难找了,竞争太激烈了。那么如何在这样的现状下使得自己更具有竞争力呢?笔者认为大家需要迅速学习软件测试的硬技能,提升自己的业务能力,早日摆脱初中级测试的Title,虽然测试人员众多,但是高级的软件测试人员还是很稀缺,有很多人挂着高级测试的头衔却还在干着初中级测试的活。在掌握这些硬技能的同时,软技能的培养同样重要,沟通能力、自主学习能力越来越被企业看重。

如果不想被这个时代淘汰,就要做好持续学习的准备。下方给大家准备了全套的软件测试,自动化测试全套教程。

【需要的可以点击下方官方推广小卡片扫码备注000免费领取】

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

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

相关文章

【Java 面试合集】描述下Objec类中常用的方法(未完待续中...)

描述下Objec类中常用的方法 1. 概述 首先我们要知道Object 类是所有的对象的基类,也就是所有的方法都是可以被重写的。 那么到底哪些方法是我们常用的方法呢??? cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringw…

你知道 GO 中什么情况会变量逃逸吗?

你知道 GO 中什么情况会变量逃逸吗?首先我们先来看看什么是变量逃逸 Go 语言将这个以前我们写 C/C 时候需要做的内存规划和分配,全部整合到了 GO 的编译器中,GO 中将这个称为 变量逃逸 GO 通过编译器分析代码的特征和代码的生命周期&#x…

在RT-Thread STM32F407平台下配置SPI flash为U盘

记录下SPI Flash U盘实现过程中踩过的坑,与您分享。前提条件是,需要先将SPI Flash 配置到elm fal文件系统,并挂载成功。如下图然后开始配置USB1,在CubeMX,选择SUB_OTG_FS2 选择USB Device3,确认USB时钟为48…

流程控制之循环

文章目录五、流程控制之循环5.1 步进循环语句for5.1.1 带列表的for循环语句5.1.2 不带列表的for循环语句5.1.3 类C风格的for循环语句5.2 while循环语句5.2.1 while循环读取文件5.2.2 while循环语句示例5.3 until循环语句5.4 select循环语句5.5 嵌套循环5.4 利用break和continue…

【八大数据排序法】堆积树排序法的图形理解和案例实现 | C++

第二十一章 堆积树排序法 目录 第二十一章 堆积树排序法 ●前言 ●认识排序 1.简要介绍 2.图形理解 3.算法分析 ●二、案例实现 1.案例一 ● 总结 前言 排序算法是我们在程序设计中经常见到和使用的一种算法,它主要是将一堆不规则的数据按照递增…

BinaryAI全新代码匹配模型BAI-2.0上线,“大模型”时代的安全实践

导语BinaryAI(https://www.binaryai.net)科恩实验室在2021年8月首次发布二进制安全智能分析平台—BinaryAI,BinaryAI可精准高效识别二进制文件的第三方组件及其版本号,旨在推动SCA(Software Composition Analysis&…

网络通信协议是什么?

网络通信基本模式 常见的通信模式有如下2种形式:Client-Server(CS) 、 Browser/Server(BS) 实现网络编程关键的三要素 IP地址:设备在网络中的地址,是唯一的标识。 端口:应用程序在设备中唯一的标识。 协议: 数据在网络中传输的…

7、单行函数

文章目录1 函数的理解1.1 什么是函数1.2 不同DBMS函数的差异1.3 MySQL的内置函数及分类2 数值函数2.1 基本函数2.2 角度与弧度互换函数2.3 三角函数2.4 指数与对数2.5 进制间的转换3 字符串函数4 日期和时间函数4.1 获取日期、时间4.2 日期与时间戳的转换4.3 获取月份、星期、星…

码上掘金实现电子木鱼

前言 前几天在朋友圈看到“敲电子木鱼”的视频,敲一下木鱼就提示“功德 1”,还带有敲击声和念经的声音,感觉挺有意思的。 心血来潮,捣鼓了一晚上,借助码上掘金实现了这个功能。 展示效果 素材 准备素材如下&#…

又一国产开源项目走向世界,百度RPC框架Apache bRPC正式成为ASF顶级项目

2023 年 1 月 26 日,Apache 软件基金会 (ASF) 官方正式宣布Apache bRPC 正式毕业,成为 Apache的顶级项目。 我听到这个消息是挺开心的,毕竟是又一款由国人主导的apche顶级项目,再次证明国内在开源界正在发挥越来越重要的作用。 …

Java的对象和类

名词解释 对象是指由类定义的数据结构,拥有属性和方法。它是运行时实例化的。 类是一种用于描述对象的模板,它定义了对象的属性和方法。类是一种类型,可以用于定义对象,并且可以对对象进行操作。 故事概要 小明是初学者想要学习…

JVM——7JVM调优实战及常量池详解

Arthas工具的使用 阿里巴巴开源的java诊断工具 下载插件 上传至linux环境 在linux跑起来的java项目,可以用Arthas进行查看 项目上线前的时候没问题,上线了就出问题 ,用来查看线上代码 jad 项目名 :反编译线上正在运行的代码 用…

SpringCloud-Netflix学习笔记10——Hystrix实现服务熔断

一、概述 1、分布式系统面临的问题 复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免的失败! 2、服务雪崩 多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B 和微服务C又…

雁过留痕,竟是病毒的痕迹?

凌恩生物全新升级宏病毒组分析流程;聚焦DNA,RNA病毒组研究热点;高灵敏度检测vOTUs;多软件整合,精准鉴定病毒序列;直击地化循环关键环节,助力宏病毒组科研成功!期刊:Micro…

板子登录和挂载问题记录

ubuntu登录板子问题 ssh登录ssh 10.1.3.15,显示No route to host 则尝试在板子上ping 本机ip 试一下 挂载 本地机器vim /etc/export编辑此内容并保存 /exports_0209/tda4_build *(rw,no_root_squash,nohide,insecure,no_subtree_check,async)1.挂载nfs方法 mou…

【PR】零基础快速入门教程

【PR】零基础快速入门教程PR(Premiere)能做什么?PR欢迎界面及新建项目工作区及窗口说明导入文件建立序列视频剪辑添加字幕导出视频使用软件:Premiere2020新年卷起来,写文章已近不能满足与我了,我要向着更前…

MySQL存储过程的传参和流程控制

目录 一.存储过程传参—in 演示 二.存储过程传参—out 演示 三.存储过程传参—inout 演示 四.流程控制—判断 格式 演示 五.流程控制—case 语法 演示 六.流程控制—循环 循环—while 循环—repeat 循环—loop 一.存储过程传参—in in表示传入的参数,可以传…

Java中动态调用setter以及getter

0x00 前言 对于非专业程序员的安全人员来说,因为没有代码项目的积累,很多知识体系都不完善,所以有必要在一些常用的内容进行学习的总结。 在很多的调用链中都会用到**“动态调用setter以及getter”**这个知识点,比如经典的CB链&a…

Jetpack之Lifecycle应用与源码分析

Build lifecycle-aware components that can adjust behavior based on the current lifecycle state of an activity or fragment. 上面是源于官网的定义,简单翻译就是说Lifecycle的作用就是基于当前的Activity或者Fragment的生命周期当前状态构建可感知生命周期的…

CHAPTER 3 Jenkins SVN GItlab

Jenkins SVN GItlab3.1 JenkinsSVN3.1.1 搭建SVN服务器1. 安装svn server2. 查看svn安装位置3. 创建版本库目录4. 创建svn版本库5. 配置修改6. 防火墙开启3690端口7. 启动SVN-server8. 客户端访问svn服务器3.1.2 测试脚本提交3.1.3 jenkins下载代码配置1. 安装Subversion插件2.…