字节5年测试工程师对“测试开发”的理解

news2024/9/30 23:25:19

写在前面:

写这篇文章的目的是为了能够更好的帮助刚入职的新人了解这个岗位和自己的工作,也想谈谈自己工作一年来对这个领域的了解程度,做一个小小总结吧~

一、我理解的测试开发

测试开发与开发、测试的关系

以前在没有接触测试开发这份工作之前,我总是在思考测试开发岗位到底要做什么?测试开发和测试有什么区别?测试开发是开发吗?测试开发的价值在哪里?一开始我直观的认为测试开发=测试,直到真正在工作实践中,我才慢慢了解到测试开发的岗位需要做什么。

1.首先,从岗位名字看区别:先明确一下简称,由于这几个岗位名字看着比较像,很多人都不知道这三者的区别与联系,软件开发工程师(SWE ),测试开发工程师(SWT),测试工程师(TE)。

2.其次,从各方面能力上看区别,我的理解是:从代码能力要求上,软件开发工程师>测试开发工程师>测试工程师;从掌握知识广度要求上,测试开发工程师>软件开发工程师>测试工程师,从工作沟通能力要求上,测试开发工程师>测试工程师>软件开发工程师。

测试开发的分类

测试开发主要分为两类:

一类是基于业务驱动型的测试开发。可以理解为业务测试工程师,只是具备了开发能力和质量改进思维,这类测开人员需要扎进业务中,主动挖掘业务过程中各个环节质量的薄弱点并且想办法去解决,通过流程改进、开发出得心应手的工具,让自己的测试工作能够持续高效。

一类是基于框架平台型的测试开发。这类型的测试开发,需要站在更高的纬度来看待产品的质量,他们会对整个研发过程或者某个大的专项去开发一些测试平台、框架,并且将这些能力以服务的形态提供给各个业务线使用,以此来保障全局内建质量。

不管是哪一类,测试开发岗位的核心仍然是“测试”,开发的目的是为了更好的服务测试,测开应该看重的是对测试的理解,以及在这个基础上设计、能开发设计帮助测试人员或者开发、运维人员提高效率并解决实际业务问题的工具。

3)测试开发的本质

我作为一名业务驱动型的测试开发工程师,其实工作中主要还是围绕着业务展开,我们所做的一切测试、开发的工作也都是为了测试提效,为了业务的质量保障。

其实我认为测试开发的本质应该是“懂开发的测试”,是为了更好的服务产品的“质量”。由于对于目前测试的工作要求,已经不是传统的测试岗位所能胜任的了,我们除了简单的操作层面的“测试”工作,还需要考虑到从测试设计到数据准备到风险控制以及研发效率提升等各个方面,我们需要将我们的工作上升到价值层面的“质量保障”,所以测试工作只是测试阶段的质量保障手段之一,我们要做的是从产品的需求评审到交付上线整个周期的质量保证,除此之外我们还需要从效能提升、安全生产等各个方面来评估我们的工作质量。

我经常会陷入一个怪圈,作为一名业务型测试开发,我觉得我主要工作是放在业务的质量保障上,但是每到制定OKR、谈到绩效、价值等方面时,却又主要用横向的指标来作为测试人员价值的体现,我不理解为什么是这样,直到我看到一篇文章《业务型测试的职业发展和晋升路径思考》,我才发现原来这是所有业务型测试在公司所面临的的一个挑战。

二、测试和开发、产品的关系

在平时工作中,我们接触到最多的角色就是开发和产品,那这三者的关系是如何?

从一个产品交付流水线来看,可能有的人会简单地认为,产品、开发、测试是一个线性关系,产品评审完需求之后,开发进入开发过程,完成开发工作之后,测试开始进行测试,最后完成整个需求的上线。但是实际上,这三者之间其实是一个三角关系,产品在需求评审阶段、开发在技术评审阶段、测试在TC评审阶段都需要这三者在场,站在自己的角色视角提出相关建议,更高质量地交付产品上线。

三、测试开发需要具备的技能

1)业务理解能力

一切的测试都不能脱离业务,所以一开始进到一个组之后,首先要熟悉的就是业务,业务测试也是在我们工作中占了大比重的,所以我们需要花日积月累的时间来锻炼自己的业务理解能力。

2)  测试能力

3)排查问题的能力

当我们发现bug之后,其实第一个要做的就是快速定位问题的原因,这也可以帮助开发更快的定位和解决问题,后面说的测试过程中需要做到什么程度,也讲了排查问题的能力的级别。比如,在发现一个bug后,可以先判断是前端还是后端还是数据还是环境问题,通过接口返回、日志排查、代码查看权限、具体定位到代码debug等各种方式进行问题的定位。

4)测试提效能力

除了手工测试,我们还需要利用自动化的方式提高测试效率,我们可以写一些自动化的脚本来减少测试带来的重复性工作,也可以研发效能平台来为质量保障作为基建支撑,效能工具就像是一把剑,可以带着我们大大提升工作的效率。

5)安全生产的意识

如果把效能平台比做是一把剑,安全生产我觉得就像是一个盾,我们可以通过监控、故障演练、预案、快恢等各种方式来进行我们的业务质量保障工作,保证整个产品不出问题,或者出了问题能够风险最小化。

7)善于搜索的能力

公司内部的知识库如:ATA、语雀、钉钉文档,外面的如:GitHub、CSDN、知乎等等都给了我们很多可以学习的空间,但是由于知识的庞杂,我们还需要有善于搜索和发现适合自己的知识和工具的能力。

8)owner意识

对于自己负责的工作要具备owner意识,其实这需要很强烈的责任心和积极主动的精神,比如作为一个项目owner,需要有把控全局的能力,还要有懂得如何划分和安排任务的能力,还有协调沟通的能力,还要有推动项目进展的能力,还要有预期和拿结果的能力,哈哈,说实话有点难,但是我觉得这是作为一个阿里人需要具备的。

四、我们在测试过程中需要做到什么程度

其实从问题的生命周期来看,可以分为:发现问题->定位问题->解决问题->预防问题

  • 级别1:发现问题,提出bug让开发去定位产生问题的原因;

  • 级别2:定位问题,知道出现问题的原因是什么,这个需要去查数据库、日志甚至代码来定位问题。在提bug的时候,给开发一些可能的建议,帮助开发定位到问题,这本身是测试价值的一种体现。

  • 级别3:解决问题,如果测试能够解决问题,那就没开发什么事了,或者说能够更好的去协助开发去解决bug。

  • 级别4:预防问题,解决问题后需要有能够预防此类问题产生的策略,更好的进行质量保障

其实在工作过程中,我们经常是处于级别2的一个状态,不过定位问题也是考验技术和对系统的熟悉程度的,如果能精准定位到问题原因所在,也能减少开发排查问题的工作量。

五、我们需要具备的素质

工作了一年之久,在平时工作中也总结了一下,我觉得作为一名测试开发同学,应该是最好需要具备以下几个素质吧:

1)沟通能力

测试需要和大量的人打交道,需要很强的沟通能力,如果讲不清楚,那么工作就无法进行,而交流过程中,我们首先要组织好语言和逻辑,其次是要客观的反馈事情的真相。这个对我有点社恐的人来说其实一直是一个比较有挑战性且有趣的工作,其实一个好的人际交往的能力对工作效率也会有很大的提升。

2)细心、耐心

测试是辅助研发定位错误,帮助研发快速完成开发工作,所以我们需要非常细心去发现一些细小的错误。对于有的测试过程可能是反复枯燥的,这个需要很大的耐心。尤其是业务型测试,我们经常同样的操作步骤需要重复很多次,这也是为什么大家想用自动化来解放双手。

3)逻辑思维、分析问题

遇到问题,测试需要快速分析定位问题,并且能够复现,理清楚逻辑给到研发,尽量减少研发定位bug和反复修改的工作,这其实意味着我们需要对产品有着非常强的熟悉程度,这样才能更快速精准的定位问题所在。

4)快速学习

测试学的东西比较广泛,需要掌握的知识和技能也非常多,所以拥有快速学习的能力是至关重要的,否则就很容易被淘汰,不过好在公司有很多的知识库以及技术味浓的ATA,这其实对于一个新人来说,是一个很好的学习机会,不过有时候东西太多,也要慧眼斟酌一下。

5)责任心

测试的工作是要保证产品上线的质量,所以需要很强的责任心,这个我觉得每个岗位的工作者都需要有这样的素质,就不用多说了。

6)团队协助

测试工作会与各个人员打交道,在做好本职工作的同时,应该积极并且有意识的关注项目的进度和组内情况,要有大局观,团队利益至上,要愿意共享个人经验,同时也善于从同事那里进行学习,团队协作能力也是测试需要具备的基本素养。

7)文档编写

优秀的文档沉淀可以给自己也给后人带来福利,我一直很喜欢做文档沉淀,原因是我觉得好记性不如烂笔头(是我记性不好),有时候以文字的方式记录下来可以提醒到自己,也可以锻炼自己的总结能力,当别人有需要的时候也可以分享给别人,真是一举三得呀~

六、测试工作流程及关注点有哪些

首先我们应该在需求评审阶段就需进行介入,并且在每个工作阶段,测试都需要有相应的关注点和输入输出,接下来总结一下我平时工作的测试工作流程和每个阶段测试需要做的事情吧~

1. 需求评审阶段【关注】

  • 测试人员需要进行需求分析,熟悉技术实现方案、设计是否涵盖了业务需求、存在的风险,为测试分析和测试用例设计提供输入。

  • 主要关注点:架构合理性、风险评估、测试策略(手工测试or自动化测试or其它)。

  • 根据需求大小判断是否测试人员测试还是开发自测(可根据情况判断是否提供冒烟测试用例)

2. 设计测试用例【重点关注】

  • 根据prd编写测试用例、冒烟测试

  • 编写冒烟测试用例(看项目大小而定,如果项目改造比较大,或者是新项目,建议编写,用例评审时提供给相关开发人员,冒烟测试用例通过后,正式提测)。

  • 项目中测试同学需要给研发同学提供冒烟测试用例,且和前端同学达成一致,冒烟测试用例要求总用例的10%。

3. 测试用例评审【视需求大小而定】

  • 时间在原定提测时间前1-2天,根据项目大小和时间决定是否需要该环节

  • 输出:用例评审会议纪要、修改版测试用例、冒烟测试用例(给开发)

4. 提测预演【视需求大小而定】

ps:正常来说是开发人员组织,如果他们忽略掉,测试人员可根据实际情况,要求进行提测预演,保障提测质量

  • 规范:按照测试用例评审的冒烟测试用例由开发进行预演,若冒烟测试用例均通过,则测试接受测试,否则打回并发邮件说明冒烟测试不通过并预计下次提测时间

  • 输出:冒烟测试结果邮件(通过与否都需要发邮件,并给出预计发布时间点、风险)

  • 提测后第一时间投入测试,若预演未通过,要告知风险

5. 测试阶段【重点关注】

  • 测试阶段需要提前准备好测试环境、测试用例、测试数据等;

  • 测试过程中需要及时提交缺陷、跟进缺陷,bug一般采用aone进行管理,缺陷格式最好采用:【需求名称】具体缺陷名称,便于后续搜索和归类;

  • 业务相关咨询:PD+业务 ;产品样式相关咨询:产品+UED ;开发相关咨询:前端+后端;

aone缺陷处理规范

1.缺陷修复后,开发同学需要fixed bug(研发)

2.缺陷修复后,需进行对应的缺陷修复验证。(测试同学)

3.缺陷验证通过,closed关闭缺陷前需对该缺陷对应的缺陷类型及缺陷原因进行归类。(测试同学)

4.缺陷验证不通过,可将该缺陷reopen后继续提交开发处理。(测试同学)

6. 发布预演【功能验收(可多轮)】

  • 测试人员提前预定会议室,发会议邀约给相关人员

  • 会议记录:预演过程中,要记录会议摘要,哪些bug需要修复后上线,哪些bug后期再迭代(pd+业务评估)

7.发布计划

  • 发布计划的编写人员主要是开发和测试;

  • 目的:编写测试计划,测试人员明确本次测试的重点和回归重点,开发人员明确发布应用和发布顺利,避免漏发、发布顺序搞错等原因造成线上bug,从而代码回退。

8. 正式发布

  • 跟踪发布情况,可要求开发在群里同步发布节奏,发布完成后,第一时间线上验证(发布后,@pd+业务,他们可同时进行线上验收);

  • 不同的业务可能有不同的发布窗口期,需要注意是否在发布窗口期,否则可能需要紧急审批;

  • 由于很多线上问题都是由于变更导致的,所以再发布的时候格外注意是否有漏发的情况出现;

  • 一般发布过程中有灰度观察期,这个期间可观察线上流量是否有异常出现。

9.线上验证

相关人员需要及时验证线上结果,一般测试进行验证,如果由于业务特点测试无法验证则需要业务同学及时线上验证,比如,我之前的业务都是测试进行线上回归,现在的业务特点由于数据安全等问题,则需要业务自己进行验证。

我把它划分了主要包括需求梳理、测试准备、测试过程、测试总结四个部分,每个阶段的输出都可以以文档的方式沉淀下来,可作为后续验收和回归的一个参考。

七、平时常用的一些小工具和测试技巧

1)一个简单又好看的json格式化工具:

【JSON-handle插件】https://chrome.google.com/webstore/detail/json-handle/iahnhfdhidomcpggpaimmmahffihkfnj?hl=zh-CN

2)【其它在线json格式化网站】https://www.json.cn/、https://www.bejson.com/explore/index_new/

3)【阿里翻译插件】https://chrome.google.com/webstore/detail(哈哈,我是一个比较喜欢插件而不喜欢切换tab页的人)

4)【LightProxy】

可以本地mock后端返回的数据,直接通过请求名 file://文件路径的方式就可以mock数据,很方便。

还有一种方式:F12控制台方式(改样式)

在Chrome中任意一个网页的标签页下按F12. 在下方弹出开发者工具面板.

1.然后点击Console控制台选项卡

2.然后输入: document.body.contentEditable = "true"

3.按下回车,现在你就可以任意编辑网页了

4.当然编辑完后也可以关闭可编辑状态

5)mac自带截屏工具

可以录屏,截屏,我有时候会把测试结果录屏或者截图下来给到业务方验收

6)还有xmind:写测试用例必备;mac便签:平时记录一些草稿乱七八糟的;其它一些常用chrome小插件:

写着最后

看到这篇文章的人有觉得我的理解有误的地方,也欢迎评论和探讨~

这一些资料,对做【软件测试】的朋友而言应该是较为完整了,这类学习资料也陪伴我走过了最艰难的路程,希望也可以帮助到你!万事要尽早,尤其是技术行业,一定要提升技术功底。

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

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

相关文章

樱花树盛开的季节,我用简单的C代码绘制了一棵樱花树向她表白~『C/C++图形库EasyX』

文章目录💐专栏导读💐文章导读绘制一根线条绘制一个简易的树干优化树干,使其更加细致绘制樱花树增加随机树形与渐变色效果如何设置随机数进阶——通过鼠标点击来控制生成樱花树进阶——生成樱花树并展示生长过程💐专栏导读 &#…

通过阿里云函数计算解决ChatGPT API的调用问题

ChatGPT系列文章 与其被ChatGPT取代,不如征服ChatGPT,做它的主人! 文章目录ChatGPT系列文章前言命令行部署准备工作两行命令实现部署应用中心部署使用代理访问API总结前言 自2022年11月30日 OpenAI 发布 ChatGPT 以来,虽然时有唱…

最新版本VSCode配置Python、PyQt5、QtDesigner环境并创建一个ui界面测试

参考链接:最新版本VSCode配置Python、PyQt5、QtDesigner环境并创建一个ui界面测试 一、安装Python3 PyQt5所支持的python版本是从3.5开始的,因此安装的Python3版本必须大于3.5。 我安装的位置是C:\Python\Python38。 参见真小白入门Pyhton的安装 二、安…

图-文多模态,大模型,预训练

参考老师的无敌课程 多模态任务是指需要同时处理两种或多种不同类型的数据(如图像、文本、音频等)的任务。例如,图像描述(image captioning)就是一种典型的多模态任务,它需要根据给定的图像生成相应的文本描…

XO08R2 1SBP260109R1001接地系统能够为dcs提供屏蔽层,消除电子噪声干扰

​ XO08R2 1SBP260109R1001接地系统能够为dcs提供屏蔽层,消除电子噪声干扰 dcs合理、可靠的系统接地,是dcs系统非常重要的内容。为了保证dcs系统的监测控制精度和安全、可靠运行,必须对系统接地方式、接地要求、信号屏蔽、接地线截面选择、接…

【C++学习】map和set的封装

🐱作者:一只大喵咪1201 🐱专栏:《C学习》 🔥格言:你只管努力,剩下的交给时间! map和set的封装🍉map和set中的红黑树🍌set中的键值和map中的键值&#x1f349…

CTF杂项提纲

CTF的杂项是涉及编码,图片隐写,音频隐写,压缩包分析的方向,本文对MISC的知识点做了一个简单列举 常见编码 ASCII 0-9,48-57 A-Z 65-90 a-z 97-122 URL url编码又叫百分号编码,是统一资源定位的编码方式 base16/…

ModStartCMS v6.2.0 VIP权益配置功能,界面UI优化升级

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议,免费且不限制商业使用。 功能特性 丰富的模块市…

【初识数据库】数据库简介及MySQL安装

目录 数据库基本概念: 主流的关系型数据库: 下载并安装数据库 我们选择的是:MySQL Community Server 8.0.26 卸载老版本MySQL 数据库基本概念: 数据库:是数据的仓库,存储数据的地方 数据库管理系统&am…

RK3568平台开发系列讲解(调试篇)debugfs 分析手段

🚀返回专栏总目录 文章目录 一、enable debugfs二、debugfs API三、使用示例沉淀、分享、成长,让自己和他人都能有所收获!😄 📢Linux 上有一些典型的问题分析手段,从这些基本的分析方法入手,你可以一步步判断出问题根因。这些分析手段,可以简单地归纳为下图: 从这…

进程虚拟地址空间的划分

进程虚拟地址空间划分是操作系统中的一个核心概念,它决定了进程可以访问的内存范围和方式。在本文中,我们将介绍进程虚拟地址空间的划分方法和各个部分的作用。 进程虚拟地址空间的划分方法 在操作系统中,每个进程都有自己的虚拟地址空间&am…

到底还是留不住!库克“中国行”后火速变脸,3000亿产能转向印度?

以国家的层面来制衡一家科技企业,这种事或许只有老美干得出来。当看到华为即将崛起之时,美一意孤行,修改了大量关乎芯片和商贸的政策。层层围堵之下,华为如今的市场份额大幅缩水,腾出来的高端市场基本被苹果占据。相关…

2023年数据挖掘与知识发现国际会议(DMKD 2023) | IOP JPCS独立出版

会议简介 Brief Introduction 2023年数据挖掘与知识发现国际会议(DMKD 2023) 会议时间:2023年6月24日-26日 召开地点:中国重庆 大会官网:DMKD 2023-2023 International Conference on Data Mining and Knowledge Discovery 由重庆邮电大学、重…

找工作吗?50道Python面试题集锦【附答案】

嗨害大家好鸭!我是爱摸鱼的芝士~ 希望能够帮助你在今年的求职面试中脱颖而出, 找到一份高薪工作~ 这些面试题涉及Python基础知识、Python编程、数据分析以及Python函数库等多个方面。 提前预祝给这篇文章点赞收藏的友友们~ 拿到心中最满意的那一份OF…

PHP快速入门13-MySQL数据库与Redis操作

文章目录前言一、PHP连接MySQL1.1 建立数据库链接1.2 插入数据1.3 更新数据1.4 删除数据1.5 查询数据并输出结果1.6 查询数据并返回结果1.7 获取查询结果的行数1.8 获取查询结果的列数1.9 获取查询结果的字段名1.10 获取查询结果的字段类型1.11 获取上一次操作影响的行数1.12 开…

PsExec流量分析

PsExec远程连接服务器 psexec是sysinternals提供的众多windows工具中的一个,这款工具的初衷是帮助管理员管理大量的机器的,后来被攻击者用来做横向渗透。 下载地址: https://docs.microsoft.com/en-us/sysinternals/downloads/psexec使用Ps…

d2l 里面GRU与Lstm实现

此二者的本质都是对rnn进行改良:关注当前多还是关注之前多。 在此详细讲一下。 目录 1.GRU门循环控制单元 1.1理论: 1.2初始化参数 1.3定义网络 1.4训练命令行 1.5简洁实现 2.Lstm长短期记忆网络 2.1理论 2.2加载参数 2.3定义lstm计算 2.4定义…

iTOP4412开发板Qt程序打包和部署

因为我们要把写好的程序发给用户来用,写好的源码也不方便给别人看,所以要把程序进行打包部署。 步骤一:点击左下角的电脑图标将 Debug 模式切换到 Release 模式。 release 模式:发布版本,不对源代码进行调试&#xff…

微信小程序:表格中更改输入框的值,实时获取表格全部数据,点击按钮更改数据库指定项数据

样例: 样式展示 数据库中原始第一条数据 修改表格第一行的数量: 数据库结果 核心代码 wxml ①wx:for:执行循环将数组数据展示出来 ②在某一单元格加上input样式 ③在input中绑定:文本框改变事件,并且绑定data-index便于知道…

网络编程,IO流

网络编程 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。 1.网络通信的要素 通信…