首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Futurera每周求职tips汇总 第十四期

本周CS510 Automation QA开课啦,所以这周tips就围绕着QA来说吧!

Agile Methodologies

Agile的概念就是,把一个完整的产品/软件/功能拆分成既相互独立,又能共同协作的组件,然后通过快速迭代来把各个组件分别做好,最后完成整体这样的一个方法论。

它的价值在于能够为产品提供incremental values,通过不断的更新来为用户提供不断完善的功能。

例如,我们可以把facebook拆分成:聊天、用户照片分享、照片评论、用户发布状态、用户点赞等多个功能。这样一次做一个功能,多做几次,facebook就成型了。

这样的好处自然就是用户很快就能够开始匿名聊天,而且不断发布新版本,用户可以不断获得新的价值。

总而言之,Agile就是这样一个move fast -> break stuff -> improve的方法论。

Lean Startup

与上文敏捷开发 agile methodologies 相对应的,有一个创业的方法论叫做 lean startup精益创业,两者其实有着异曲同工之妙。

Lean startup的核心思想是,根据你对市场以及你的创业思路,制定一个MVP (minimum viable product) ,即整个创业的核心产品

这个产品可以长得不那么精雕细琢,可以有点bug,但是它必须能够展示你产品最内在、最核心的功能。

例如,Facebook的基础功能有用户聊天,淘宝必须要可以下单买东西、Uber必须会叫车……

而非基础功能比如,Facebook 可以没有点赞功能,淘宝可以没有评价功能,Uber可以没有拼车功能……

当然,后续添加的功能,让他们吸引到更多的用户。但是那些公司最早就是靠基础功能发展起来的,没有这些功能,自然也没有这些伟大的公司了。

所以 lean startup 最核心的思维就是,早期尽快推出一个对你而言生死攸关、价值最大的MVP,尽快发布它;然后根据用户反馈改进它,或者关掉停止它 (如果反馈证明这个产品没有前途的话) 。

QA行业的变迁

为什么做QA要了解agile methodology?因为有了Agile,QA的工作产生了巨大的变化。

发布周期变得更短,发布的功能越颗粒化,意味着QA的责任会更重大。因为每次release,QA作为最后的 gate keeper,肩负着代码质量的最终压力。

尤其是在产品早期阶段,开发和测试流程还是比较混乱的时候,很多上级由于发布的压力而压迫QA。但QA自己是产品质量的直接责任方,所以能否在坚持质量和业务需求之间做出最好的平衡,就是QA的功力所在。

也因为开发周期的要求,行业对QA的要求又发生了一些变化。

一般来说,当有一个新release的时候,QA都需要去做一个回归测试 (regression test),来验证新的release没有把已有的功能破坏掉。

这种bug其实是很常见的,但很难彻底杜绝,因为这些 bug 有可能是因为底层代码的变动,引起了一系列不被注意的后果,最后导致一个关联不大的地方出现了问题。

举个例子,14年某个创业电商平台改动了用户的系统时间的显示方式,却导致了产品下单的时候出现计价不正确。

原因是下单的后台代码对时间的字符串处理方式没有一起调整,于是整个下单系统计算折扣的时候,一直停留在打折期,导致计价出现了问题。

这两个系统从表面上看完全没有关联性,但是却因为 regression bug 导致了重大错误。

至于这个bug,并不能怪罪于QA,因为根据他的人力工作量,这个问题超出了他以及整个团队对功能改动的预期scope。

因此,公司往往会发现,当他们系统复杂度越高的时候,越难通过人工QA去控制质量,于是自动化测试这个职位应运而生。

自动化测试的诞生

早期的时候,这个职位的编写自动化测试,还是通过写脚本,甚至简单到人工操作一些软件来生成脚本 (Selenium的IDE),所以对技术要求并没有很高。主要是各种测试软件、css等的经验,还是人力倾向的。

但是真正在公司工作过的同学知道,测试的东西越写到后面,其实数量和难度都可能比开发的多。

例如,我们写一个function,可能要写3-4个unit test,写一个API要写7-8个integration test。

所以说当代码复杂度越来越高的时候,单纯写script的QA,已经无法handle这么大量的测试代码了。

QA的现在与未来

慢慢的,QA越来越向developer看齐,甚至出现了精细化分工

例如有的负责人工测试,有的负责写test case,有的负责写test framework,有的负责管理整个测试的代码结构与策略。

所以时至今日,当你看到有人 title 叫Software Engineer in TestSoftware Development Engineer in Test的时候,千万不要小瞧人家,他每天要敲的代码量说不定比你还要大呢。

然而问题来了:传统的QA,无论是人工测试的还是写自动化脚本的,从技能上来说,都跟SET/SDET产生了巨大的鸿沟;同样的,从职业发展、技能的受欢迎程度,也越来越不如后者了。

所以这个时候,在QA这个大行业之下,究竟要入哪一行就成了一个重要抉择。毕竟虽然都是QA,但是技能的鸿沟让人工QA切换到SET / SDET的职业道路并非容易

因此,大家找实习也好,找fulltime也好,虽然可能听说QA需求量大,但是也要多看Job Description,留意哪一种更加适合自己未来3-5年的职业发展规划

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180806G0I1N500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券