原贴:https://testerhome.com/topics/16354
1、计算机基础知识的通盘理解
a. 操作系统工作原理与基础操作:如linux,通读linux操作系统的数,熟悉基本的概念、基本命令,shell能写和读
b. 网络知识特别是 TCP/IP,HTTP知识:《图解tcp/ip》 《图解Http》这两本书里的东西要懂。
c. 数据库知识:市面常见数据库(redis、mysql、oracle)的常见DBA操作,问题排查(这个有点难);SQL的熟练使用
d. Web及移动端知识:懂HTML,CSS,能读懂JavaScript代码,能读懂Android 或 ios 代码,做简单开发最好。
e. 安全知识:常见的安全防护方法、工具使用;基本的安全攻防原理
f.软件工程/开发过程管理:实战中各种磨炼,可以系统学习PMP,敏捷开发的一些认证课程
2、在一个域的深耕
人不可能什么都懂,但在一个领域需要深耕。
如四、五年的移动端测试,能够对移动端自动化工具栈、监控工具栈、内存泄露检测、卡顿检测、耗电量、弱网、流量、埋点、灰度、版本控制、兼容性、用户体验、安全等的质量保证方案有通盘搞定能力。
搞定指?使用多种手段把崩溃率降低到千分之一以下。(要做到这点,需要了解如何收集奔溃率,如何使用一系列工具来定定位核心问题,如何推动开关改动,如何预防 (静态代码扫描工具引入,阻止乱用不成熟的插件,推动开发良好的log习惯,推动预防性编程开发习惯、推动后端开发规范接口、帮助开发引入内存泄露、卡顿工具、趋势报告、各种灰度方式、线上监控))「一个数据的改观,背后有大量的质量相关工作」
3、使用综合手段来保证软件质量提升效能的能力
例子1:开发抱怨测试用的时间太长,如何能缩短一下测试时间?
通过调研,发现测试小伙伴诟病最多的就是环境不可用,环境到底多不可用呢?你基于xx做了一个环境可用的监控报表,使用后,发现环境在工作日整体可用率只有35%左右,主要原因:几个核心热点应用经常挂了没人管。你拉整个team,明确部署责任人,约定部署规则,在固定时段才能部署,并且部署后要确认下是否OK。一周后,环境可用性上升到65%。接着分析,发现2个同学不守规矩,找他们单独沟通。一周后,环境可用性上升到80%。还是有少量人不守规则。你找SRE同学提需求,做了部署卡点,非部署时间部署须TL审批。一周后,环境可用性上升到85%,有些TL也不守规则。你建了个报警,环境不可用,在大团队群里 @全体,告知谁搞坏了环境。一周后,环境可用性达到了92%。你加了一个feature,应用挂了一段时间无人响应,自动重启服务,仍有问题,就自动回滚上一版本。你推动开发解决某个应用启动时间过长问题,推动环境分组,推动测试环境版本上线的规范流程实施,推动冒烟自动化用例卡点,推动环境部署人备份机制,推动全员基础环境部署培训、总结部署手册,你还做了。。。环境可用性稳定到了97%以上。你为测试节省了60%以上block时间(原来可用性为35%)
例子2:上面的问题,除了环境,还有一个问题:开发提测质量不高。测试初期,主流程走不通,导致测试总是等待,或是跟着开发一起联调。而这段时间,被习惯性认为是测试时间了,因为:提测了
你推动:测试提供冒烟用例,开发必须完成一定程度的自测才能提测。
你推动:测试和开发做自动化同期建设,在开发过程中,核心功能被自动化用例保护起来
你推动:开发切分feature提测,而不是攒一个大招一下子提一坨
你推动:代码review变成团队常规活动,QA在早期跟进核心代码,把问题坑杀在萌芽阶段
你推动:外部资源联调非常早进行,避免在测试后期成为测试blocker
例子3:测试的时间长,QA自己也有问题
你推动:有明确的测试计划,并让所有干系人都有明确的预期
你推动:依据风险测试,最大的风险得到最快的cover,科学分配时间,明细缩短bug反馈时间弧
你推动:bug严格管理,所有重要bug及时修复
你推动:良好的沟通和汇报机制,每天让团队主要干系人清晰的知道,距离发布还差多远
以上,能讲出自己做过5个以上的成功例子,你会职级 1线大厂专家起步。
4、持续学习能力和复杂问题解决能力
例子1:你近期的工作是帮助团队提升后台服务稳定性。你看到netflix内部使用一个叫做chaosmonkey的东西来随机对服务进行攻击,从而逼迫开发提高未定型。所以你也实现了类似的内部机制,推动团队稳定性的提供。你如何知道这个叫做chaosmonkey的东西呢?因为你习惯性浏览一线厂商的技术博客,参与行业大会,关注各类新技术。持续性的养成习惯
例子2:做大规模接口自动化好难,外部数据依赖太难搞,参数构造太费劲,Assert太难写。如果能够简单的录制回放就好了。但是,外部依赖是个天坑,写操作mock也是天坑,assert也是个天坑。实际的案例是,经过几年多个团队持续不懈的填坑,阿里内部已经有应用级的录制回放工具,数百个应用成功的用它,把不可能回归的任务变成了可能(上万数量级的case当天生成,当天投入使用,并可以分析覆盖率),自动化测试实施需要付出的工作时间革命性降低(不足原来付出时间的10%)
以上例子,你做过5个以上成功的例子,你也会被一线大厂疯抢,职级专家起步。
5、其他能力
「测试是个万金油,高阶一些的职位需要什么都会一些」
需要解决的问题越综合,需要打交道的人的种类越多。list如下:
a. 很好的项目管理能力,至少与开发经理能力同级,甚至要强于他
b. 一定的软件架构能力
c. 一定的产品sense:可以跟一个资深的产品经理顺畅交流,明白他为什么这么想,所要实现产品的意义、路径;从产品质量方面的考虑要超过产品经理,给他输出
d. 极好的沟通能力
e. 团队管理能力
f. 目标管理能力
g. 有一个好的内核