去阿里、百度做测试的都是什么样的人(下)

265 篇文章 20 订阅

在上期,我给大家分享了一些我对大厂招人,在核心能力和什么样的人抢手上的一些观点,今天我们接着说,高段位求职者需要具备哪些能力,以及他们要如何完成个人的进阶~

3、高段位要求(高级职位需求)

1.计算机领域知识的通盘理解:

这条范围非常大,人不可能什么都懂。但最最基础的知识是不能有盲点的:

操作系统工作基础原理与基础操作:如linux,要通读过linux操作系统的书,熟悉最基本的概念,基本命令要熟悉,shell要能写和读;

网络知识特别是TCP/IP, HTTP知识:推荐两本书 《图解tcp/ip》 《图解Http》这两本书里的东西要懂。

数据库知识:市面常见数据库(redis,mysql,oracle)的常见DBA操作,问题排查;SQL的熟练使用;

Web及移动端知识:能够懂HTML,CSS,能够读懂Javascript代码,能够读懂Android或者iOS的代码,做简单开发最好。

安全知识:常见的安全防护方法、工具使用;基本的安全攻防原理;

软件工程/开发过程管理:实战中各种磨练,建议系统的学习PMP,敏捷开发的一些认证课程。

2.在一个域的深耕:

人不可能什么都懂,但在一个领域是需要深耕的。

比如,在做了四、五年移动端测试以后。android和iOS都要具备一定的开发能力了,能读懂开发的业务代码是最基础的,能够代替开发实现部分业务功能,完成部分组件开发是个非常好的自检点。能够对移动端自动化工具栈、监控工具栈(如友盟、bugly、newrelic等)、内存泄露检测、卡顿检测、耗电量、弱网、流量、埋点、灰度、版本控制、兼容性、用户体验、安全等等的质量保障方案有通盘搞定能力。

什么叫搞定呢?

举个例子:比如,使用多种手段把崩溃率降低到千分之一以下。对于一个小团队,这是个很不容易实现的坎。做到这点,你需要了解如何收集崩溃率,如何使用一系列工具来定位核心问题,如何推动开发改动,并且预防(静态代码扫描工具引入,阻止乱用第不成熟的第三方插件,代码reivew防止常见pattern如空指针引发的崩溃,推动开发养成良好的log习惯,推动移动端防御性编程编程开发习惯,推动后端开发按照规范吐接口,帮助开发引入内存泄露、卡顿工具,趋势报表,警钟长鸣,各种灰度方式设置,线上监控。。。一个数据的改观,背后要有大量的质量相关工作)。

使用综合手段来保障软件质量提升效能的能力。

你能讲出自己做过5个以上这样的成功例子,我敢保障,你会被一线大厂疯抢。职级基本都是专家起。

3.持续学习能力和复杂问题解决能力:

例子1:

你近期的工作是帮助团队提升后台服务稳定性。你看到了netflix内部使用一个叫做ChaosMonkey的东西来随机对生产服务期进行攻击,而逼迫工程师提高稳定性,所以,你也实现了类似(更温和)的内部机制,推动团队稳定性的提高。

你怎么知道这个叫做ChaosMonkey的东西呢? 因为你会习惯性浏览一线厂商的技术博客,参与行业大会,关注各类新技术。持续性的养成习惯。

例子2:

做大规模接口自动化好难,外部数据依赖太难搞,参数构造太费劲,assert太难写。如果能够简单的录制回放就好了。

但是,外部依赖是个天坑,写操作mock也是个天坑,assert也是个天坑。

实际的案例是,经过几年多个团队持续不屑的填坑,阿里内部已经有应用级的录制回放工具了,数百个应用成功的是用了它,把不可能回归的任务变成了可能(上万数量级的case当天生成,当天投入使用,并可以分析覆盖率),自动化测试实施需要付出的工作时间革命性降低(不足原来付出时间的10%)。

其它能力 测试是个万金油,高阶一些的职位需要什么都要会一些 ,因为越高阶的职位需要解决的问题越综合,需要打交道的人的种类越多。不然很容易变成你职业短板,做个list吧(一定不全):

很好的项目管理能力,至少与开发经理能力同级,甚至要强于他。

一定的软件架构能力。

一定的产品sense:可以跟一个资深的产品经理能够顺畅的交流,明白知道他为什么会这么想,所要实现产品的意义,路径;从产品质量方面的考虑要超过产品经理,给他输出。

极好的沟通能力。

团队管理能力(这个太重要)

目标管理能力

有一个好的内核

4、怎么转型/怎么进阶

其实不难,没有什么高端的方法。下面这4条就够了,核心秘密就是坚持不懈。

1.熟悉你的被测系统,熟悉你的被测系统,熟悉你的被测系统。

能够从技术、业务角度做到对被测系统熟悉是做一个好QA的最基本职业素养,也是能力提升的最主要源泉。

自检点:我能够画出系统的架构图么?我能够读懂开发的代码么?我熟悉常见的业务监控系统么?熟悉日志系统么?知道开发是如何调试和定位问题的么?给我一个线上问题,我能定位么?我能给别人完整的介绍这个域的核心业务么?我能自己直接动手发布上线一个系统么?知道如何回滚么?灰度是如何做的? 我知道所有关键的技术点么,如一个交易的幂等性是如何实现的?

我在团队中有:“这家伙对系统最熟”的口碑么?

如果自检点全部是否定答案。花一年时间把它全变成肯定答案。

这一过程,你一定被迫学到了很多很多,并且获得了极为长足的成长,这是进阶的必由之路,也是卡了很多人的地方。如果说做不到,后面不用看了,前面的也全部忘掉吧。

方法:通读所有文档,强迫自己读代码,积极参与开发所有讨论,不懂的狂问,观察开发如何上线,如何排查问题,模仿,学习,善用搜索引擎等等。

2.找到问题解决问题,找到问题解决问题,找到问题解决问题。

你一定有一堆问题,如果你觉得自己做得挺好,没有问题要解决,那必然是你自己有巨大的问题!

自检点:找一支笔,写出你觉得质量方面,你的team的10个问题,做排序。排出最重要的3个。

方法:找到top3的问题,选一个,列个接话,去解决。如果找不出来,使劲去观察,然后去看看做的好的同行,比比你比人家差在哪里。尝试去解决这些问题,从小问题,能够见到效果的问题入手,设置一个时间点。你真正解决了5个以上问题以后,感觉一定会有。

3.系统学习

自检点:我系统的学过一门知识么?我能讲清楚我这么操作,我写的这行代码的原理么?

方法:从工作出发,确认你需要补足哪些知识。从网上找一个具体知识的学习路线图,订个计划,照着来。 参加学习小组,找到帮你解决难题的人,多请他吃饭,多请教他。获取知识后,马上回到工作中做检验。还是学以致用才能有所增长。结合工作来系统学习的效果是最好的。

再举个例子:

上家公司有个小伙伴(他应该也会泡这个社区),开始应聘的时候,他说熟悉jenkins,用的很多。所以第一份工作是:把所有CI的日常工作交给了他,并告知2个月内要全部搞定。

他一下懵逼了,原来那些不深入的理解支撑不了工作要求。后来他每天死磕,看了jenkins所有的文档(对,几乎所有文档通读了一遍),翻了无数问题的解决帖子,记录了上百个问题解决的过程,写了上百篇jenkins的小blog(现在还没公布出来)。

几个月以后,他比我熟了,他的一项基础能力成长为:可以独自给一个小公司完整的搞定前端、后端、移动端的一整套CI解决方案。其实单凭这一套,就能找到不错的工作了。这是依托工作,系统性学习的结果。

看到有同学说要裸辞,去学习。

我的建议是,别这样。

裸辞你就失去了学以致用的阵地,失去了真正解决问题的机会,还失去了资金来源。依托工作,自主学习是王道。

4.选择有挑战的团队,选择有挑战的团队

自检点:在团队里有很多人比我强么?周围的同事都是我佩服的么?我做的事儿有挑战么?

方法:如果这三点都是否定的,并且你处于职业生涯的早期。也许(只是也许),你该考虑一下换个团队了)

文章来源:网络 版权归原作者所有

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系小编,我们将立即处

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值