5年测试工程师浅谈 —— 软件自动化测试实施的几点建议

1466 篇文章 61 订阅
1379 篇文章 54 订阅
什么样的自动化测试框架才算是好框架呢?

根据多年的测试经验,可以一句话回答上面的两个问题:使用一个与团队成员的能力相匹配自动化测试框架,是成功的第一步;框架没有好与坏,用的顺手、与项目、团队匹配的就是最好的。

怎么实施自动化项目,才更容易成功呢?

总结起来,要想成功实施自动化,需尽量保证下面三个最小化

  • 与开发协商构建一套统一的规则,确保软件的维护、更新对测试的影响最小化
  • 充分融入现有工作流程,使得自动化的引入对现有的测试影响最小化
  • 按照产品的要求交付,而不是项目,将失败风险最小化

1、选择和团队成员能力相匹配的自动化测试框架

自动化测试能否在团队中推广使用,一个很重要的因素就是框架本身是否和团队人员能力匹配,比如一个技术能力突出的团队推广使用selenium IDE、Katalon recoder、monkeyRunner等工具进行自动化的话,可想而知队员会是什么样的鄙视眼神,因为这是对他们满脑子代码的羞辱,我想这种自动化框架推广起来,肯定效果不好;再比如在一个纯业务的团队中你取推广难度较大的python+selenium+unittest框架、Java+Appium+Junit框架、甚至商用自动化工具UFT等,也注定会失败,毕竟术业有专攻,业务人员在技术上有太大欠缺,学习成本太大,短期内如果不能有明显效果,必然会对积极性造成打击,进而对自动化测试的推进形成阻碍。

Google在早期推广自动化的时候,也是做好了充分的调研,大部分团队都是积极接受这种改变的。当时的推广的负责人james whittaker,也没有一开始就全面铺开,而是选择有一定技术基础的团队优先开展,在取得显著效果之后,才推广到其他的团队,据james所著的《Google软件测试之道》书中描述,在推广过程也是遇到了各种不和谐的声音,如果早期不是有选择性的推广,而是一下铺开的话,这个项目很大概率会失败。推荐大家看看这本书:

在早些年参与的一个自动化项目,我们早期规划使用UFT工具做一套完整自动化测试解决方案,但在开展时候遇到了一个问题,团队内的业务人员很难在短期内熟练使用UFT工具,而且在时间、项目进度上也不允许他们花太多的时间去学习,但是团队内的另外两个刚加入的年轻人感觉这又是没有太大“含金量”技术工作。

最终我们将两者的优势进行了融合,懂技术的识对自动化测试中的测试对象进行封装和抽象,形成业务关键字,然后将这些业务关键字导入到EXCEL中,懂业务的通过熟悉业务的能力,像操作业务系统一样在EXCEL通过业务关键字组装业务场景和业务数据,这样改造后使得每个人都皆大欢喜,最终项目得以顺利实施并获得成功。

2、与开发协商构建一套统一的规则,确保软件的维护、更新对测试的影响最小化

在自动化测试的实施过程中,不论任何形式的自动化测试,都需要和开发团队形成默契,制定合理的规范和流程。

比如在UI自动化测试中,最令测试工程师头疼的是UI变化频繁,今天写的脚本,明天不能用了,你说你骂不骂娘,但这又是我们自动化测试的一个常见现象,这不仅仅重新调试代码带来的时间浪费,更多是对自动测试信心的消磨,那怎么做才能更有效的避免这种情况呢?

其实也很简单,只要我们和开发达成如下约定:

  • 每个元素必须有ID和Name,至少要保证一个属性不能频繁变化
  • 和开发共同维护一个元素属性表单,开发和测试都是从其中取数据
  • 与开发充分沟通,在自动化测试支持的原则下选择一些技术实现

通过与开发的合作,形成一个团队效应,共同推进项目的交付,也可以借助开源工具,使用关键字驱动思想进行二次开发

3、充分融入现有工作流程,使得自动化的引入对现有的测试影响最小化

任何一个新工具或者新技术的引入都应该快速的融入到现有的工作流程中,而不是另外开辟一个新流程。因为只有这样才能够达到成本最低化,利益最大化,对原有工作的影响最小化。所以我一直非常反对为自动化测试重新制定一套新流程,这样做的结果往往是自动化测试和业务流测试各自成体系,不能够实现联动,而使得重复工作量巨大,效益低下;同时在测试内部也不能有效形成合力,不利于提升团队整体能力,甚至导致小团队对立。

个人比较推崇在每个测试团队都要配备一个类似于Master的角色,在技术上一定要有很好的前瞻性,一个目的是指导业务测试人员学习和使用推广自动化测试技术,实现快速在团队内部推广和使用,提高整体效率;另外通过Master角色带领和引导团队成员学习新技术、新工具,进而提升整个团队的技术能力,形成良好的学习和工作氛围。

 

4、按照产品的要求交付,而不是项目,将失败风险最小化

在很多团队实施自动化都是按照项目的方式进行,这恰恰是大部分自动化测试项目实施失败的一个原因。作为项目来运作,就意味着有固定的开始和结束,当项目结束时,就是自动化测试项目实施失败之时。如果能按照产品运营的方式运营自动化测试,那么将会大大提升 自动化测试实施的成功率。


学习资源分享

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值