业务太忙,真的是没时间搞自动化理由吗?

话题来源于某测试群在讨论:接口自动化如何做?话题中一位同学的随口抱怨,原话为 “业务那么忙,哪有时间搞自动化”。

对此我在群里从两个方面给了回答,原话如下:

  1. 理性来讲个人的观点是,搞不搞这个自动化看下所做的业务或者工作是否适合搞,这里不限于非得是自动化,任何其他可以帮助你提高效率,解放的劳动力的手段都是值得花而外的时间,哪怕是牺牲自己的时间都是值得的,如果是搞东搞西不如手工来的快和稳定,那就不要搞,如果可以从前期准备,中期验证,后期回归都能有效解放你因业务的繁重而恶循环的时间问题,就要去投入,最后如果在一段时间投入后有了很好的效果,于自己不必说收获很大,于团队也能给你带来很好的影响力,不是太差的领导这方面的成果都是看在眼里的,终究会获得回报。

  2. 另外一点有时候可能一开始看不到,到底能不能得到好的投入产出比,那做些基本的判断后觉得并不是绝对没用,那就尝试去做,毕竟有的事情是要做了,才能看出是否正确,不要停留在抱怨中,多尝试,就算失败了,你还收获了技术或能力方面的成长,即换个角度从个人层面,不是从公司或者项目层面来去看待,自然就舒服很多。

那么

业务太忙,真的是没时间搞自动化理由吗?

自动化是否需要做,什么情况下,什么时候做,自动化能带来什么好处?

带着这些问题大奇来谈谈自动化相关一些内容:

01 自动化有哪些

首先,自动化测试从类型上包括但不限于移动端、web、pc、服务端等,从业务和技术层面会更细,比如功能自动化、系统稳定性、兼容测试、服务接口验证,游戏、大数据、安全等等,之前笔者还做过类似硬件驱动、协议等类半自动化的工作。其次自动化这个概念可以很广,个人觉得任何可以提高测试效率(如一键造数),解决依赖替代重复操作(如mock)的方式方案都可以称作自动化或者辅助自动化。

02 什么适合做自动化

对于功能测试,涉及如果是UI层面,一般要求界面和功能比较稳定的,如果是服务接口层面,一般是解藕相对较好的,尤其是核心既每次迭代必回归的,将其功能用例可转化成自动化价值更大。对于其他如sdk、apk兼容,大数据输入输出,安全的这些也适合用自动化解决。当然还有些复杂业务场景,由人工来的测话会费时费力,还有可以利用非工作时间充分利用闲置设备资源等等,这样的也适合

尝试通过可行的技术自动化来解决。

概括来讲就是看能不能解放生产力,是否可以提高资源利用率,以及是否有投入产出比。

03 什么时候介入和怎么做

如果你在一个成熟团队,那大概率是有了一套在业务层面的自动化方案,首先要做的就是熟悉并灵活运用,最后你可能发现有更近一步的优化空间,或是不合适,或是接收时遗留 “财产” 太烂,那就是你着手优化甚至寻找替代方案的时候了,但这里请注意是在你团队Leader支持,或者已经有了更好实战经验,否者不要轻易搞,很容易费力不讨好。如果是团队没有这个基因,个人也有积极性,建议是在足够了解业务的前提下,也能发现一些可尝试的运用自动化方案解决的痛点,哪怕是在小的点,技术再笨拙,都应该介入实现,然后再不断的优化重构。

至于怎么做,建议是要站在巨人的肩膀上,互联网里有很多大佬、大公司开源出来很多工具、技术和方案参考,我们要学会寻找对比合适的直接去最大化应用自身需求上,而不是自己做一套框架,搞二次开发,还有些特别高大上的比如AI智能测试,除非团队有足够的资源和精力,或是这是为了PPT,否则我有理由相信你根本就没有深入研究过这些开放出来的框架和工具。举个例子在用Pytest做自动化方案的时候,你可能觉得结果报告不合适,但你有知道它有很多装饰器和hook高级用法吗,甚至可以自己写一个pytest插件。当然这里不是说不能自己做,而是说要基于调研,酌情考虑团队情况,深入了解业务的综合条件下展开自研。

04 怎么判断价值

看短期效果,比如一个简单的代码就可以解放半天的造数时间,或者人工点点的机械性工作。看长期投入产出比,经过一段时间的投入,未来可以提升测试覆盖率、减少降级问题,一定程度上缓解业务测试持续的紧张资源问题,这些是正向对于业务和团队的价值,值得鼓励投入。

另外特别想说的另外一种价值判断,就是从个人角度来讲,是否能够给你带来能力上的提升,是否对你未来发展有利,是否对你跳槽有优势,如果答案是肯定的,那么不管对业务团队是否有有利,自己都要积极参与和投入,甚至牺牲自己的一些时间都是非常值得的。

05 写在最后回答

说了那么多,回答下标题 “业务太忙,真的是没时间搞自动化的理由吗?”,答:“不是”,这就和最常见想考个证或提升下学历,却总抱怨没时间,我能力不行一样,都是给自己不愿更进一步的借口。从上述几点总结来讲,要放下先给先给甜头再付出的天真,要学如何让自己抽身做更多有意义的事情,要大胆的尝试和经常做总结,为自己的值得更多时间的投入。

你可能感兴趣的