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

news2025/6/9 23:31:55

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

整理的过程中无意翻出了几年前的工作记事本,里面记录了很多我刚开始做自动化和性能测试时的笔记。虽然站在现在的角度来看,那个时候无论是技术细节还是整体思路都不够完善,但也有一些值得回味的点。

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

工作背景

之前都是在零售快消品行业做功能和接口测试,自动化测试在工作中的占比只有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,自己搭建还是利用团队已有的工具平台,需要谁配合);

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

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


资源分享【这份资料必须领取~】

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

“ 这片绿茵从不缺乏天才,努力才是最终的入场券——梅西 ”

前言 想了又想还是忍不住想发布一篇文章来纪念一下2022年的卡塔尔世界杯,这伟大的诸神黄昏之战。4年一届的世界杯像是一把衡量时间的坐标,正所谓青春不过几届世界杯!2014巴西世界杯在上初一,2018俄罗斯世界杯在上高二,…

如何成为一名合格的互联网大厂Python工程师?

Python开发工程师,是一个在IT行业圈子里一直都很热门的话题,无论是像腾讯、百度这样的大型公司,还是刚刚起步的初创公司,都会招python开发工程师。 python已成为越来越多开发者的开发语言选择, 而python开发工程师工资…

[附源码]计算机毕业设计Python架构的博客平台设计(程序+源码+LW文档)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…

【Python计算几何】德劳内三角剖分算法 | scatter 绘制散点图 | Dealunay 函数

猛戳!跟哥们一起玩蛇啊 👉 《一起玩蛇》🐍 💭 写在前面: 本章我们将介绍的是计算机和领域的 Delaunay 三角剖分算法(即德劳内三角剖分),它是一种用于将点集划分成三角形网格的算法。…

如何同时启动Android平台GB28181设备接入模块和轻量级RTSP服务模块?

技术背景 在介绍GB28181设备接入模块和轻量级RTSP服务之前,我们需要先搞清楚,二者的使用场景和技术设计的差别: 首先是GB28181设备接入模块: 为什么要设计GB28181设备接入模块?GB28181接入SDK,实现不具备…

软件:分享六款实用的软件,每一款值得收藏

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

[XCTF]funny_video(难度2)

目录 一、题目重述 二、解题思路 1.分解音视频 2.处理音频 总结 前言 视频夹杂着一段音频,怎么提取?遇到一款新的工具!MKVToolNix 特此记录! 一、题目重述 一段视频,观看之后发现有一段还夹杂着音频。 XCTF-fu…

避坑指南!Python里面的这九个坑,坑的就是你

Python里面有一些坑,让你防不胜防,菜鸟经常会弄晕,而学习多年的Python老鸟也会时不时中招。小编整理了9个坑,都是会经常碰到的坑,让你大呼我曾经也碰到过! 虽然是小的问题,但是在实际的项目中,哪…

测出让人血压升高的页面崩溃,我是如何排查的

前情回顾 前几天在一次web应用测试过程中,前端发起了向后端接口的查询请求,由于后端响应较慢,前端一直处于等待响应返回状态。在几分钟后,突然页面出现让人惊悚的“噢噢,页面崩溃了”几个大字。 看到这几个字的一瞬间…

用于销售、报告等的 LearnDash Group Management LMS分组管理插件

目录 获取强大、直观的LearnDash LMS组管理和报告 使用 LearnDash Groups LMS分组管理插件进行 B2B 销售 节省设置分组的时间或让客户自己构建和购买! 获取强大、直观的LearnDash LMS组管理和报告 LearnDash分组是将学生组织成逻辑单元以进行报告和课程访问的绝…

java回顾:Maven高级

目录 一、私服搭建 二、Maven高级 2.1、依赖范围 2.2、依赖传递 2.3、依赖可选 2.4、依赖排除 2.5、依赖冲突 三、ssm工程改造成分层构建 3.1、maven的继承 3.2、继承的一些应用 3.3、maven的聚合(多模块开发) 一、私服搭建 https://blog.…

rust语句,表达式以及函数

语句和表达式 在rust里,语句和表达式的区别是非常重要的。语句没有返回值,表达式有返回值。例如: fn main() {let y {let x 3; // 赋值语句x 1 // 表达式};println!("The value of y is: {}", y); }上面使用一…

SQL | 自联接 Self Join

有时你可能需要获取位于同一个表中的相关数据。为此,你可以使用一种特殊的联接,称为自联接(Self Join)。在今天的文章中,我们将学习如何使用 Navicat Premium 作为数据库客户端编写包含自联接的查询。如果你没未使用过…

报表工具软件-FineReport JS实现下拉框自动展开

1. 概述 1.1 预期效果 在使用下拉框做筛选查询时,需要点击下拉框下拉三角才会展开所有选项,有些使用场景下,用户希望自动展开选项列表,尤其是在多个控件联动场景下。如下图所示: 地区控件选择地区后,销售…

新一代最强开源UI自动化测试神器Playwright(Java版)页面元素交互

Playwright 可以与 HTML 输入元素交互,例如文本输入、复选框、单选按钮、下拉选择框、鼠标点击、字符输入、模拟键盘事件以及上传文件和焦点元素。 Playwright 操作文本框 使用Locator.fill()是填写表单字段的最简单方法。input它聚焦元素并使用输入的文本触发事件…

JVM面试题详解系列——垃圾收集算法详解

垃圾收集算法 标记 - 清除算法 首先标记出所有需要被回收的对象,标记完后统一回收所有被标记的对象。 后续的收集算法都是基于这种思路并对其不足进行改进而得到的。 这种方法主要有两个缺点: 一个是效率问题,标记和清除两个过程的效率都…

最短路径(难)

目录 一、Dijkstra算法 动态演示: 关键代码: 完整代码: 运行结果: 二、Floyd算法 详细介绍 关键算法: 完整代码: 运行结果: 一、Dijkstra算法 Dijkstra算法:可以求带权图中…

开发者还能这样开发小游戏变现

根据《2022微信小游戏增长白皮书》显示,目前微信小游戏开发者数量已经超过10万人次,特别是在持续出现小游戏爆火社交平台的趋势下,小游戏发展势头强劲。 此外仅看微信小游戏的商业规模,2022年相较于2021年实现了超 30%的商业增长…

快速了解Azure SQL部署类型的小技巧

目录 (一)前言 (二)正文 1. 语法 2. 结果分析 3. 实例 (1)SQL SERVER (2)Azure SQL (一)前言 我们知道在常规的SQL SERVER中我们会使用SELECT VERSIO…

我国汽车保险杠行业对汽车产业依存度较大 市场需求呈良性上升态势

根据观研报告网发布的《2022年中国汽车保险杠市场分析报告-市场发展格局与投资潜力研究》显示,汽车保险杠是汽车车身上一种较大的外覆盖零部件,其作用是在汽车发生碰撞时,保护汽车车身及附件,轻微碰撞可以依靠保险杠自身吸收能量&…