绝大多数测试同学都是从功能测试做起的,工作忙忙碌碌,每天在各种业务需求学习和点点中度过,过了好多年发现自己还只是一个功能测试工程师。
随着移动互联网的发展,从业人员能力的整体进步,软件测试需要具备的能力要求越来越高,打开招聘网站,90%的招聘都会有如下这一条。
至少熟悉一门编程语音,自动化测试XX年经验。
所以,越来越多的测试工程师开始迷茫,不管是被动的还是主动的,这个时代需要我们不断学习去保持自己的竞争力,因为互联网红利越来越少,你的水平高低,决定了你在公司的价值,也决定了你未来职业选择的优势,而学习自动化是你不得不选择的一条路。
在学习自动化之前,我们需要明确自动化测试是什么?
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。
自动化测试的主要目标是提高测试效率,降低项目成本,而不是完全取消手工测试。
自动化测试的意义?
如何选择自动化测试的方向?
测试金字塔
测试金字塔自上而下依次是UI测试、接口测试、单元测试。越到高层影响的范围越大,需要的成本越高。
在《google 测试之道》一书,对于google产品,70%的投入为单元测试,20%为集成、接口测试,10% 为UI层的自动化测试。
越底层的自动化测试效率越高,价值越高。
测试金字塔中我们可以了解到,从下到上每个阶段对应的测试内容:
对应上面的测试内容,自动化测试的学习方向或者切入点一般有以下几类:
前期的技能准备?
选择好自己的自动化切入点之后,如何学习自动化测试?
自动化测试不是万能的,手工测试的必要性
首先,自动化测试的投入并不低,所以对于项目是否需要做自动化测试,以及做什么类型的自动化测试都需要进行评估。
其次,自动化测试涉及的测试范围有限,一般是项目的核心业务、主功能或者执行重复度较高的用例,并不能百分之百的覆盖所有测试用例,并且很多测试项必须人工检查,比如页面的布局、特殊的业务逻辑判断等。
最后,自动化测试只是一种手段,测试实施的本质是人,自动化只是一种补充,多种手段用,才能更好更全面的提升产品质量。