最近在和一个朋友聊天过程中,他说他们公司领导开始要他们开展自动化测试工作,提高他们的测试质量和效率,但是我问了你们开展自动化之后解决了你们的问题了没,他说不但没解决问题,还导致大家任务更重,有些问题反而更多,目前大家怨声载道。
听完之后我问了几点问题:
-
• 你们领导梳理团队目前的痛点是什么?
-
• 目前的痛点有哪些解决方案?
-
• 自动化是不是最好的方案?
-
• 如果要实施自动化,团队内部有做过详细的调研评估没?
很多公司做自动化测试时,大部分都是在网上找一个开源框架、平台进行,对开源框架修修改改就开始在公司里面使用,进行自动化测试,但是缺少全面的思考,没有想清楚做了之后价值几何。
下面是我在自动化测试落地之前的一些思考,关于怎么进行自动化和怎么体现自动化的价值的一些思考,仅是个人观点。
究竟要不要做自动化测试?
自动化是一个动态发展过程。过去,人们对自动化的理解或者说自动化的功能目标是以机械的动作代替人力操作,自动地完成特定的作业。这实质上是自动化代替人的体力劳动的观点。后来随着电子和信息技术的发展,特别是随着计算机的出现和广泛应用,自动化的概念已扩展为用机器(包括计算机)不仅代替人的体力劳动而且还代替或辅助脑力劳动,以自动地完成特定的作业。
我们比较熟悉的各种自动化测试如UI自动化、接口自动化、单元自动化测试、持续集成、持续部署、持续交付等,其本质都是通过借助工具帮我们完成日常工作中重复度较高,手动又比较费时的工作。
自动化测试的优势在于将重复度较高又比较费时的工作交给软件工具,解放人力资源去做其他更有创造性的工作,提升投入和产出的比率,用更少的成本投入创造更大的价值。
那么在我们工作中要不要做自动化测试呢?这是肯定的,肯定需要使用自动化。
这又会出现一个新问题,所有的团队目前都可以做自动化吗?答案是并不一定。
那什么时候做自动化测试?
我们都知道,我们作为质量QA其实追求就是产品质量和效率两大目标。
从本质上来说,自动化测试是一种辅助我们工作的提效手段,千万不要认为是解决问题的目的,也不是唯一的手段。
我们工作中什么时候开始开展自动化测试,怎么开展,是UI自动化或者接口自动化测试,是否有足够的人力资源投入,都是需要经过认真仔细的调研评估,而不是为了自动化而自动化,这样无异于本末倒置。
我们日常的测试工作是在软件工程的方法论指导下进行的。软件工程的方法论关注的是成本、收益和风险三个方面。它的目标是在尽可能低的成本投入下,获得更高的收益,并且保持风险可控。
在实践中,我们需要在成本、收益和风险之间进行平衡和权衡,以达到最终的质量和效率目标。
这个方法论的本质是为了帮助我们更好地规划和管理测试工作,确保我们能够在有限的资源和时间下,做出高质量的软件产品。
因此在评估是否需要开展自动化测试之前,需要尽可能基于下面几点因素来考虑。
你们领导梳理团队目前的痛点是什么?
目前的痛点有哪些解决方案?
自动化是不是最好的方案?
如果要实施自动化,团队内部做过调研评估工作没?
下面是一个我真实案例:
在我的一份工作当中,我面试进入的是一个公司的新项目组,产研测团队20人不到,入职不到一个星期,我们领导跟我说,我们要做自动化测试,我非常吃惊,因为当时公司这个产品是为了快速推进市场,看下市场响应,整个产品业务不稳定、人力资源非常紧张,这边的基础设施很薄弱,这种情况下是完全不适用自动化测试开展,开展还会成为我们的负担。
自动化测试适用于重复度较高的工作,但并非一蹴而就,需要一定的准备工作。
-
• 首先,自动化测试需要相对稳定的业务需求迭代。如果业务需求频繁变动,自动化测试的维护成本可能会较高,因此需要业务需求相对稳定。
-
• 其次,需要比较成熟稳定的研发团队。自动化测试需要与开发团队密切合作,因此需要开发团队具备一定的技术能力和测试意识。
-
• 此外,还需要一定的技术基础设施建设。自动化测试可能需要使用各种测试工具和环境,因此需要有相应的技术基础设施支持。
-
• 最后,较为规范的流程也是自动化测试的前提。自动化测试需要有清晰的测试流程和规范,以确保测试的一致性和可靠性。通过以上准备工作,才能更好的落地自动化测试,达到提效的目的。
那么如果要落地自动化测试并达到提效的目的,需要考虑哪些因素呢?
实施自动化测试之前的思考
下面是我对实施自动化之前,需要思考的地方:
-
• 当前团队面临的痛点是什么?
-
• 这些痛点背后的原因有哪些?
-
• 解决问题的方案有哪些?
-
• 使用自动化是不是最好的解决方案?
-
• 当前的情况是否适合开展自动化测试?
-
• 有开展过详细的调研评估没?
-
• 有选定试点项目线没?
-
• 对于自动化工具调研、团队技术栈匹配度有过评估没?
-
• 对投入成本、收益、ROI等有做评估没?
跟我们总监讨论过项目实现技术方面的问题,总监跟我说公司并不关心用什么技术手段,而是关注能够获得多大价值。所以我们要清楚的知道的是自动化是一种辅助提效手段之一,并不是做事的目的。
不要为了自动化而自动化,现在很多人都会做,对于自动化一个计算机专业的人,编程能力OK,最多培训1个月,完全可以进行自动化测试,相比于做什么,我们更需要考虑的是为什么要做和做了能够带来什么价值。
这篇文章,是自动化测试开篇,没有具体自动化落地实施,主要讲解对于解决问题的思考方式。
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。