分层自动化测试

A君:“我想学自动化,我得从哪里学起?”
我:“你想学类型的自动化?”
A君:“就是自动化测试啊!!哪里还分什么类型自动化”
我:“。。。。。。”

好吧,其实我是知道A君想问的是UI自动化测试,我也是故意不直说,因为我晓得在他的观念里自动化等同于自动化测试等同于UI自动化,然而它们的关系绝不是等同关系。
  按我的理解,所有机器代理手工执行某种过程,都叫可以叫自动化,那自动化测试就是机器代理手工执行测试的过程叫做自动化测试。UI自动化测试也仅仅是自动化测试的一个分支。
  现在很主流的一个观念,分层自动化测试(经典图如下)分三层,最底层是单元层,中间是服务层,顶部是UI层,而这三层越底层做自动化测试,实现成本越低,越容易看见成效。

分层自动化测试.png

  单元层自动化测试,就是我们平时所说的单元测试或者白盒测试,一般由开发者自己编写,QA人员接触较少。
  服务层自动化测试是api自动化测试也有人叫他是灰盒测试,主要是通过某种工具或者某种框架模拟请求,并对请求的返回做校验。现在互联网公司需求变化快也大,个人非常建议在api自动化上多花时间,因为他不仅仅投入成本相对UI自动化测试来得低,也容易看见成效,执行效率高等等的优点。很早以前曾经写过api自动化的一种方式,详细可见:http://blog.csdn.net/meyoung01/article/details/46008439
  最顶端的便是UI层的自动化测试,也就是现在很多人观念中的自动化测试。UI层自动化做的方式很多,根据不同的系统,不同的架构可能会用到不同的框架或者工具。然而UI自动化测试非常依赖于UI界面,如今的互联网公司大多需求变化大而快,迭代频繁,所以很多团队做UI自动化测试经常花了非常高的成本,却迟迟见不到效果,自动化测试人员每天奔命于维护脚本,追赶进度。更有些领导给了不切实际的UI自动化覆盖率。
  轻UI,重API。如果你是在一个迭代频繁,需求变化大的团队,那么我建议你把更多的时间花在API自动化测试上,而UI自动化测试个人认为仅仅需要做到主流程的覆盖便可。
  最后附上很久之前画的一张Xmind图每一层自动化测试常见的工具或者框架,以及各自的优缺点:

auto.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 单元测试:对软件中的最小可测试单元进行检查和验证。具体的说就是开发者编写的一小段代码,用于检验被测代码的一个很小的...
    faraway_com阅读 892评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,676评论 25 709
  • 前言 如果有测试大佬发现内容不对,欢迎指正,我会及时修改。 大多数的iOS App(没有持续集成)迭代流程是这样的...
    默默_David阅读 1,717评论 0 4
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,301评论 4 61
  • 文/ 蓝山 不知道你有没有发现,近几年马拉松赛事越来越受人们关注,无论是半马还是全马,人们参与的热情都很高涨。不管...
    蓝山日记阅读 514评论 2 0