[经验分享] 从开发转QA工程师?为何想要转职?开发与QA的差异?

大家好!本篇将会以我转职的心路历程作为主轴,我为什麽转职成QA?当开发与当QA差很多吗?当QA该注意些什麽?等等问题,我皆会以我个人经验为主去探讨,若有其他想法也请各位不吝啬告诉我:)

先简单自我介绍下~
小弟目前毕业已一年多,出社会後第一份工作为【网站工程师】,那时候主要负责前端工作,偶尔会协助後端,由於当时工作大多时间都是负责前端,所以我把自己定为前端的脚色,工作内容大多是依照特殊活动并开发网站新功能及维护既有旧功能
任职满一年後就转职成【Quality Assurance Engineer】,一个不小心就打开了未知的大门
(以下开始简称QA)

进入正题


什麽是QA?手动QA?自动化QA?

手动QA vs 自动化QA
QA职称全名为【品质保证工程师】,在台湾市场中,似乎为 手动QA 为居多

  • 手动QA
    • 简单说就是透过人力去检测或重现BUG等等,较消耗人力及时间。
  • 自动化QA
    • 简单说就是透过程序脚本去自动检测BUG等等,并且品质也较高,因为脚本的顺序条件都是固定的,不会有人工检测上的误差

或许会觉得 「感觉自动比较好吧?节省人力品质又高等等」
但其实是会针对情况不同而去调整是要手动还是自动

e.g.
今天使用者反应有个输入栏位没有正规化导致操作上会有错误,这时候应该要手动检测还是自动化检测呢?

A:
我会认为此时可以先透过手动方式去检测栏位是否真的异常,若真的有异常,再将此BUG转交给开发处理,并且将此BUG列个测试案例,日後补充在自动化脚本中,之後只要执行该脚本就可以预防此问题

简单来说就是手动可以在段时间内较快速检测出某些问题,自动化则是日後补足脚本并预防这些问题再次发生
手动是短线解 自动化是长线解

剩余的我就不细说手动与自动化的差异了~
要详细了解QA可参考:
手动测试与自动化测试的区别
QA、QC,傻傻分不清楚


转职动机?

转职动机

在【网站工程师】任职刚满一年後,突然朋友问我是否要去面试看看他们公司【Junior QA Engineer】的职缺
其实周围朋友大多是QA工程师,所以也很好奇QA到底是什麽
起初只知道QA就是【品质保证】,想着当开发如果能够有QA的经验,应该在开发时就可以对产品有品质加成的效果
所以思考後,就这样去面试看看,
透过着大学时期写过一个自动化小专案及一些程序语言的基础,意外地就面试上了/images/emoticon/emoticon07.gif


开发不好吗?为什麽要转QA?


我没有要引战XD 请先让我娓娓道来

我觉得当开发有个好处是,可以尽情钻研某技术的深度,然後让你在这技术上成为佼佼者。
同时也可以多接触其他技术领域,来补足某些技术上的缺陷。
当开发没有不好,只是我当时在思考方面明显不足而已。

我认为
当开发的思维 与 当QA的思维 确实明显不同
因为开发可能只着重於我现在的写的 Feature 或 BUG
但QA会需要着重於产品整体,为什麽要有这Feature某Feature是否会影响到使用者某些操作行为,或者 某栏位上的文案是否正确等等都需要注意到

所以我转当QA确实是为了日後弥补当开发时的我一些思维上的缺陷,同时也是补足我软实力的方面


开发与QA的差异?

当开发时的我

  • 技术 ★★★★✰

    • 身为开发要一直钻研并思考程序可以如何更有效率的执行,故而比重较多
  • 跨部门沟通 ★✰✰✰✰

    • 开发中途有问题都是统一整理给PM,PM会在跟需求方开会确认目前状况期问题,所以亲自去沟通的机会很少
  • 开发流程 ★★✰✰✰

    • 基本上我只要确保开发环境就好,其余的前置的确认需求、开会讨论等等我都不用参与,所以整体流程就算知道了也不会实际操作

当QA的我

  • 技术 ★★★✰✰

    • 需要思考哪些元件或函式式需要常使用的,并且如何执行会比较快,在写自动化时候这部分就很重要,因为会很常有重复的流程需要反覆执行。
  • 跨部门沟通 ★★★★★

    • 这可谓是我的技能点满的时刻,因为时常需要跟需求端(e.g. 客服、设计、使用者等等)确认需求规格,才能确保这个BUG是合理出现 或者 这个Feature是没问题的。
      若出现技术层面的问题,又必须要开发确认好问题才能转告给需求端知道,所以QA不管是在沟通能力、程序技术等等都必须要有一定个基础能力,否则若出现沟通上的障碍,那问题就会没完没了
  • 开发流程 ★★★★★

    • 这对於QA来说是最重要的环节,有时连小小的文案都必须了如执掌,若QA连自家公司的开发流程都搞不懂,那很容易会有 出现问题不晓得该找谁、出现问题不晓得该怎麽解决、开发新功能却不知道何时检测 ,如果连QA都测得乱七八糟,那产品一定会有问题。

总结

当开发时,工作比较单纯,强项在於技术层面,但若多人开发时,会出现我不了解A功能为啥有BUG,因为不是我写的这麽BUG要等A同事来才能解决原来还有这个功能喔?我都不知道欸 应该是A同事处理的 等等窘境。
当QA时,工作范围变广,除了沟通能力之外,在处理事情也需要有明确的优先顺序,对产品整体的是需要更了解,另外技术方面同时也要有一定基础量,除了自动化之外,当开发说明技术难点时会听不懂,甚至会不知道如何检测BUG。

目前是我当QA三个月的经验分享,不代表任何立场XDD

若有任何想法也可以留言告诉我
/images/emoticon/emoticon41.gif


<<:  Learning How to Make a Movie

>>:  在 Rust 中使用 log: log / slog / tracing

Day29_CSS语法12

不知不觉来到了尾声,最後来和大家介绍渐层的属性 linear-gradient(线性渐层) 角度|方...

@Day10 | C# WixToolset + WPF 帅到不行的安装包 [自订动作介接画面-安装前执行]

安装前 要执行的动作 昨天有讲到安装後的执行动作,那安装之前要执行的动作勒?! ex 我想先侦测出本...

烟囱式架构 (Information Silo Architecture)

烟囱式架构 相对於中台架构,烟囱式架构就像多个互相独立的应用系统,代表着业务流程的区隔 ─ 重复的功...

[区块链&DAPP介绍 Day13] Solidity 教学 - contracts-2

今天来聊聊关於 contracts 的继承 关於 contracts 其实它是支援多重继承,在这方面...

[Day12] 建立订单交易API_5

本节将继续实作内文加密,程序如下 def aes_encrypt(key, content, iv)...