本文首发于公众号「测试漫谈」,回复“软件测试教程”获取:麦子学院、黑马、小强软件测试全套学习教程!
当我们找工作的时候查看招聘信息发现都需要有自动化测试经验,由此看来测试人员不会一点自动化测试技术都不好意思说自己是做软件测试的。大部分测试人员也都是从使用自动化测试工具、录制回放、测试脚本、开发小工具入门自动化测试的,然后在慢慢的接触 UI 自动化、接口自动化、持续集成,最后搭建自动化测试框架系统。
大部分测试初学者入门自动化测试接触最多的也许就是 UI 自动化了,也都使用过移动端的 Uiautomator、Appium UI自动化框架、PC 互联网界面相关的 Selenium、Robot Framework UI自动化框架,潜意识里认为 UI 自动化测试很简单。但是使用一段时间之后喜忧参半,特别是在工作中真正使用时就立马水土不服了,开发和维护脚本的时间远远大于手工测试的时间,得不偿失,最后由回归到了手工测试。
如果要想 UI 自动化在实际的工作中得以使用,必须要解决以下痛点,否则 UI 自动化的测试还有很远的路要走。
1、需求不稳定,频繁变更的项目
UI 自动化测试最大的挑战就是需求的变化,界面如果经常变动,脚本就需要重新编写,界面需求频繁的变更导致编写脚本的速度赶不上需求的变化,那 UI 自动化就是名存实亡,因此 UI 自动化测试特别适合需求稳定、不会频繁变更的项目。敏捷开发的项目需求不稳定,需求的变更经常会导致界面的变更,同时敏捷开发的项目周期短,因此敏捷开发的项目就不适合做 UI 自动化。
2、开发维护周期短的项目
对于一次性开发的、周期短的项目,考虑到 UI 自动化的投入产出比,不宜进行 UI 自动化测试。UI 自动化的收益主要是在多轮测试的时候才能体现出来,试想一个维护周期短的项目测试的轮次比较少,如界面测试就测试 1 到 2 轮即可,这样完全可以使用手工测试就行了。同时自动化脚本的开发和调试本身就需要一定的时间,如果项目的周期短,没有足够的时间支撑脚本的开发,那也无需自动化测试了。
3、被测系统开发不规范,可测试性需求不明确
UI 自动化测试其实就是模拟手工点击,不像人眼可以直接找到需要点击的控件,程序就不一样了,需要我们事先要找到要点击的控件,然后让程序去点击完成模拟手工的操作。这就需要在项目开发前针对自动化测试定义一些列的规范,开发工程师在开发的时候遵循规范开发,UI 自动化才可以进行下去。例如针对按钮控件没有定义唯一的 id 或者文本描述等,在自动化脚本编写的时候就无法找到该控件。如果开发在不同的版本之前经常随便变更控件的定义,那之前能执行的脚本在之后就无法正确的运行,需要实时维护,带来很高的人力成本而变得效率低下。同样的还有接口自动化测试过程中的接口参数等。
那什么样的项目适合进行 UI 自动化测试呢?如下列举的可以进行参考:需求稳定不频繁变更;需要频繁的回归验证;UI 界面稳定、界面控件定义规范可测试性强;开发维护周期长的项目;项目进度压力小;大型公司大平台;测试部门中大部分测试人员具备脚本开发能力。
当前,UI 测试是耗费测试团队人力最多的测试环节,大部分的测试人员日常的工作就是 UI 测试。因此 UI 自动化非常适合解决简单、机械、重复的任务,增加测试的覆盖率。
UI 自动化测试不仅仅编写测试脚本,也需要设计,不仅需要考虑成百上千条用例的执行效率,还需要考虑维护成本,执行结果的正确性。我们需要明白,UI 自动化测试不能替代手工测试,也很难减少测试人员,不能盲目的推崇和追求 UI 自动化测试。
PS:如果文章对你有价值,欢迎点个喜欢,谢谢 。