测试员如何快速熟悉新业务?

news2024/11/29 4:35:03

身处职场,学习新业务在所难免,尤其是测试人员,具备良好的业务知识是我们做好质量保障的前提,不管是职场「新人」还是「老人」,快速熟悉业务的能力都是不可或缺的,这是我们安身立命的根本。

但,这样的能力并不是很显性,笔者有着十几年的测试经验,负责过 C 端、B 端和 G 端的业务,本文尝试梳理出一些快速熟悉新业务的方法,希望能够带给大家一些启发。

测试员如何快速熟悉新业务?

有两种学习模式

在学习新业务时,通常有两种模式:

  • 授课式: 老师/师兄/师姐带着你学习,言传身教划重点,苦口婆心加考试;
  • 自学式:自己看一堆的学习资料、测试沉淀、业务文档,有问题再找人问;

授课式是被别人带着走,自学式是按自己的方式走。从人性的角度来讲,显然有人教更好,也更快,直接告知重点,躲避深坑,有老师傅带着一路过关斩将,打怪升级。

可事实上,专家没那么多,也没那么闲。因此,大部分情况下,我们都处于第二种:自学式, 师傅领进门,修行在个人,按自己的方式学习,方法就尤为重要了。

要学会打怪升级

当个人修行时,学习跟打怪升级似有异曲同工之处。

不停重复打怪的过程,就是积累经验的过程。业务中的新怪层出不穷,都带有新的技能,那么,要想打败它,就得提升自己的技能。不同级别,你面临的怪是不同的,晋级之后,再遇新怪,我们总要问一下:这是个什么?我要怎么打败它?打败它之后,我会获得什么技能?

这很像保安师傅的哲学三问:你是谁?从哪儿来?到哪去?

如果是唐僧,他会这样回答:贫僧法号三藏,自东土大唐而来,要往西天取经去。

如果是我们的「新业务」,应该思考得更多一些:

你是谁?

  • 新业务是什么?在公司那么多产品里面处于一个什么样的位置?前台?中台?后台?
  • 它依赖谁?谁依赖它?它面向的用户是 B 端?C 端?还是 G 端?
  • 它的产品形态是 APP?小程序?网站?H5?PC客户端?公众号?还是接口?

从哪儿来?

  • 为什么会有这项新业务?它的定位是什么?
  • 价值是什么?衍变路径是什么?

到哪里去?

  • 新业务的目标是什么?
  • 发展路径是什么?
  • 阶段性目标是什么?

所以,学习新业务就像打怪升级,搞清楚这三个业务背景问题,会让你接下来进入业务细节更加胸有成竹。

熟悉业务三部曲

1、看懂业务:由表及里

① 看功能:从直观的角度来看,新业务展现的产品功能和业务规则是什么?

比如电商大促,各种优惠商品直接打折降价,再叠加平台的满减活动,再叠加 88 会员的折扣等等,你首先得理解这些产品功能和业务规则。

② 看结构:从业务的结构来看,新业务在公司的整个业务板块中处于哪一层,它依赖的上下游业务是什么?

③ 看细节:从产品的细节来看,每个操作步骤都会包含很多的系统交互。

比如上面提到的优惠业务,包括了:单品优惠、商家优惠、平台优惠。那么大促期间,这些其实是混合在使用的,每一种优惠都会有不同的应用场景;那么,每一种优惠它的操作入口, 它涉及到的交互系统有哪些, 他们通过什么接口进行交互等等,都是要去熟悉和学习的。

④ 从用户角度看:不同的用户对产品的功能会有不一样的诉求,也决定了我们在进行业务测试的时候,除了业务的准确性外, 测试重点也不同。

比如电商大促, 对于招商系统而言,它是 To B 的业务,主要的诉求在于:系统稳定、便于操作,用户量可能在百万级别, 用户的主要使用场景是通过 Web 端来操作;

对于交易系统而言,它是 To C 的业务, 主要的诉求在于:系统稳定、实时性要求高(各种优惠及时更新、库存更新等)、并发量高,用户量在千万及亿级别,用户的主要使用设备是通过手机 APP 端来操作;

当了解我们的用户人群后,在做基本的业务功能验证后,还需要验证非功能性的需求,比如高并发如何保证系统的可靠性, 比如大促期间的实时性(库存、优惠等),如何来保证准确性?不同的客户端,需要做哪些兼容性验证?

⑤ 从业务价值看:谈业务价值,其实就是谈我们这块业务存在的目的,它能带来什么价值,它的目标是什么?是补充公司的业务空白,扩大商业版图,还是为公司增加营收。

当一个产品的目的是为了快速占有市场, 那么,我们就需要快速迭代, 测试的侧重点,就会在效率上,如何在保证质量的基础上,快速发版, 可能会忽略一些并发性,或者是用户体验的功能;如果是一个稳定的业务,比如电商大促,这么几年走下来,它就是个稳定的业务,那如何提升用户的体验,保证实时性,就会成为我们的测试重点;

⑥ 从盈利模式看:在资本市场中,不盈利的产品很容易就被淘汰掉。

我们要熟悉的新业务的盈利模式是什么?是卖产品?卖服务?还是卖广告?于测试人员而言, 根据不同的盈利模式来进一步了解产品的价值,反向驱动我们去思考业务的测试重点,这是一件很有价值的事情;

2、看透业务:系统剖析

看懂业务之后,我们需要看透业务,通过解剖系统来加深对系统的理解。

在这个过程中, 我们需要了解到:

① 所负责业务的系统交互

系统如何和上下游系统交互,这种更直白的是,看一下时序图,清晰的了解各个系统之间是通过什么接口进行交互的,交互的出入参是什么?带着业务验证的目的来了解系统。

测试员如何快速熟悉新业务?

② 系统内部各个模块的划分,哪些是公共模块,哪些是业务实现层?

测试员如何快速熟悉新业务?

测试员如何快速熟悉新业务?

从上面俩张图都可以看出应用中各个模块所承担的功能,以及一些公共的服务及流程,我们所负责的业务流程是不是也是这么走的,一旦改动到公共模块或者公共服务的话,我们除了验证当前的业务流程外,还需要验证哪些关联流程;

③ 数据流向怎么走?数据如何变更?

测试员如何快速熟悉新业务?

每一条数据都有它存在的意义,每一个字段都有它的特定含义,不同的表代表不同的含义,不同的字段也有不同的业务逻辑。我们需要将业务流和背后的数据流关联起来,以便更好的理解每一次的数据变更,更好的为后续做功能测试打下基础,知道哪些是关键验证字段, 避免功能场景遗漏。

如果很有幸,你一进来,跟进的就是一个纯新的系统,从需求到方案设计到系统上线的话,那你真的很幸运,可以从头了解这个系统的搭建,按上面的方式来了解你即将负责的系统及业务;

假如你负责的是一个老的业务系统,要在老的系统上做迭代,那么, 你仍然可以遵循上面的 3 个方面来梳理你对业务的理解。同时,找历史资料,找资深的同学来了解系统架构、系统模块功能、数据流等, 请多问、问、问!

这个阶段,还有一个问题没讲:问题排查的方案及手段,这些内容接下来我们会讲到。

3、看好业务:动手实践

在看懂业务、看透业务之后,我们就需要履行本职:看(kān)好业务了,假设我们要独立测试这块业务,要怎么测试,怎么设计测试用例,用什么方式来进行测试,如何验证功能的准确性,遇到错误,如何排查呢?

基于上述问题,我们需要做的事情:

① 测试用例设计:基于产品的 PRD,研发的设计方案及我们自己对系统的了解、时序图等进行用例设计,考虑基本的:正常流、分支流、异常流三类。对于本次的改动范围要评估是否需要做老功能的回归, 对于一些新增的开关、或缓存等,要做对应的专项验证;

② 测试方法:手工验证 or 自动化验证?

  • 数据准备:是否已有现成的工具或脚本可以快速生成测试数据?如果没有的话,怎么造测试数据?(造数据的过程?)
  • 结果验证:业务展示是否符合预期,DB 中的数据是否符合预期?

③ 是否需要做非功能性验证:兼容性、安全性、性能压测等;

④ 问题排查:遇到问题,如何排查?(定位根因,积累经验的最快速的方法)

  • 系统现象:页面报错、服务调用失败等这一类都是直观的展示,还有一类是流程链路比较长,看起来页面都是正常的, 但是 DB 数据不符合预期,会导致下一个环节报错的场景;
  • 日志排查:根据业务操作,看下后台日志访问,有无错误日志打印,日志告诉你错在哪一行,根据日志的错误提示,去对应的分支代码中查看对应行的代码;
  • 数据排查: 根据数据反查, 根据你对系统的了解, 梳理哪里会涉及到这块 DB 数据的变更,反查回去看看具体的代码逻辑,看具体走到哪个分支里去,再参照对应的系统日志,跟踪定位到具体的出错的代码行;
  • 翻看代码:不管是从日志排查还是根据数据排查, 都需要去翻代码看看, 有时候,这一行报错,不是因为这一行有错,而是中间过程中,由于入参问题,导致走到其他分支了,这种时候就需要深究下去,到底是从哪里开始出错。

测试员如何快速熟悉新业务?

于测试人员而言,不一定要完整的定位出根因,但是希望通过这样的排查过程,对系统的实现有所了解,在后续的业务改动中,也能够了解到改动影响的范围,有自己的判断,而不是等待他人的输入。

当我们能完整的走过上面的三步,再回过头来看业务,可能会有一种恍然大悟的感觉,会有一种“原来如此”的感悟。但我们可能仍然只是处于刚入门的阶段,后续需要通过不断的重复、加深记忆的过程来不断的完善我们对业务的了解。

我们的脑海中对业务的构建,是不断具象的过程,其实,也可以同步思考下:我们原来的测试模式有没有可以优化的地方?我们有哪些步骤是可以通过工具化的手段来实现的?假设要你来做一个提效的工具或者要提升你负责模块的项目质量, 你会从哪些方面入手,你需要做哪些的知识储备。。。等等,通过不断深入业务,深入系统,深入思考,才能更好的激发创意,为工作带来持续的正反馈!

总结

新业务的学习,是一个不断积累的过程,只有在经过不停地学习、实践、问题排查,这样的重复过程后,才会加深我们对业务的理解。随着业务知识、系统架构等方面的提升,也会反哺我们对业务的了解,从而达到陌生到熟悉的变化。

最后,再送大家一句话:好记性不如烂笔头,随时记录,思考,梳理,重构,会有惊喜噢!

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

自动化测试视频教程、学习笔记领取传送门!!!

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

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

相关文章

简答-【1 绪论】

关键字: 数据类型、数据结构定义、递归关键、线性结构、非线性结构、算法特性、算法目标、时间复杂度排序

jQuery案例专题

jQuery案例专题 本学期主要担任的课程是js和jQuery&#xff0c;感觉用到的有一些案例挺有意思的&#xff0c;就对其进行了一下整理。 目录&#xff1a; 电影院的幕帘特效 手风琴特效 星光闪烁 网页轮播图 1.电影院的幕帘特效代码如下 html <!DOCTYPE html > <html…

spring面试题笔记

SpringBoot 有几种读取配置文件的方式 1.value 必须是bean里才能生效&#xff0c;&#xff0c;final或static无法生效 2ConfigurationProperties注解 ConfigurationProperties是springboot提供读取配置文件的一个注解 注意&#xff1a; 前缀定义了哪些外部属性将绑定到类的字…

分布式服务框架设计

目录 服务框架的设计 服务框架的功能 服务框架的性能指标 服务治理需要哪些功能 服务框架的设计 尽管不同的分布式服务框架实现细节存在差异&#xff0c;但是核心功能差异不大&#xff0c;下面的架构图描绘了一个分布式服务框架的整体逻辑架构 总共分为 3 层&#xff1a;1…

带斜杠的能读出来,不带斜杠的读不出来,为什么?

能读出来。 读不出来&#xff0c;为什么呢&#xff1f;

MySQL进阶_5.逻辑架构和SQL执行流程

文章目录 第一节、逻辑架构剖析1.1、服务器处理客户端请求1.2、Connectors1.3、第1层&#xff1a;连接层1.4、第2层&#xff1a;服务层1.5、 第3层&#xff1a;引擎层1.6、 存储层1.7、小结 第二节、SQL执行流程2.1、查询缓存2.2、解析器2.3、优化器2.4、执行器 第三节、数据库…

leetcode每日一题-周复盘

前言 该系列文章用于我对一周中leetcode每日一题or其他不会的题的复盘总结。 一方面用于自己加深印象&#xff0c;另一方面也希望能对读者的算法能力有所帮助。 该复盘对我来说比较容易的题我会复盘的比较粗糙&#xff0c;反之较为细致 解答语言&#xff1a;Golang 周一&a…

ICCV2023 Tracking paper汇总(一)(多目标跟随、单目标跟随等)

一、PVT: A Simple End-to-End Latency-Aware Visual Tracking Framework paper&#xff1a; https://openaccess.thecvf.com/content/ICCV2023/papers/Li_PVT_A_Simple_End-to-End_Latency-Aware_Visual_Tracking_Framework_ICCV_2023_paper.pdf github&#xff1a; https://…

c#如何把字符串中的指定字符删除

可以使用以下四种方法&#xff1a; 一、使用关键字&#xff1a;Replace public string Replace(char oldChar,char newChar); 在对象中寻找oldChar&#xff0c;如果寻找到&#xff0c;就用newChar将oldChar替换掉。 1、实例代码&#xff1a; 2、执行结果&#xff1a; 二、Rem…

centos7中多版本go安装

安装go的方式 官网下载tar.gz包安装 # 1.下载tar包 wget https://go.dev/dl/go1.18.1.linux-amd64.tar.gz # 2.解压tar包到指定路径 tar -xvf go1.18.1.linux-amd64.tar.gz -C /usr/local/go1.18 # 3.配置环境变量&#xff0c;打开 /etc/profile 文件添加以下文件每次开机时…

第六章:进制转换与数据存储

系列文章目录 文章目录 系列文章目录前言一、进制二、进制的转换三、原码、反码、补码总结 前言 进制转换是程序员的基本功。 一、进制 进制组成二进制0-1 &#xff0c;满2进1以0b或0B开头十进制0-9 &#xff0c;满10进1八进制0-7&#xff0c;满8进1以数字0开头表示十六进制0…

合肥中科深谷嵌入式项目实战——人工智能与机械臂(六)

订阅&#xff1a;新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列&#xff08;零基础小白搬砖逆袭) 说明&#xff1a;本专栏持续更新中&#xff0c;订阅本专栏前必读关于专栏〖Python网络爬虫实战〗转为付费专栏的订阅说明作者&#xff1…

电脑提示x3daudio1 7.dll丢失怎么修复,分享5个有效的修复方法

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“x3daudio1 7.dll丢失”。x3daudio1 7.dll是DirectX的一个组件&#xff0c;它负责处理音频输出和输入的相关功能。这个错误通常会导致软件无法启动&#xff0c;音频播放出现问题&#xff0c…

前端框架Vue学习 ——(七)Vue路由(Vue Router)

文章目录 Vue路由使用场景Vue Router 介绍Vue Router 使用 Vue路由使用场景 使用场景&#xff1a;如下图&#xff0c;点击部门管理的时候显示部门管理的组件&#xff0c;员工管理的时候显示员工管理的组件。 前端路由&#xff1a;指的是 URL 中的 hash(#号)与组件之间的对应关…

JAVA应用中线程池设置多少合适?

目录 1、机器配置&#xff1a; 2、核心线程数 3、最大线程数多少合适&#xff1f; 4、理论基础 5、测试验证 一个线程跑满一个核心的利用率 6个线程 12 个线程&#xff1a;所有核的cpu利用率都跑满 有io操作 6、计算公式 7、决定最大线程数的流程&#xff1a; 1、机器…

【CAN通信栈基础】针对CAN通信栈,浅谈操作系统中断和轮询之间的区别和优劣

1. 前言 在操作系统中(例如AUTOSAR OS),中断和轮询是处理需要快速行动的事件的两种方法。中断是通过向CPU发送立即采取行动的信号来通知CPU需要注意的事件,而轮询则是CPU不断检查设备状态以确定是否需要CPU的注意。本文将详细探讨CAN通信中断和轮询之间的差异和优劣。 2.…

【ES专题】ElasticSearch集群架构剖析

目录 前言阅读对象阅读导航前置知识笔记正文一、ES集群架构1.1 为什么要使用ES集群架构1.2 ES集群核心概念1.2.1 节点1.2.1.1 Master Node主节点的功能1.2.1.2 Data Node数据节点的功能1.2.1.3 Master Node主节点选举流程 1.2.2 分片1.3 搭建三节点ES集群1.3.1 ES集群搭建步骤1…

java高级之单元测试、反射

1、Junit测试工具 Test定义测试方法 1.被BeforeClass标记的方法,执行在所有方法之前 2.被AfterCalss标记的方法&#xff0c;执行在所有方法之后 3.被Before标记的方法&#xff0c;执行在每一个Test方法之前 4.被After标记的方法&#xff0c;执行在每一个Test方法之后 public …

Grōk :马斯克 xAI 打造的 ChatGPT 竞争产品探索

本心、输入输出、结果 文章目录 Grōk &#xff1a;马斯克 xAI 打造的 ChatGPT 竞争产品探索前言Grōk 名称的解释Grōk AI 目前被曝光了 11 项功能超长prompt&#xff08;SuperPrompt&#xff09;支持个性化设置快速响应庞大的知识库实时搜索API接口语音就绪图像生成图像识别音…