老徐接触了太多测试同行,由于多数同行之前一直做手工测试,现在很迫切希望做自动化测试,其中不乏工作5年以上的同行。
  老徐从事软件自动化测试已经近十年,接触过底层服务端、API 、Web、APP、H5 等等,对自动化算是比较了解。在此分享一下个人经验。
  想做自动化,首先得了解一下自动化测试的一些常见问题。
  也是老徐面试时,必问的一些问题(这么简单的面试问题,你却答的一塌糊涂),如果对自动化完全不了解,每天在那嚷嚷要做自动化,都是空喊。
  自动化测试一些问题
  1. 什么是自动化测试?
  自动化测试,顾名思义,自动完成测试工作。
  通过一些自动化测试工具或自己造轮子实现模拟之前人工点点/写写的工作并验证其结果完成整个测试过程,这样的测试过程,便是自动化测试。
  自动化测试,看上去很美,感觉好像是第一次工业革命,它开创了以机器代替手工劳动的时代,实则不然。
  因为每一个自动化测试的case都是从手工测试做起的,如果没有手工测试的基础,是没法进行自动化测试。
  2. 为什么要进行自动化测试
  为什么进行自动化测试,答案要从自动测试的收益和人肉测试的成本说起:
  1)自动化测试节约成本(根据项目)
  毕竟自动化测试确实解放了一批人力(人力成本才是IT公司大的成本),可以让机器没日没夜的执行一些重复劳动.
  2)有些测试项目手工很难实现(手工成本较高)
  比如12306的压力测试、负载测试,同时找那么多人去测试不现实可以通过机器去模拟.
  3)项目质量流程需要
  比如版本管理需要build verify,以保证check in的code不会影响版本库。
  类似于smoke test
  自动化测试的优缺点
  优点
  避免测试人员因重复劳动产生厌倦
  提高测试效率
  保证每次测试地一致性和可重复性
  更好的利用无人值守时间
  进行一些手工无法进行的测试
  缺点
  维护成本相对比较高
  系统开发时间不一定能缩短
  还是得依赖手工测试,很多问题无法发现
  什么样的项目适合做自动化测试(dev手一抖,auto忙一宿)
  有以下几个特点的项目比较适合自动化测试:
  1. 项目变动少
  2. 周期长
  3. 项目资源足够(自动化不是一个人完成的,需要一帮人长期维护)
  举例说明:
  互联网项目,一周内要上线,你不上线别人上线人家不用你的,项目周期短,变动快,你自动化还没做好,项目说不定下线了。
  比如某宝双12活动相关项目,一周之内下线了。
  适合做自动化测试的项目,比如某宝客户端,每个release,大部分功能都不变,并且3-5年内项目不会下线,这个比较适合自动化.
  什么样的人适合做自动化测试?
  这个问题是写给想要做自动化测试的人,或许你以为软件测试的门槛很低,低到任何人都可以做,随便点点可以了,这个行业太low了,所以你想做自动化测试,提升自己的逼格,我想说手工测试并不low,如果让一个什么都不懂,一点业务基础都没有的人去做测试,能测出来问题吗?不要忽略你的业务知识储备.
  你的业务知识储备的积累能让你成为不可替代的行业专家,而做自动化的码农会因为一个时代的更迭被小鲜肉替代。
  扯了这么多,究竟什么什么样的人能做自动化测试?
  我的理解分一下几点:
  1)拥有代码能力
  掌握一门开发语言,java、Python、ruby、c#
  2)熟悉被测系统
  比如你是web测试,你得懂js、css、html、xpath
  你是移动端测试,你得具备Android 开发基础和iOS开发基础,会debug app
  你是 C/S测试你要很熟悉TCP、IP协议