我理解的测试开发与实践总结——新人篇

news2024/10/6 14:38:15

 我理解的测试开发与实践总结——新人篇

目录导读

一、我理解的测试开发

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

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

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

五、我们需要具备的素质

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

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


写在前面:

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

一、我理解的测试开发

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

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

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/185291.html

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

相关文章

windows下编译mingw版本的glew库

glew下载 https://glew.sourceforge.net/index.html windows二进制版下来是MSVC版的库文件,.lib文件。而gcc并不能使用,需要重新进行编译。 下载源码版的glew文件,解压,进入到源码目录,打开cmd 第一步:编译…

【OpenCV】 模版匹配 | 霍夫变换 | 霍夫线、圆检测

Ⅰ. 模版匹配和霍夫变换 0x00 模板匹配 原理 所谓的模板匹配,就是在给定的图片中查找和模板最相似的区域,该算法的输入包括模板和图片,整个任务的思路就是按照滑窗的思路不断的移动模板图片,计算其与图像中对应区域的匹配度&…

春节要闻回顾 | 美SEC被列入Genesis债权人名单;亚马逊或将推出专注于游戏的NFT项目...

春节期间区块链行业要闻回顾:产业方面,达沃斯央行数字货币小组认可CBDC是央行货币的未来,但目前部署存在困难,亚马逊或将推出专注于游戏的NFT项目;政策方面,拜登政府将在未来几个月公布数字资产优先事项&am…

数据结构——顺序表(三)

数据结构 文章目录数据结构一、什么是顺序表二、顺序表的创建1.静态顺序表2.动态数据表三、顺序表的初始化、销毁四、顺序表的插入1.尾插2.头插3.任意插入总结一、什么是顺序表 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组…

Python实例方法、静态方法和类方法详解

和类属性一样,类方法也可以进行更细致的划分,具体可分为类方法、实例方法和静态方法。和类属性的分类不同,对于初学者来说,区分这 3 种类方法是非常简单的,即采用 classmethod 修饰的方法为类方法;采用 sta…

FreeRTOS消息队列

消息队列是一种常用于任务间通信的数据结构。通过消息队列服务,任务或 中断服务例程可以将一条或多条消息放入消息队列中,同样,一个或多个任务可 以从消息队列中获得消息。本章将向大家介绍 FreeRTOS 的消息队列,通过本章 的学习&…

238. 除自身以外数组的乘积

【答案解析】:暴力不考虑其他的因素的话,将所有数据乘积起来,然后遍历数组除以当前位置数据即可。更优解法:将乘积分为两次进行,第一次先将每个位置左边的数据乘积计算出来放到返回数组中,后边第二次循环 将…

【Java面试(二)】冒泡排序的实现及优化

文章目录前言冒泡排序初步实现冒泡排序_优化_减少比较次数冒泡排序_优化_减少冒泡次数冒泡排序_优化_进一步优化比较次数总结前言 今天我们来学习与排序相关的面试题,首先我们先来学习冒泡排序,那什么是冒泡排序呢,它的关键在于数组中相邻元素…

变聪明的方法就是学习,每个人最终都会与生活和解,连村西透仿佛也捡回了昔日的勇气。

文章目录❤️‍🔥 序❤️‍🔥 往事如风迹难寻 - 成为创作者的契机❤️‍🔥 新星计划遇善者 - 出道即是巅峰MVP❤️‍🔥 知行合一心依旧 - 初心不改坚持创作❤️‍🔥 知易行难搞规划 - 这是不能说的秘密❤️‍&#x1f…

中国为何就不能有自己的豪华MPV?

文|智能相对论作者| 陈明涛是时候重新认识海外汽车品牌和国产汽车品牌的MPV了。去年,曾有雷克萨斯LM在碰撞后出现全车车门无法打开,之后车辆起火酿成悲剧,引发了全网对MPV碰撞安全的高度关注。前段时间丰田埃尔法再登热搜,这次不是…

2023最新Python国内镜像源,亲测可用

1、镜像源 pip包管理工具可以下载第三方库到本地使用,第三方库的来源地址称之为镜像源,镜像源中存放了大量的开源库供我们下载使用。pip的默认镜像源地址在国外,下载很慢,本文收集了当前国内常用的镜像源,速率由快到慢…

Java多线程 - 定时器-并发与并行-线程生命周期

文章目录多线程补充定时器并发和并行线程的生命周期多线程补充 定时器 定时器介绍: 定时器是一种控制任务延时调用,或者周期调用的技术。 作用:闹钟、定时邮件发送。 定时器实现方式: 方式一:Timer 方式二: ScheduledExecutorSe…

java程序报错后的排错思路

目前总结出来三个字:看日志! 而且是从左到右一个单词一个单词的看。   举个例子:   Spring框架下的一个Demo,启动时报出了以下错误。 一、看异常类型   首先,能看到异常是从引入的SpringFramework依赖中报出来的&#xf…

[数据结构基础]排序算法第三弹 -- 快速排序

目录 一. 快速排序的基本思想 二. 快速排序的递归实现 2.1 单趟快速排序的实现 2.1.1 Hoare法实现单趟快排 2.1.2 挖坑法实现单趟快排 2.1.3 前后指针法实现单趟快排 2.2 递归快排的整体实现 三. 快速排序的时间复杂度分析 四. 快速排序的非递归实现 4.1 快速排序非递…

Promise详解与手写实现

Promise详解与手写实现Promise1、Promise介绍与基本使用1.1 Promise概述1.2 Promise的作用1.3 Promise的使用2、Promise API3、Promise关键问题4、Promise自定义封装5、async与await5.1. mdn文档5.2.async函数5.3.await表达式5.4.注意Promise 1、Promise介绍与基本使用 1.1 P…

电商维权,维权方法汇总【超全】

电商维权,就是维护线上渠道中自己的合法权益,其中包括消费者维权、品牌方维权、卖家维权。今天,我们来聊一聊消费者维权。 1、 维权类型 消费者在网购过程中难免遇到各种问题,主要就是产品质量问题、产品价格问题、产品售后问题、…

JavaWeb-VUEElement

JavaWeb-VUE&Element 1,VUE 1.1 概述 Vue 是一套前端框架,免除原生JavaScript中的DOM操作,简化书写。 Mybatis 是用来简化 jdbc 代码编写的;而 VUE 是前端的框架,是用来简化 JavaScript 代码编写的。前一天我们…

PID控制的方波响应

被控对象为一延迟对象:采样时间为20s,延迟时间为4个采样时间,即 80s,被控对象离散化为:y(k) -den(2)y(k- 1)num(2)u(k - 5)由于方波信号的速度、加速度不连续,当位置跟踪指令为方波信号时,如采用…

C++ 树进阶系列之树状数组的树形之路

1. 前言 树状数组也称二叉索引树,由Peter M. Fenwick于1994发明,也可称为Fenwick树。 树状数组的设计非常精巧,多用于求解数列的前缀和、区间和等问题,为区间类型问题提供了模板式解决方案。 数状数组简单易用,但对…

【100个 Unity实用技能】 | 修改Unity UI控件中默认字体配置

Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。Unity 平台提供一整套完善的软件解决方案&#xff…