热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

测试工程师的转型探索:如何让产品质量变得更好?

__编者按:本文作者为孙高飞(ycwdaaaa),霍格沃兹测试学院特邀嘉宾,某人工智能企业资深测试开发工程师。原文标题《测试开发之路--让我们把产品质量变得更好(测试人的转型探索)

__


编者按: 本文作者为孙高飞(ycwdaaaa),霍格沃兹测试学院特邀嘉宾,某人工智能企业资深测试开发工程师。 原文标题《测试开发之路--

让我们把产品质量变得更好 (测试人的转型探索)》h
ttps://testerhome.com/topics/6557



前言

测试工程师应该都会面对或者经历过这么一段迷茫期:

不论我们设计多少测试用例,编写多少自动化测试脚本,执行多少测试计划,产品质量依然没有按照设想的那样发展。原来开发延期的依然会延期,原来提测 Bug

多的照旧不变,线上漏测的仍然会漏测。我们貌似都已经习惯了这些场景:延期、压缩测试时间、需求不对、部署事故、漏测等。

直到后来我们知道了 Google 的工程生产力团队,知道了 CI、CD、DevOps,知道了光靠 QA

来保证质量是不行的...。越来越多的新概念冲击着原有的质量保障理念,而随着很多公司的 QA

大部门被裁撤,测试工程师必须思考如何不被淘汰?所以我们要改变,要进化,要去做以前没想过的事。


以质量为中心,发散式工作

之前我也说过这种理念,我希望自己能不仅仅局限于测试行为这一条路。任何能提升质量的途径我都要尝试。之前的文章也写过这样一句话:


我开始了各种各样的,无所不用极其的野路子来提升质量,提升生产力。


提升产品质量有两种路子,一种是测试行为,这是最直接的方式。这一点我们研究了很久我不多说了。只是在此之外,我们仍然能发现很多问题,列几个常见的:

1.如果 RD 开发延期了,压缩了测试时间。我们有足够的时间去做测试么?2.如果 RD 提测的质量不好,全是bug。我们有足够的时间把 bug

都修完再重新测试么?3.如果系统过于复杂,过于高科技,有些东西我们测不了。RD

能够自测么?4.如果都开发完了,产品经理才发现与需求不符,我们有足够的时间重新来过么?5.如果团队每个人都因为这些原因疲于加班。我们还有时间创新么?

测试工程师总会面临一些我们自己控制不了的风险,例如开发延期,提测质量差。也许以前我会说那是 RD 的事,我不

Care。但是最后加班加成狗,质量还上不去的状况就会找上我。 所以,我想测试工程师得做点什么,把技术能力转变为生产力,提升团队所有人的效率

我们需要探寻第二条路子去解决这些问题。它是软性的,是间接的,是以提升生产力和效率的方式,间接的解决上面我们遇到的风险。


技术能力转变为生产力

我以前写过 CI

的文章,详细到每个分支的策略是怎么制定的;也写过环境管理的文章,详细到开发,测试,预演,预上线环境每一个都怎么做的;还写过单元测试架构,详细到

Jenkins 上每个配置如何设置。我还做过一些别的零散的,运维相关的事务。

通过这些综合的努力实践,我发现 测试工程师要想让其他人对质量负责,就得给他们提供更简单的方式 。例如:

1.我们希望 RD 能够自测,那我们就得有简单的方式让 RD 自测,太麻烦太耗费时间是不行的。2.我们希望 RD

不拖延进度,那就别让琐碎的环境问题拖延他们,别让需求不明造成他们返工。3.我们希望产品人员更好的预演产品,设计需求。那就给他们提供一个保持代码更新并稳定的环境。4.我们希望运维人员更好更快的部署产品,别在部署时期出问题。那就严格的按运维的标准去编译,出包,部署,测试。保证到了运维手里的东西,一定是可靠的。5.我们希望运维和

RD

有更多的时间提升架构,监控,运维自动化。那就让他们从琐事中解放出来。例如我承担了除生产环境之外的一切环境部署自动化管理、所有模块的自动化编译出包的工作。

举个详细点的真实例子。

也许对大部分团队来说,自测和联调一般不是什么问题,搭建个环境还不是分分钟的事。但我们团队不是:不仅业务复杂、架构复杂、配置复杂,还是多语言构建。每个模块的编译和部署方式可能都不一样。靠各自模快的

RD 一起拼是拼不出几个环境的。最终大家在一个环境上互相踩踏,互相影响。

我们期望 RD 能从整个产品的角度来设计,来自测。希望除了单元测试以外他们能从 UI

上从产品的角度测试。但如果没有一个专属的、他个人的环境让他随意破坏,那是绝对不靠谱的。所以我们才提供了一套以 Docker

为基础的自动化部署开发环境的机制。注意这里是开发环境,不是测试环境。

有什么区别呢?区别是:测试不需要编译环境,不需要源代码,测试要模拟真实环境所以测试是按产品环境的结构部署的,所以测试只需要部署包。但开发不是,它希望这个环境能供他随意折腾。可以随意编译源代码,可以随意在环境中开发。那是他的实验室,怎么搞他说了算。

所以,我们给开发人员的环境都是完整的编译环境+部署环境,有源代码、ssh、MySQL Client、Git Client、Hadoop

Client、Spark Client,定制了各种方便的脚本拉代码,重启单个服务,重启所有服务等等。

同样,为了让 RD 能自己触发回归测试。我们在 Jenkins 上配置了相应的

job,一个按键就能让我们的自动化测试项目跑到他的环境上测试。测试报告里有每一步骤的日志,失败截图,环境信息。后来 case

越来越多,运行越来越慢,一套测试下来2个小时,RD 等不起。我们就分布式处理,从 2 小时降到了 20 几分钟。后来用这个 job 的 RD

越来越多,排队时间越来越长,所以我们计划着加资源,加机器。不让 RD 排队等待。

于是我们的提测质量越来越好,因为 RD 自测的越来越好。


与人方便就是与己方便

也许以前我会觉得这些事让他们自己操心去好了。但后来我发现,只有让研发能开心的自测了,我自己才能开心的测试。否则一定是到提测阶段,我就痛苦的像条狗。恩,与人方便就是与己方便。

•我们提升了 RD 的开发效率就能让他们更快的完成产品开发,我们也有更多的时间测试-- 与开发方便就是与己方便 •我们让 RD

自测的更快更方便就能提升了提测质量,减少我们的工作量-- 与开发方便就是与己方便

•我们给产品人员的预演环境做蓝绿部署,永远有最新的稳定产品给他们用。让他们及时纠正需求,更好的设计产品,减少返工-- 与产品方便就是与己方便

•我们按运维标准承担了所有模块的编译出包的自动化,让运维在何时何地都能一键拿到他们想要的包,让他们更快更好的部署-- 与运维方便就是与己方便

•我们承担了除产品环境外所有环境的部署和维护自动化,让所有人都从这些破事中解放出来,专注自己的事情让产品变得更好-- 与人方便就是与己方便


总结

恩,这是我想到的方式,它没什么名字,没什么固定的套路。它就是一个思路,一个用自己的技术去解决团队中一个一个痛点的思路。也许在你的团队中,我碰见的这些问题都不是问题。但总有属于你自己团队的问题。找到它,解决它,别让他们成为影响你产品质量的根源。

我受谷歌影响颇深,所以路子十分像他们的工程生产力团队,但略有不同,我期望能由我们来辅佐甚至打通 DevOps

的路径,说不定以后会有一个新的职位诞生,例如叫什么 DevOps 工程师,团队工程化工程师等等。
产品质量已经不是单打独斗的天下了。 _

(end)_ **** ****

**

**

- 能力进阶 -

全面提升软件工程质量和研发效能,已经是很多互联网巨头企业如华为、阿里巴巴、腾讯、小米、京东等产品技术团队的重要目标。

从人才招聘纬度可以看出, 当前 BAT、TMD 等大厂测试社招,已经几乎不再招募传统测试工程师,而基本 只招测试开发工程师。

随着敏捷开发、DevOps、持续交付的流行,软件测试人员必须成长进阶为测试开发工程师,同时具备一定的开发和运维能力。

测试开发工程师会通过 测试左移

,更深入介入开发工作,提前与开发人员一起制定测试计划,推动代码评审、代码审计、单元测试、自动化冒烟测试、测试精准化分析以及研发自测等来保证研发阶段的质量。

测试开发工程师会也通过 测试右移 ,参与配置部署,将自动化测试用例配置到持续交付链中,并全流程监控发布后的应用质量。

总之,作为 DevOps 关键角色,测试人员将推动开发和运维共同实现高效交付高质量产品的目标。

为了帮助传统测试工程师以及在职测试开发工程师成长进阶,同时也为了解决互联网企业的测试开发人才困境,霍格沃兹测试学院与 TesterHome 社区联合发起了「

中高级测试开发工程师名企定向培养计划 」项目。

资深测试架构师用 4 个月项目实战,带你快速提升测试开发实战能力,挑战 BAT 高薪 Offer!

报名方式 :扫码加小助手微信,回复「 名企定向 」入群咨询。

报名方式 :扫码加小助手微信,回复「 名企定向 」入群咨询。

点击“ 阅读原文 ”,了解更多详情。

- 利 ** ** -

关于测试工程师的进阶和成长痛点, 请在评论区留下你的感言,关注霍格沃兹测试学院公众号,并转发文章到微信朋友圈

。小编会挑选一位精彩回复者,赠送定制版好礼( 五选一, 截图证明)。

在霍格沃兹测试学院

与优秀的测试开发工程师并肩

来霍格沃兹测试开发学社,学习更多软件测试与测试开发的进阶技术,知识点涵盖web自动化测试 app自动化测试、接口自动化测试、测试框架、性能测试、安全测试、持续集成/持续交付/DevOps,测试左移、测试右移、精准测试、测试平台开发、测试管理等内容,课程技术涵盖bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相关技术,全面提升测试开发工程师的技术实力

QQ交流群:484590337

公众号 TestingStudio

点击获取更多信息



推荐阅读
  • 无论你是刚毕业的大学生,还是想在职业中寻求进步的经验丰富的IT专家,这些提示都可以帮你成为DevOps工程师。DevOps工程是一个备受称赞的热门职业。不管你是刚毕业正在找第一份工 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 2023年,Android开发前景如何?25岁还能转行吗?
    近期,关于Android开发行业的讨论在多个平台上热度不减,许多人担忧其未来发展。本文将探讨当前Android开发市场的现状、薪资水平及职业选择建议。 ... [详细]
  • CRZ.im:一款极简的网址缩短服务及其安装指南
    本文介绍了一款名为CRZ.im的极简网址缩短服务,该服务采用PHP和SQLite开发,体积小巧,约10KB。本文还提供了详细的安装步骤,包括环境配置、域名解析及Nginx伪静态设置。 ... [详细]
  • 理解浏览器历史记录(2)hashchange、pushState
    阅读目录1.hashchange2.pushState本文也是一篇基础文章。继上文之后,本打算去研究pushState,偶然在一些信息中发现了锚点变 ... [详细]
  • 2017年软件开发领域的七大变革
    随着技术的不断进步,2017年对软件开发人员而言将充满挑战与机遇。本文探讨了开发人员需要适应的七个关键变化,包括人工智能、聊天机器人、容器技术、应用程序版本控制、云测试环境、大众开发者崛起以及系统管理的云迁移。 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 利用Jenkins与SonarQube集成实现高效代码质量检测与优化
    本文探讨了通过在 Jenkins 多分支流水线中集成 SonarQube,实现高效且自动化的代码质量检测与优化方法。该方案不仅提高了开发团队的代码审查效率,还确保了软件项目的持续高质量交付。 ... [详细]
  • gitlab+jenkins_gitlab+jenkins+docker
    gitlab+jenkins_gitlab+jenkins+docker ... [详细]
  • 在 CentOS 7 上部署和配置 RabbitMQ 消息队列系统时,首先需要安装 Erlang,因为 RabbitMQ 是基于 Erlang 语言开发的。具体步骤包括:安装必要的依赖项,下载 Erlang 源码包(可能需要一些时间,请耐心等待),解压源码包,解决可能出现的错误,验证安装是否成功,并将 Erlang 添加到环境变量中。接下来,下载 RabbitMQ 的 tar.xz 压缩包,并进行解压和安装。确保每一步都按顺序执行,以保证系统的稳定性和可靠性。 ... [详细]
  • 深入探讨前端代码优化策略
    本文深入讨论了前端开发中代码优化的关键技术,包括JavaScript、HTML和CSS的优化方法,旨在提升网页加载速度和用户体验。 ... [详细]
  • 解决JavaScript中法语字符排序问题
    在开发一个使用JavaScript、HTML和CSS的Web应用时,遇到从SQLite数据库中提取的法语词汇排序不正确的问题,特别是带重音符号的字母未按预期排序。 ... [详细]
  • 在Windows 10环境中通过单个Tomcat实例部署两个Web应用项目
    在Windows 10环境下,本文详细介绍了如何通过单一Tomcat实例部署两个Web应用项目。首先,准备所需的两个WAR包,分别为jprss.war和jenkins.war。接着,文章逐步讲解了具体的配置和操作步骤,确保两个项目能够顺利运行。最后,验证了两个应用项目的成功部署和正常运行。 ... [详细]
  • 在 Tomcat 上部署 Jenkins 实现持续集成环境搭建
    本文介绍了如何在Tomcat服务器上部署Jenkins以构建持续集成环境。首先,需下载并解压Tomcat压缩包,例如 `apache-tomcat-8.5.37.tar.gz`。接着,为Tomcat创建一个管理用户,并对相关文件目录进行权限配置,确保Jenkins能够顺利运行于Tomcat之上。此外,还详细阐述了环境配置、服务启动及基本的故障排查技巧,为用户提供了一套完整的部署指南。 ... [详细]
author-avatar
半夏✔
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有