微软外包自动化测试两年,而后转入互联网公司做移动端自动化测试一年,经历了入行时的迷茫,而后的笃定,转入移动后对自身定位和价值的怀疑,继而对自动化测试的重新认识,职场三年,终于敢对自动化测试有所论述了。 先说说测试吧, 测试本身有其自己的价值吗?我觉着这个得看公司对自身的定位,倘若公司本身定位就是一个小作坊,出一款产品就打算小捞一笔,受众较小,那测试真就是累赘,对于测试的投入是毫无道理可言的,但如果公司打算长久规划,想树立自己的品牌价值,那么还是一开始就尽可能的投入吧,毕竟口碑这种东西,失去了一次,想要挽回来那可不是阵痛那么简单,想想xxxxx,红会,还有那么多那啥的中国产业和企业吧,在今天技术无法形成壁垒,产品同质化严重,竞争日益激烈的大环境下,国内环境越来越重视测试是明智的。 测试毫无技术含量吗?就我从业这几年,听到过无数这样的论述,搞技术的看不起搞测试的,这里我不想反驳什么,我只想说说就我来看一个出色的测试人员所具备的素质:测试人员是块砖,哪里需要哪里搬,几乎所有的测试框架都只是提供一个通用底层的解(更倾向于叫这种自动化测试框架叫自动化测试技术),自动化测试人员需要有架构方面的知识去根据自身产品特点,组织代码结构形成自己的框架;针对一个平台的测试会有多种框架可选,测试也需要兼顾性能方面的考虑,这一切都需要你去学习掌握不同的语言,或者不同种类的语言及配套的一系列平台框架内的知识;自动化测试工作中仍需要开发及扩展一些工具,各种类型的工具去满足自动化测试的需求,所以网页开发,桌面程序开发,移动端开发这些是必会的;自动化测试有时也需要去读产品代码去分析问题,定位问题,快速理解所有产品代码逻辑是必须的;测试人员不只要关注产品bug,产品体验也是工作很重要的一部分,所以一个好的测试人员可以看成半个产品;测试本身的职业特点要求测试人员沟通技巧要像销售一样刚刚的(这点我做的不是很好);测试对工作流程,项目进度掌控,团队配合等管理技巧不必其他团队差;虽然各个方面都不算是最专业的,但测试需要的是全才,全才也算人才的一种。测试对于软件开发的上游来讲,是你们前进的鞭策而不是你们成功的障碍,通过一个个bug,你才能认识到自己的不足啊,孩子!收起你那可笑的傲慢吧,你们的代码我见过,而我们的代码你们并没机会见到。这时候一般我会强调一句话:将代码写得优雅是每个工程师的义务。 给微软做外包两年,除了学习了一堆微软测试技术及通过内部资源了解的其他东西外,最主要的印象在于其软件测试这么多年积累起来的流程规范,对于测试来讲,强与不强永远不会体现在技术积累上,更多体现在流程管理,权限管理,文档(代码也在文档范畴)规范上。微软产品较为封闭,版本迭代较慢,UI等风格也较为统一,其测试可以减少cost最大的点在于增加测试用例,文档的复用,他在测试管理上所有的细节也在尽可能的增加复用,WTT,PS等测试平台软件的设计上这点非常突出,在其管理模式上也很有很大的体现,这就是微软的测试取得成功的重要原因。 来到移动互联网后,刚开始也一直沿着这种思路在做,大家的重心仍然放在增加复用,做了一整套测试用例执行平台以增加用例复用,对各种测试框架扩展以增加代码复用,想尽一起办法实现代码录制以减少代码编写,这一切的一切貌似总赶不上版本更新的速度,自动化测试总是测试中最拖后腿的一环,所以一段时间内对自动化测试定位产生了严重的怀疑,没有存在感。 其实仔细想想,这一切并没有错,那究竟问题在哪呢?产品!移动互联网的发展速度太快了,其产品更新也快,尤其是新产品,版本之间UI变化特别大,基于UI的自动化测试在有限的cost下很难跟上这种速度,你大部分的测试代码只有执行一次的命运,无法迭代复用,有这时间手动就点完了,包括代码录制,就目前来讲,极端的说对于Android这种开放性特别强的系统来说一切的代码录制都是耍流氓,你录制一次出来的代码很难达到其他设备上不经修改就可以回放,基于UI的自动化测试驱动UI操作从来都不是难点,难点在于各种对结果的Verify,录制完逐行去添加这些东西简直是噩梦,而且就目前的代码录制实现手段来讲,限制性太多,想要达到别说完美就是能满足测试百分之五十的需求都很难,花大量时间和精力去弄这个是很不明智的。那么自动化测试的出路在哪?应该是辅助手动测试,自动化测试终极目的在于增加复用,减少重复性动作,其cost相对于手动测试来讲是巨大的,所以有限的人力应该去投入到更有效的地方去,测试人员都知道一句话,全覆盖的测试是不存在的,所谓测试就是拿有限的cost去尽可能覆盖更多的测试点,其注重于投入产出。回过来讲自动化测试,在移动端它的价值更多体现在性能监控,非必现bug复现,适配测试,健壮性测试等复用较多的点,举个健壮性测试的例子,涉及到图片操作分享的应用都会关注在重复发送及接收大量图片的时候,这对手动测试简直是噩梦,交给自动化测试,或调取服务器接口,或客户端ui自动化这很容易解决,而且自动化测试还有个很大的好处,不需要占用太多的资源,手动提出相关需求后,白天写代码,晚上或者节假日把手机借过来跑case,第二天直接拿报告,这简直是完美的配合。我想这也是自动化测试在移动端的出路吧。 未完待续。。。。 文章出自:博客园
|