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

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

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

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

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

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

工作背景

之前都是在零售快消品行业做功能和接口测试,自动化测试在工作中的占比只有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免费领取】

相关文章:

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

昨天下午在家整理书架,把很多看完的书清理打包好,预约了公益捐赠机构上门回收。 整理的过程中无意翻出了几年前的工作记事本,里面记录了很多我刚开始做自动化和性能测试时的笔记。 虽然站在现在的角度来看,那个时候无论是技术细…...

专家培养计划

1、先知道一百个关键词 进入一个行业,如果能快速掌握其行业关键词,你会发现,你和专家的距离在迅速缩短。 若不然,可能同事间的日常交流,你都会听得云里雾里,不知所云。 比如做零售,就要了解零售…...

583. 两个字符串的删除操作 72. 编辑距离

583. 两个字符串的删除操作 dp[i][j]:以i-1结尾的word1和j-1结尾的word2 变成相同字符串最少的步骤为dp[i][j] 初始化dp[i][0],dp[0][j]为空字符串和第一个字符匹配的最少步骤,即i/j,删除对应的字符个数。dp[i][0]i,dp[0][j]j; 遍历两个字符串。 若word1…...

[多线程进阶] 常见锁策略

专栏简介: JavaEE从入门到进阶 题目来源: leetcode,牛客,剑指offer. 创作目标: 记录学习JavaEE学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现在,学习能力代表未来! 目录: 1. 常见的锁策略 1.1 乐观锁 vs 悲观锁 1.2 读写…...

Scala - Idea 项目报错 Cannot resolve symbol XXX

一.引言 Idea 编译 Scala 项目大面积报错 Cannot resolve symbol xxx。 二.Cannot resolve symbol xxx 1.问题描述 Idea 内的 Scala 工程打开后显示下述异常: 即 Scala 常规语法全部失效,代码出现大面积红色报错。 2.尝试解决方法 A.设置 Main Sourc…...

信息化发展与应用的新特点

一、信息化发展与应用二、国家信息化发展战略三、电子政务※四、电子商务五、两化融合(工业和信息化)六、智慧城市 一、信息化发展与应用 我国在“十三五”规划纲要中,将培育人工智能、移动智能终端、第五代移动通信(5G)先进传感器等作为新…...

软件测试】测试时间不够了,我很慌?项目马上发布了......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 常见的几种情况&…...

MapReduce编程规范

MapReduce编程规范 MapReduce的开发一共有八个步骤,其中Map阶段分为2个步骤,Shuffle阶段4个步骤,Reduce阶段分为2个步骤。 Map阶段2个步骤 设置InputFormat类,将数据切分为Key-Value(K1和V1)对,输入到第二步。 自定义Map逻辑,将第一步的结果转换成另外的…...

Unity 如何实现游戏Avatar角色头部跟随视角转动

文章目录功能简介实现步骤获取看向的位置获取头部的位置修改头部的朝向限制旋转角度超出限制范围时自动回正如何让指定动画不受影响功能简介 如图所示,当相机的视角转动时,Avatar角色的头部会同步转动,看向视角的方向。 实现步骤 获取看向的…...

深度学习优化算法总结

深度学习的优化算法 优化的目标 优化提供了一种最大程度减少深度学习损失函数的方法,但本质上,优化和深度学习的目标不同。 优化关注的是最小化目标;深度学习是在给定有限数据量的情况下寻找合适的模型。 优化算法 gradient descent&#xf…...

CMake详细使用

1、CMake简介CMake是一个用于管理源代码的跨平台构建工具可以方便地根据目标平台和编译工具产生对应的编译文件主要用于C/C语言的构建,但是也可以用于其它编程语言的源代码。如同使用make命令工具解析Makefile文件一样cmake命令工具依赖于一个CMakeLists.txt的文件该…...

【数据结构与算法】前缀树的实现

🌠作者:阿亮joy. 🎆专栏:《数据结构与算法要啸着学》 🎇座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉…...

canvas 制作2048

效果展示 对UI不满意可以自行调整,这里只是说一下游戏的逻辑,具体的API调用不做过多展示。 玩法分析 2048 的玩法非常简单,通过键盘的按下,所有的数字都向着同一个方向移动,如果出现两个相同的数字,就将…...

playwright: 全局修改页面等待超时时间

等待超时时间默认是30s, 可以通过以下几个方法设置: browser_context.set_default_navigation_timeout()browser_context.set_default_timeout()page.set_default_navigation_timeout()page.set_default_timeout() set_default_navigation_timeout set_default_n…...

C++类和对象(中)

✨个人主页: Yohifo 🎉所属专栏: C修行之路 🎊每篇一句: 图片来源 I do not believe in taking the right decision. I take a decision and make it right. 我不相信什么正确的决定。我都是先做决定,然后把…...

Docker安装EalasticSearch、Kibana,安装Elasticvue插件

使用Docker快速安装部署ES和Kibana的前提:首先需要确保已经安装了Docker环境。 如果没有安装Docker的话,先在Linux上安装Docker。 有了Docker环境后,就可以使用Docker安装部署ES和Kibana了 一、安装ES 1、拉取EalasticSearch镜像 docker p…...

算法训练营 day39 贪心算法 无重叠区间 划分字母区间 合并区间

算法训练营 day39 贪心算法 无重叠区间 划分字母区间 合并区间 无重叠区间 435. 无重叠区间 - 力扣(LeetCode) 给定一个区间的集合 intervals ,其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互…...

c/c++开发,无可避免的文件访问开发案例

一、缓存文件系统 ANSI C标准中的C语言库提供了fopen, fclose, fread, fwrite, fgetc, fgets, fputc, fputs, freopen, fseek, ftell, rewind等标准函数,这些函数在不同的操作系统中应该调用不同的内核API,从而支持开发者跨平台实现对文件的访问。 在Lin…...

MySQL学习笔记

MySQL学习笔记一、基础配置二、数据库操作三、表的操作1.创建表2.表选项3.查看表4.修改表5.删除表6.复制表7.检查优化修复表四、数据操作基础增删改查五、字符集编码六、数据类型(列类型)1.数值类型2.字符串类型3.日期时间类型4.枚举和集合七、列属性&am…...

ccs导入工程失败的处理方法

文章目录当导入CCS新工程时出现下述错误怎么办?方法一 从TI官网下载安装包进行安装,下载链接:软件下载完成 安装路径为上面的文件夹点击安装完成后,导入安装路径,并点击Refresh按钮,依据路径进行更新&#…...

解锁虚幻引擎资源解析工具的高效解析与实战应用指南

解锁虚幻引擎资源解析工具的高效解析与实战应用指南 【免费下载链接】UEViewer Viewer and exporter for Unreal Engine 1-4 assets (UE Viewer). 项目地址: https://gitcode.com/gh_mirrors/ue/UEViewer 虚幻引擎资源解析是游戏开发与逆向工程领域的关键技术&#xff0…...

Claude Remote Control 技术详解:跨设备无缝协作的远程会话控制方案

Claude Remote Control 技术详解:跨设备无缝协作的远程会话控制方案 声明: 📝 作者:甜城瑞庄的核桃(ZMJ) 原创学习笔记,欢迎分享,但请保留作者信息及原文链接哦~ 引言 在现代软件开发场景中,开发者经常需要在多个设备间切换工作环境。Claude Code 推出的 Remote Con…...

Path of Building完全指南:精准规划角色构筑3步法+高效配置策略

Path of Building完全指南:精准规划角色构筑3步法高效配置策略 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/gh_mirrors/pat/PathOfBuilding Path of Building是一款强大的离线工具&#xff0c…...

树莓派4b(armv8) 64位系统源码编译onnx实战指南

1. 环境准备:从零搭建树莓派4B开发环境 在树莓派4B上编译ONNX源码之前,我们需要先确保系统环境配置正确。我用的是一台4GB内存版本的树莓派4B,系统是最新的Raspberry Pi OS 64位版本。这里有个小细节要注意:很多教程还在用32位系统…...

4个突破式步骤:哔咔漫画下载解决方案

4个突破式步骤:哔咔漫画下载解决方案 【免费下载链接】picacomic-downloader 哔咔漫画 picacomic pica漫画 bika漫画 PicACG 多线程下载器,带图形界面 带收藏夹,已打包exe 下载速度飞快 项目地址: https://gitcode.com/gh_mirrors/pi/picac…...

Windows文件完整性验证神器:HashCheck Shell扩展完全指南

Windows文件完整性验证神器:HashCheck Shell扩展完全指南 【免费下载链接】HashCheck HashCheck Shell Extension for Windows with added SHA2, SHA3, and multithreading; originally from code.kliu.org 项目地址: https://gitcode.com/gh_mirrors/ha/HashChec…...

使用xrdp实现Windows远程桌面无缝连接WSL2中的Ubuntu24.04

1. 为什么需要远程桌面连接WSL2? 很多开发者习惯在Windows系统上使用WSL2运行Ubuntu进行开发工作,但默认情况下WSL2只提供命令行界面。虽然大多数开发任务可以通过命令行完成,但有些场景下图形界面会更方便: 运行需要GUI的应用程…...

Vue-Vben-Admin主题定制实战指南:从原理到实现的深度探索

Vue-Vben-Admin主题定制实战指南:从原理到实现的深度探索 【免费下载链接】vue-vben-admin vbenjs/vue-vben-admin: 是一个基于 Vue.js 和 Element UI 的后台管理系统,支持多种数据源和插件扩展。该项目提供了一个完整的后台管理系统,可以方便…...

nli-distilroberta-base效果展示:Contradiction类样本的Attention权重可视化分析

nli-distilroberta-base效果展示:Contradiction类样本的Attention权重可视化分析 1. 项目概述 nli-distilroberta-base是基于DistilRoBERTa模型的自然语言推理(NLI)服务,专门用于分析句子对之间的逻辑关系。这个轻量级模型能够高效判断两个句子之间的三…...

别再死记硬背了!用Treap(树堆)搞定LeetCode平衡树难题,附C++完整模板

Treap实战指南:用随机化平衡树高效解决LeetCode难题 1. 为什么选择Treap而非传统平衡树? 在算法竞赛和面试场景中,我们经常需要处理动态有序集合的操作。传统平衡树如AVL和红黑树虽然能保证严格的平衡性,但它们的实现复杂度往往让…...