背景

  1. 本文关于 UI 自动化观点是根据 macaca+uirecorder(两年前已实现)的思路而来,对于用例生成规则、特殊页面处理规则都有研究与实现。
  2. 本文观点来自过去几个月查看社区关于自动化的帖子而来,抱着介绍当前自动化的现状而来,批判当下测试领域 UI 自动化测试、接口自动化测试的一些怪象。
  3. 鉴于本文观点引起争议,限定本文提及的 UI 自动化不涉及 APP 端电量测试、弱网测试、稳定性测试、兼容性测试,将 APP 端电量测试、弱网测试、稳定性测试、兼容性测试等归入 APP 专项测试。
  4. 文中观点比较尖锐,如引起个人不适,请在本文后提交批评意见。

一、UI 自动化测试

使用 macaca+uirecorde 简化 UI 自动化工作。

1. macaca

macaca 官网
github 官方仓库

2. uirecorder

uirecorder 官网
github 官方仓库

3. 框架优点

不多说,减少大量人力,即便 BAT 公司所开发的 APP,1~5 人可以使用 macaca+uirecorder 可搞定公司所有 APP 的 UI 自动化测试、WEB 端 UI 自动化测试。平常 1~2 人维护便可。

4. 前景

云测平台,UI 自动化集成到云测平台。不多说。

5. 影响

对不起,UI 自动化不能算作技能了,招聘过程中不会招聘目前仅仅用 selenium 写脚本的 UI 自动化工程师了。但是会有招聘优化录制脚本的工程师岗位、UI 自动化平台开发人员。

6. 展望

UI 自动化录制、自动遍历是近期小目标,人工智能 + 自动化遍历是 UI 自动化终极目标

7. 仅以 WEB 端举例说明(用例均使用 UI 录制脚本或者优化录制代码实现的)

实例一、判断 testerhome 精华帖,效果如下:

(1). 第 1 次运行 25 个页面

(2). 第 2 次运行 70 个页面(mochawesome 报告)

实例二、检查腾讯财经频道页面加载时间(默认超时时间为 30s)

21 分钟生成 200 个页面的用例,未添加其他断言。

二、接口自动化

翻了一些简历,发现一些所谓的接口自动化就是使用 python 或者 Java 编写了一段代码,去执行 Excel 或者数据库里面储存的测试用例。

1. 著名自动化框架(欢迎补充)

(1) Python
pytest、unittest、nose
(2) Java
Junit、testNG
(3) node.js
mocha、jest、jasmine、qunit
(4) c++
googletest

2. 如何高效的进行接口自动化

编写测试自动化代码(不仅仅是脚本),与开发代码集成。

3. 编写接口自动化测试代码的好处

(1) 持续集成
与开发代码一起进行持续集成,测试过程中代码可以与开发代码一起编译,可以及时发现开发提交代码问题。
(2) 开发同学也可使用测试代码
接口自动化代码不仅仅被测试使用,也可被开发使用。
(3) 促进测试、开发之间相互学习
目前 IT 行业也有许多测试无法胜任的事情,部分项目开发编写的代码多数测试已无法全部理解,测试仅仅进行功能测试、接口测试已无法保证质量。
随着行业的发展,IT 行业最终将仅会剩下很少的测试工程师岗位,测试工作(无论是单元测试工作、接口测试工作、UI 自动化测试工作)大多数将是开发工程师完成的,现阶段的测试工程师、开发工程师相互学习,可以更快的到达这一步。
(4) 便于统计分析代码质量
什么单元测试代码覆盖率、接口测试代码覆盖率,都是通过现有工具可统计的。
(5) 接口自动化用例维护
根据代码特征、代码文件可以将自动化测试脚本元数据提取出来,存储到数据库中,没有现阶段手动维护接口测试数据的问题。

4. 前景

只有软件开发工程师,测试工作是软件开发工程师的一部分工作。
现阶段不会写单元测试的开发工程师会被淘汰。

5. 影响

花了几个月,写了一套牛 X 的接口测试框架,厉害了。但是对不起,建议你使用开源的测试框架,不要浪费时间、资源在自以为牛 X 的测试框架上。

此外,测试框架真的是你写的吗?最多算作你封装了一个或者几个测试框架而已。

大牛们请绕路,测试框架还是需要大牛们开发的,而不是几个拿着一个封装了几百行、几千行代码的人开发的。

三、性能自动化(仅指接口性能)

使用 nGrinder、jmeter 搭建性能测试自动化平台,鉴于本人暂未做过该部分工作,不做介绍。

四、测试工程师进阶之路

既然未来比较残酷,那就为未来做好准备吧。

1. 懂代码到写代码

(1) 测试工程师阅读开发代码还存在困难?
醒醒吧,找领导申请开发代码仓库的权限吧。
(2) 领导不批怎么办?
github 中比你公司开发编写的代码还要优秀的代码多如牛毛。

2. 懂代码到懂业务

(1) 不仅仅是懂代码,也需懂业务
不多说,懂业务才能给公司带来营收(盈利)。
(2) 懂业务,淘汰不合理需求
不多说

3. 深入了解系统原理、测试框架原理

纯走技术路线,python、Java 等开源的测试框架,也可去贡献自己的力量,甚至创造全新的测试框架、自动化测试工具。

4. 懂代码到懂质量

单元测试、自动化测试是保障软件质量的手段,软件质量保障不仅仅限于代码层面,流程控制也占据十分重要的地位。

此外软件质量评估、评估开发人效需要收集大量质量数据,通过整合各个组织内部的质量数据,提供管理者决策数据。

四、备注与版权申明

本文为原作者在segmentfaulttesterhome知乎同步发文,转载请注明原文作者。


↙↙↙阅读原文可查看相关链接,并与作者交流