移动无线测试工程师必备技能

发表于:2016-11-28 11:23

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:monkey    来源:51Testing软件测试网采编

  我们现在面临的有native,hybrid,reactnative,各种架构,各种分布式系统,各种自定义容器等各种不同技术组合起来的产品。那么用户这里看到一个错误,对于用户而言是一个错误,但是对测试来讲,我们需要知道这个错误的源头在哪里并定位。
  在今年开始主推就是“一专多能”,这个一专多能的意思就是我刚刚所表达的,你需要有专长,但是不代表你只需要,只能去做你会做的事情。
  其实在很多场合讲这个点的时候,很多人是不认同的。当然其实我想表达的是,无所谓你认同不认同,这些是一个方向,一个趋势,你没有能力去改变行业方向的时候你只能遵守,不是么?你能够定位问题一方面避免了开发与测试,开发与开发之前的扯皮,前端说后端,后端T给前端这样的问题。
  这样测试就间接的去加快了bug被修复的速度,即体现了所谓的价值:)
  另外一方面你也需要积累定位问题的经验和能力,否则就提出缺陷并不能对最终解决问题有什么本质上的帮助,不是吗?测试需要在这个当中使用自己的技术,埋点,监控等各种技能来尽快的定位问题和找到对应的message,然后推动问题快速的解决,这才是真正的落地,真正的价值。
  所以我一直会说。现在一个自动化,专项,安全测试,在一次项目迭代中去发了很多的bug。然后非常自豪的说自己发了多少多少bug。这已经没有什么用了。用bug来证明的时代早就过去了。说的实在点,最终bug修复了多少,产品提升了多少才是真正的价值,发现了多少bug有用。
  接下来就是很重要的一点——高度。只要大家去一些大公司,你们就会听到你们领导和你们说,做事情要有高度,思考问题要有高度,解决问题要有高度。其实每种高度的意义都不是很一样。 我之前一直举一个例子,两个相差不大的人,一个去一家小公司,一个去一个大公司。一个是百万量级的产品,一个是亿量级的产品。那么经过几年之后这两个人的差别在什么地方?大家不妨想想看(前提是两个人都很积极主动)。
  小公司的这位同学会对各个岗位都比较了解,在小公司是多面手,技术上也有很大的提升,这点都毫无疑问的。大公司这个人技术的深度和其他各个岗位了解广度都会相比第一个人欠缺
  但是第二个同学的优势是决定性的,而且是有长期影响的。这就是看问题的角度,高度以及解决问题的思路会很不同,而且养成了一种习惯。我们可以想想,比如我们要做一个UI自动化,当你面对一个单纯的app和一个很复杂架构的app会有什么不同?
  你先要考虑的是不同技术点上应该怎么攻克,不是什么element都可以识别的。其次就是怎么打包,怎么将很复杂架构的,拥有很多子模块的应用成功的打出包,然后如何去过滤不同组件的日志,如何有指定的给不同团队的人发出报告或者报警。这都是第二个人会去考虑的,但第一个人不会。
  这就是所谓的环境上的区别。我微信上也一直说,人有时候真的被逼出来的,以为不可能的事情在压力下总能够成为可能,同时也会给予自己不同的视角。
  其他我们都可以想想看,如果要做功能、专项,持续集成,线上监控等等。你面临几个团队和几十个团队,你面临几百万用户和几亿用户的话,你现在的解决方案可用吗?很多时候这就是所谓的高度上的差异。
  很多时候我们面试的时候往往会发现自己所答的答案都没有什么太大的问题,但却最终没有得到面试官或者公司的青睐,很大的原因就是你们两个的高度不在一个level。你所思考的问题在对方看来根本不是问题,才会导致这样的结果。其实就如同一个在level 10练级的主人公和在level100练级的主人公看区域怪物和boss感觉不同一样的道理。通俗的说不在一个频道上。
  自我认识是我一直强调的,所谓客观的看待自己就是抛开你的title,你的背景,你的过去,就直接来审视你自己真正学到了什么,真正的掌握了什么,哪些已经是你的技能了。
  同时我们不要去被别人影响,每个人都有自己的道路和自己的规划。不要做随风摆,这样几年很快的,过去之后会发现很多东西都知道,但是很浅,自己也没有积累,就一事无成。
  自我认识的高度在于不要太过看重眼前的东西,很多人会比较现在拿多少钱,现在什么title,现在什么level。这些都是眼前的,真正高度自我要求的人都是去看未来,看长远的发展。也许你现在很牛逼,但是10年后,20年后你还能保证牛逼么?谁也不知道。
  相对的,自己现在牛逼了,将来不一定牛逼。沾沾自喜可以,但是需要客观的去审视自己,给自己定计划,去长远的规划,不要计较短期的得失。拿我做例子,大家都看到了最早我给大家看的履历了。其实从我走出公司,想到行业中和大家交流开始到现在无非3年的时间。我如果计较当初的那些得失,那么也没有魄力会裸辞单独的到行业这样一个大家庭中去闯荡,也就没有了现在。
  所以我想说的是,其实几年的时间可以改变很多,不要以为时间过的很快,你的时间也许过的很快,但对于很多人他们过的很慢。是因为他们有很多的target需要去完成。共勉。
  人脉的积累是很有必要的,尤其是现在在学校的学生。很多人其实会问,现在行业中扯淡的人太多了,我应该怎么分辨。我有两个方法,其一,测试相关的可以来问我,我几乎都认识。其二就是你尽可能的去认识更多的人。
  我们千万不要以为自己看到的就是全部,也不要认为圈子就那么大,等你真的走到行业中去了,你就会知道自己那么渺小,高手如云,还有很多东西需要去学,而且到时候你会发现技术是最好学的。当你认识1000,2000人的时候可能还没有感觉。等你认识更多的人,达到一个质变的时候,你自然就会知道哪些人值得去深交,哪些人会拉低你的level,哪些人就是忽悠,你会一目了然。
  最后想要讲的就是传说中的高调。很多人觉得高调不好。其实任何事情没有好不好,关键是你怎么做,你做的策略是怎么样的。很多相同的事情,也许换种形式,也许换个时机就能够达到截然相反的效果。
  尤其当你在一家大公司,在一个大团体中,你必须高调。千万不要去想着有一个伯乐来找你,或者说也千万不要想着有一个好的mentor来带自己。这种概率其实就和自己中500w一个概率,你觉得概率有多少。
  所以说需要我们发声音的时候需要发声音,需要我们高调的就应该高调。有策略的去高调是不变的法则,将来很多人就会明白。之前微信有一个分享,说土豪和贵族的区别,其实不要让别人觉得自己就是个炫耀的人(暴发户),而是既有技术,也会实干,也有内涵的人(贵族)。
  好了,我现在再来举一个例子,比如说移动互联网。大家觉得移动互联网是什么?现在很多人在做Android,iOS,在做很多别的。这真的是移动互联网么?
  我们刚刚说了要看的长远,那么这一切肯定就不是终点。
  Q&A
  09-12年至今有一段空白时间,这段时间学习了什么?怎么给自己充电的?似乎积蓄很久,突然爆发了。
  首先很感谢大家能够这么晚过来听课。 之所以以前有一段空白时间,因为那段时间都没有学什么。我之所以这么讲,一来那段时间刚开始工作对测试不是很了解也是在慢慢摸索,然后也是比较low什么都不懂慢慢学。第三方面在一家创业公司也比较忙,更偏向于业务一直忙啊忙,现在我看来那会多数都是重复工作也没有什么真正意义上的个人经验积累。 在那个时间点,学习的文档还是很少的,更多的是看源码和框架、开源文档。不像现在,有那么多博客,或者像我写的这种中文资料,那个时候资料多数还是英文的。我在我第一本书也有提到,前两年过年回家我都是在家看源码,虽然确实是看不懂,但看不懂又不能不看啊,就逼自己看呗。 其实,也不能说积蓄很久,那个时候真的很忙更确切的说是盲目的忙了很久。然后,回过头才发现,可能不能在继续这么观望,所以才到行业中来。当初,我也没想给大家讲什么,我也什么都不懂。更希望是大家给我讲,所以我才裸辞到行业当中来,与各种各样的人做交流,就是这个样子。
  当你把问题定位出来之后,还是提交给开发修改吗
  基本别的公司流程我也都了解,修复问题肯定是开发这面来修复这是毫无疑问的,我们不要把责任或者说工种混淆了,这点是毋庸置疑。但是,对于测试来说,定位问题肯定应该更加仔细。或者当开发也不知道如何修复问题的时候,我们尽量给出修复的建议。 我举一个例子来说,你说专项这方面,比如算法来说开发更加擅长。但是你说静态扫描和动态扫描这些东西或者说我们可能有些内存泄漏,测试在这面可以给出更多的建议。一旦你测试做多了以后,你自己其实知道一些通用的common错误就那么几类。
  请问老师,一个工作两年的人应该有什么样的技能才算跟自己的工作年限匹配?
  工作两年的人,其实我觉得是这样子的,你工作两年如果按照我们这个规定去面试。首先一点就说你对于现在比较流行的框架你都要有了解,并且你得会用,这是个硬性技能,然后从软性技能的角度来讲,你应该对整个行业包括你测试的产品很熟悉,我举个例子,假设你测试优酷或者土豆中视频的app,那么我们会让你去说明一下就说你对这个产品到底是怎么看的,那么你需要达到那个高度是什么?你看这产品不能尽看它的前端,也不能只看它的后端,你得对于它的前端这边的一些交互,包括功能所对应的接口,包括它每个功能之后对应那些服务端时序,等等都要有一个初步的了解。那么简单来讲,作为架构师,是能够架构或者真的做出一套架构。我觉得对于你来讲的话,不是要你去做出架构,而是你做一个测试,你得去了解你说对吧!所以说。你如果仅仅还是focus在功能,或者是业务上。那么我们会觉得你两年的这工作,不是很有高度。从而能推出你这个人潜力不大,然后就pass掉。
  什么叫后移动互联网。
  后移动互联网的概念这样的,就说移动互联网基本上是属于智能机这一波所带来的。那么前移动互联网指的是说以前的那些互联网公司在移动互联网当中的一些作为。像你们所知道熟悉的那些公司要么是互联网转移动互联网,要么就是纯移动互联网出身,无非就这两种,而后移动互联网指的是什么,从本质上来讲本身就不是互联网的公司,比如传统行业!传统行业会从明年开始真正在移动互联崛起,那么这就是真正的后移动互联网。
  你之前也说过测试也需要一些代码能力,但是在外界看来测试对于编程的要求似乎不是那么的高。如果以后往全栈方向发展的话,对于编程能力的侧重点或者方向在于哪里?
  我刚刚已经说了,就是说从外界看来要求不是那么高,其实很简单:外界所看到的东西第一,你看的是有局限性的。第二,本来行业就是有delay的。当你等外界反应过来,你才反应过来你就延迟滞后了。所以说外面看来不这么高是很正常的,我今天所说的就是一个未来的趋势。 那么我们再回过说编程的侧重点和方向,其实我觉得首先第一点你都有一个主语言,比如java和c!然后你得有个熟悉的脚本比如ruby、python、Go等。但是还有一点是说:方向在于哪里,并没有什么方向, 也就说你学的东西,并没有说哪个一定好, 一定不好,但是你要看你到底想往哪条路上面走。我打比方的说你如果从事android那就Java,你要是IOS就是object-c,如果将来想要做虚拟化、服务、云计算或者做大数据啊,那么可能有对应的a语音或者其他对应的语言。 所以说侧重点,并没有绝对的侧重点,真正存在于你学的语言是不是真的能给你带来价值,薪资上的、title上的或者你想要的一切,关键在这地方。
  虽然未深刻展开,但很多观点听了后真的是有振聋发聩的作用。我想问一点,看Monkey的朋友圈和履历表,感觉他非常的忙,请问他平常是如何抽出时间来做提升自己技术学习的?或者说他是如何做好时间管理的?有什么技巧没有?
  Teambition,关于这个问题我这里给了一个工具,我这面主要使用这个工具来管理我自己的一些计划,包括testerhome的计划,支付宝这面的计划等很多。这个工具,我觉得是可以给你们带来一定的帮助的。 另外,我觉得关键是每天习惯的要养成。比如说我,早上八点到十点,刷朋友圈是最多的。晚上十一点到十二点刷朋友圈是最多的,但是我刷的时候我会把我想看的东西先收藏起来包括我公司里面看的好东西,到晚上十点或者十二点再慢慢把今天的东西过一遍。也就是你自己去形成你自己的一套习惯,但是关键你的有这个东西沉淀下来。你可以定期的半个月一周给自己定一些东西,去学习消化掉,而不是说看完就结束了。
  持续集成虽然一直在提,但是在一般公司却最不起来,请问老师有什么建议吗?
  其实集成这个东西或者测试也好质量也好现场监控也好,包括你将来会做很多别的事情,做这些东西其实不是一个测试或者说一个测试team能做好的。绝对是需要一个产品经理、项目经理或者说testteam一起合作,更重要的是你的老板得要从下往下push的能力。我的建议就是,你要尽可能的从上往下push把各个team结合起来。你也可能觉得你做不到,这个无所谓,你要往这个方向去努力。如果说你推动不了,你可以让别人去推动。如果别人也推动不了,这个事就不要去做。可能说你做不起来是吧,可千万别给自己挫败感。因为这个不是一个的问题或者一个team问题,要正确认识到这一点。
  现在一家创业小公司,测试仅2个,平时基本只做功能测试,自动化 测试是否有必要开展,该如何开展?
  我以前和你一样在三家创业公司待过,你测试仅两个,比我好我只有一个。自动化测试有没有必要展开,我不能给你明确回答。这个要看你公司现状、公司产品现状、公司开发现状,等等上下文我并不知道。但是,我可以和你讲如何展开,如何展开并不是说的是公司展开而是你如何去学。 首先,你一定要去学。第二点,一定要去把每个自动化框架每个simple跑通,在本机全部做一次demo跑起来,自己做一些小修改。这些事情都是要去做的,不要说我现在只用一个robotium、uiautomator就结束了。这样的话,你只能看到一个点,不能看到所有的点。然后只能问每个框架有什么区别,你只能被别人左右,所以自己很多东西都要走一遍。不管你所在公司有没有展开,你自己都要去学习。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号