成为一个优秀的测试工程师需要具备哪些知识和经验?

news2024/11/26 16:58:54

目录

前言: 

  1、我们先来讲第一点,由单纯的测试变成项目质量保证工作

  2、持续集成探索和自动化测试技术研究

  3、测试相关工具的开发

总结忠告


前言: 

本人7年测试经验,在学测试之前对电脑的认知也就只限于上个网,玩个办公软件。这里不能跑题,我为啥说:自学软件测试,一般人我还是劝你算了吧?因为我就是那个一般人!

软件测试基础真的很简单,是个人稍微认真点都能懂,这就是好多人说软件测试简单、易懂、好学,然后就是一顿浮夸的言论,误导那些小白,这里我就给那些轻浮的人泼一桶冷水,懂和学会是一码事吗?

  1、我们先来讲第一点,由单纯的测试变成项目质量保证工作

  测试,从狭义的角度来讲,包括如下这些环节:

  测试计划和测试用例编写-测试执行-质量报告书写

  测试人员一般会在开发阶段就进行测试计划和测试用例的编写和准备工作;在测试阶段,我们一般先会做功能测试,等项目功能基本稳定,bug较少了,就开始做兼容性测试、性能测试、安全性测试。兼容性测试保证了产品在多浏览器、APP在产品在不同机型下的兼容性;性能测试保证了产品在海量用户大流量下的服务能力;安全测试能发现产品可能会被攻击的各个隐患。做完了这些测试以后,人员发布质量报告,产品上线。

  不过,优秀的测试人员需要向上游和下游拓展测试的领域,把自己放在“质量保障”的角色上,推动整个项目组一起保证质量,上游的工作包括:

  在产品刚立项、进行需求确认的时候,测试人员就会参与进去,仔细地Review需求,看需求是不是完整、有没有漏洞,这个时候还没有进入正式开发,修改需求对于项目组来说代价是最少的。在这个环节,测试人员凭借缜密的推演、发散性的思维,往往能发现很多需求的漏洞,提高了项目的整体效率。

  另外,测试人员在完成测试计划、测试用例以后,会邀请开发、策划一起来评审测试用例,在这个环节,由于测试人员把每个需求如何细化测试都体现在了用例里面,就相当于再次把需求分析了个透,往往还能发现很多需求的漏洞。这也是提早发现需求漏洞的有效环节。

  我们知道,代码的质量归根结底是由开发保证的,测试做的工作,只是发现Bug让开发修复。如果一个花瓶,一开始就是很完美的;另一花瓶经过了各种修补,看起来比较完美,大家觉得哪个花瓶比较好?当然是第一个花瓶。所以,测试人员应该站在质量保障的立场,想办法跟项目组沟通、给开发提供工具,让开发自己把质量保障工作做好。比较可行的一些方式是:提供一些手工用例让开发自测;给一些自动化的接口和UI测试代码让开发自测;部署静态代码检查工具,并推动开发分析和修改发现的问题;有一些做得好的项目已经实现了持续集成,也可以尝试。

  下游的工作包括:

  在产品完成了测试以后,就是发布的环节了,测试人员在发布的环节也能发挥作用,首先,测试人员为了部署测试环境,研究自动化部署的技术,可以把上线部署的环节也自动化,以前需要2个小时的部署环节压缩到半个小时甚至更少,而且更加准确可靠。

  如果有些版本修改比较多,上线的质量风险大,测试人员会跟产品一起制定灰度发布的方案并在技术上进行实现,让版本先面向一小部分用户开放,如果发现Bug了,影响的用户也比较小,Bug改掉以后,再逐渐扩大用户范围。

  另外,优秀的测试人员还会发动项目组的其他人一起来保证项目质量,比如推动开发进行代码Review;引入冒烟自测流程,让开发先自测以后再提交给测试做冒烟测试;通过在项目组分析Bug,让开发提高自测,降低Bug数量等;引入策划、交互、视觉在测试阶段进行走查,等等各种措施。

  2、持续集成探索和自动化测试技术研究

  业界都在说持续集成,那持续集成究竟是个什么鬼呢?

  持续集成原本的意思是让开发每提交一次代码就自动化测试一次,如果自动化测试发现问题了,测试用例就会失败,开发就会马上发现这个失败,并修改代码。

  要做到持续集成可有很多工作要做。

  首先就是编译环节,要把所有编译的环节都自动化起来,开发每次提交代码都能进行自动编译。

  编译完成后,就是静态代码检查的环节,通过静态代码检查的工具检查代码的问题,比如,数据库连接池没有释放,参数不匹配等。

  静态代码检查完成后,就是单元测试了,单元测试用例一般是开发人员或者测试人员编写,或者开发和测试合作编写,保证的是开发内部函数的正确性。一个健康的自动化测试方案中,单元测试用例的占比是最高的。

  然后就是接口测试,一般保证的是后端开发提供给前端开发的HTTP接口,接口一般也比较稳定,用例比较容易维护,所以,接口测试的自动化占比也可以做到很高。

  在接口测试的上层就是针对用户界面的UI测试了,就像测试人员手工执行一样,UI自动化测试能操作页面的元素,完成自动化。不过,由于用户界面常常要重构,所以我们常常会控制UI自动化测试的规模,只覆盖主干的用例。

  优秀的测试人员可以把自己的工作尽量自动化,并用持续集成框架串起来,提高工作效率和质量。

  3、测试相关工具的开发

  优秀的测试人员会开发其他好用、趁手的工具来提高工作效率,比如数据自动生成、报表自动生成、报bug工具等。

  其实归根结底就是一句话:测试人员最核心的工作就是保障项目的质量,各类测试流程、技术、工具和平台的发展让我们可以更好地保证项目的质量。

总结忠告

努力了不一定有回报,但不努力是一定不会得到回报的。人类的幸福和快乐在于奋斗,而最有价值的是为理想而奋斗。要努力,不放弃,为了自己的理想,为了美好的明天。有梦就去追啊,愣在原地做什么。无论明日,有多落魄,至少今天,没有蹉跎。 生前何必久睡,死后自会长眠。

 

作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些性能测试前进之路的必须品,如果你用得到的话可以直接拿走,希望能对你带来帮助。(性能测试,大厂面试真题、简历模板等等),相信能使你更好的进步!

获取方式:留【性能测试】即可:【自动化测试交流】:574737577(备注ccc)icon-default.png?t=N4P3http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=BHdzgqNXipqTndRjIrF6GAKC5-OmgB6o&authKey=rcWrerWOeUI1fnBF%2B02IJwI9GjXgXT2B%2BlJj974rhIy7DGIcveA%2BhtIzgWnWoeih&noverify=0&group_code=574737577

 

 

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

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

相关文章

狂野java前置课程-线程池的基本使用

回顾 什么是线程,什么是进程? 进程:是一个应用程序,里面包含很多线程线程:进程执行的基本单元 java实现线程的几种方式 继承Thread类实现Runable接口 线程的生命周期 执行线程会出现的问题 一个线程只能执行一个…

【专为苛刻的数据环境而构建】上海道宁为您带来世界上先进的矢量原生、时间序列和实时分析数据库——kdb系列产品

kdb是高效的矢量原生 时间序列和实时分析数据库 专为高性能矢量 数据驱动的应用程序而构建 以加速云端、数据仓库和 数据湖中的 AI 和 ML 工具 从而更快、更高效地 制定业务决策 使用数据时间库加速数据 分析和生成 AI 管道 以降低成本 提高性能并提高效率 开发商介绍…

移动端图形API通讲(一)--从Gles、Vulkan到Metal

转载请注明,来自leonnwei的csdn blog 引言 一直想整理下关于移动端图形编程API的文档。图形API为何重要?如果说图形编程的内功是计算机图形学的诸原理和算法,那么外功就是实实在在的硬件API。不能精通API的使用,就无法把渲染特性合…

新来个技术总监,把限流实现的那叫一个优雅,佩服!

在电商高并发场景下,我们经常会使用一些常用方法,去应对流量高峰,比如限流、熔断、降级,今天我们聊聊限流。 什么是限流呢?限流是限制到达系统的并发请求数量,保证系统能够正常响应部分用户请求&#xff0…

人脸比对指标 -- 人脸相似度

目前市面上既有OpenCV等开源算法库,很多芯片厂商的产品也自带简单算法,同时专业算法大厂也会开放相关技术,如提供免费、离线人脸识别SDK的虹软视觉开放平台等。对于开发者而言,面对多种算法,如何进判断算法性能至关重要…

Vue初始化项目加载逻辑

Vue初始化项目加载逻辑 项目创建 我们只需要创建项目即可,剩余的依赖都没必要安装 我们先来看main.js,咱们加了一行备注 import Vue from vue import App from ./App.vue import router from ./router import store from ./storeVue.config.productionTip fals…

汇众智,奔涌向前赢未来 | 2023开放原子全球开源峰会 OpenAtom openEuler 分论坛即将启幕

OpenAtom openEuler(以下简称“openEuler”)自 2021 年贡献给开放原子开源基金会后,步入高速发展阶段,社区每日活跃开发者近 4000 人,新增讨论 2168 次,代码合入 127 个、软件包 31 个;每月新增…

【python】之cowsay库,打印图案!

以前经常看到互联网大佬的Linux shell脚本启动的时候显示一副炫酷的字符画面,逼格瞬间提升一个档次,按说字符拼画也不是什么难事,只要有时间、有耐心(然鹅大部分人这两样都没有)。 网上流传着一个很老的库cawsay牛说。cowsay是一个生成ASCII…

MMDection学习记录(一)之环境配置

Linux下环境配置 创建环境并激活 conda create --name openmmlab python3.7 -y conda activate openmmlab安装Pytorch 建议使用pip命令安装,否则会报错: symbol free_gemm_select version libcublasLt.so.11 not defined in file libcublasLt.so.11 w…

24节气-芒种 || 一分耕耘,一分收获。

“时雨及芒种,四野皆插秧。” 芒种,农历二十四节气中的第 9 个节气,夏季的第 3 个节气,表示仲夏时节的正式开始。 芒种意味着谷物播种的好时机,农事耕种的劳动量会大大增加,因此芒种也有“忙种”的说法。…

TrueBot活动的惊人激增揭示了新的交付载体

网络安全研究人员披露,在2023年5月观察到TrueBot活动激增的情况。 "VMware的Fae Carlisle说:"TrueBot是一个下载器木马僵尸网络,它使用命令和控制服务器来收集被攻击系统的信息,并将被攻击系统作为进一步攻击的发起点。…

云原生网关Apache APISIX

Apache APISIX 介绍 什么是Apache APISIX Apache APISIX 是一个动态、实时、高性能的云原生 API 网关,提供了负载均 衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功 能。可以使用 Apache APISIX 处理传统的南北向流量,也可以…

数据可视化 - 派可数据商业智能BI可视化分析平台

有一点可能很多人没有想到,实际上商业智能BI的相关概念已经有了数十年的发展历史。在这段发展过程中,商业智能BI形成了一套成熟的理论和产品体系,并且在现代的信息化、数字化加成下,成为了各行各业企业的成熟产品。 一、商业智能…

ROS学习笔记(十):机器人建模

ROS学习笔记(十):机器人建模 统一机器人描述格式(URDF)link标签joint标签robot标签gazebo标签 URDF检查URDF可视化 统一机器人描述格式(URDF) URDF(Unified Robot Description Form…

springboot项目 + rancher管理 实现用户无感知部署

springboot项目 rancher管理 实现用户无感知部署 rancher/yaml设置 在rancher找到对应服务的config,将Minimum Ready设置为合适的时间(单位为秒) 或者以yaml文件修改配置,但是在yaml配置中是叫minReadySeconds spec: # 定义de…

95后自述,00后都这么卷了吗?

在程序员职场上,什么样的人最让人反感呢? 是技术不好的人吗?并不是。技术不好的同事,我们可以帮他。 是技术太强的人吗?也不是。技术很强的同事,可遇不可求,向他学习还来不及呢。 真正让人反感的,是技术平平&#x…

【云原生 · Docker】轻松学会dockerfile构建镜像

目录 🍉dockerfile是什么 🍉镜像的缓存特性 🍉dockerfile命令 🍒FROM 🍒RUN 🍒CMD 🍒LABEL 🍒EXPOSE 🍒ENV 🍒ADD 🍒COPY 🍒ENTRYPOIN…

浅析国有企业信息化建设的难点及解决对策

01 国有企业信息化部门主要做什么? 国有企业信息化部门负责在企业范围内推进信息化工作。他们的职责包括但不限于:制定信息化战略和规划、实施信息化项目、管理信息系统和网络、维护和升级软硬件、开发新的数字化产品和服务、提高信息安全和数据隐私等。…

【正点原子STM32连载】 第二十七章 RTC实时时钟实验摘自【正点原子】STM32F103 战舰开发指南V1.2

1)实验平台:正点原子stm32f103战舰开发板V4 2)平台购买地址:https://detail.tmall.com/item.htm?id609294757420 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第二十…

spring 注解 @RequestPart @RequestParam 获取文件流 MultipartFile ,读取Excel等文件

RequestPart RequestPart这个注解用在 multipart/form-data 表单提交请求的方法上。 RequestParam 也可以携带文件 RequestParam也同样支持 multipart/form-data 请求。 RequestParam和RequestPart的区别 RequestParam 适用于 name-valueString 类型的请求域,R…