做好这些,你要转型自动化测试其实很简单!!!

Time will tell.

前言

软件测试工程师。指理解产品的功能要求,并对其进行测试,检查软件有没有错误(Bug),决定软件是否具有稳定性,写出相应的测试规范测试用例的专门工作人员。

简而言之,软件测试工程师在一家软件企业中担当的是质量管理角色。及时纠错及时更正,确保产品的正常运作。

国内测试行业在不断的规范,正在黄金发展期,处于上升势头,整个行业前途光明。

正因为处于初级阶段使得测试从业人员整体水平不高,未来对高素质,高技能的软件测试从业者的需求量会越来越大。

因为软件测试涉及面广泛,所需要的技能也很多,并不只是简单的点点点(功能测试)

而入行了好几年,但却依然是功能测试的同学所面临的的压力可想而知。


软件测试行业属于技术岗位的,所以是要靠技术说话的。不断掌握新的技能,提高软件测试找bug能力也就变成了目前软件测试从业人员迫在眉睫需要解决的问题。

因此,现在大部分初级功能测试人员都在向自动化性能接口靠拢。

但是还是有不少的软件测试工程师站在处于迷茫当中,找不到自己的方向。

所以你如果还是只会点点点,那么很有可能会被淘汰。

因此,如果想做一个合格的软件测试工程师提升自身技术是一个必要的过程。

而自动化技术是一门必备技能,首先得了解一下自动化测试的一些常见问题。

也是面试时,必问的一些问题。如果这么简单的面试问题,你却答的一塌糊涂,还每天在那嚷嚷要做自动化,那么都是空喊。


1、什么是自动化测试?

自动化测试,顾名思义,自动完成测试工作。 
 
通过一些自动化测试工具或自己造轮子实现模拟之前人工点点/ 写写的工作并验证其结果完成整个测试过程,这样的测试过程,便是自动化测试。

自动化测试,看上去很美,感觉好像是第一次工业革命,它开创了以机器代替手工劳动的时代,实则不然。

因为每一个自动化测试的case都是从手工测试做起的,如果没有手工测试的基础,是没法进行自动化测试。


2、为什么要进行自动化测试

为什么进行自动化测试,答案要从自动测试的收益和人肉测试的成本说起:

1.自动化测试节约成本(根据项目)

  • 毕竟自动化测试确实解放了一批人力(人力成本才是IT公司最大的成本),可以让机器没日没夜的执行一些重复劳动.

2.有些测试项目手工很难实现(手工成本较高)

  • 比如12306的压力测试、负载测试,同时找那么多人去测试不现实可以通过机器去模拟.

3.项目质量流程需要

  • 比如版本管理需要 build verify ,以保证 check in 的 code 不会影响版本库。类似于smoke test

3、自动化测试的优缺点

优点:

  • 避免测试人员因重复劳动产生厌倦
  • 提高测试效率
  • 保证每次测试地一致性和可重复性
  • 更好的利用无人值守时间
  • 进行一些手工无法进行的测试

缺点:

  • 维护成本相对比较高
  • 系统开发时间不一定能缩短
  • 还是得依赖手工测试,很多问题无法发现
  • 什么样的项目适合做自动化测试(dev手一抖,auto忙一宿)

有以下几个特点的项目比较适合自动化测试:

  1. 项目变动少
  2. 周期长
  3. 项目资源足够(自动化不是一个人完成的,需要一帮人长期维护)

举例说明:

  • 互联网项目,一周内要上线,你不上线别人上线人家就不用你的,项目周期短,变动快,你自动化还没做好,项目说不定就下线了。

  • 比如某宝双12活动相关项目,一周之内就下线了。

  • 适合做自动化测试的项目,比如某宝客户端,每个release,大部分功能都不变,并且3-5年内项目不会下线,这个就比较适合自动化。


4、什么样的人适合做自动化测试?

这个问题是写给想要做自动化测试的人,或许你以为软件测试的门槛很低,低到任何人都可以做,随便点就可以了,这个行业太low了,所以你想做自动化测试,提升自己的逼格。

我想说手工测试并不low,如果让一个什么都不懂,一点业务基础都没有的人去做测试,能测出来问题吗?不要忽略你的业务知识储你的业务知识储备的积累能让你成为不可替代的行业专家,而做自动化的码农会因为一个时代的更迭被小鲜肉替代。

扯了这么多,究竟什么什么样的人能做自动化测试?我将它分以下几点:

1、拥有代码能力

  • 掌握一门开发语言,java、Python、ruby、c#

2、熟悉被测系统

  • 比如你是web测试,你就得懂js、css、html、xpath
  • 你是移动端测试,你就得具备Android 开发基础和iOS开发基础,会debug app
  • 你是 C/S测试你就要很熟悉[TCP](javascript:😉、IP协议

3、掌握一套自动化测试框架(工具)

  • 比如:selenium/appium、nunit/testng、robot framework/cucumber4)善于学习,达到知其然知其所以然IT行业变化太快,每隔一段时间就会出现一些新兴的东西,也会出现原来很火的东西逐渐没落,谁也无法预测。


曾经诺基亚还是手机霸主,靠塞班一统天下,然而不思进取,落得个卖身求生存。

曾经 QTP 很火,曾经 selenium 也很火,现在 appium 也很火。

软件行业从桌面软件到 web端,又从 web端迁移到移动端,谁也不知道下一个是什么。而我们作为软件行业的从业者,不能因为那些很火的东西不火了而让自己没落,一个人最为核心的能力就是学习能力


如果,你善于学习,你就不必担心这些变迁,因为你可以毫无压力的迁移, selenium 的原理你掌握了,学习 appium 就是小菜一碟,因为 appium 使用的是 selenium WebDriver protocol 。

如果,你能做到知其然知其所以然,你也可以造轮子,改造 appium ,毕竟现在很多功能需要完善。

如果,你没有达到以上的几点,建议你还是继续做手工测试吧。

如果,你有代码基础,想要从事自动化测试的话,要怎么去学习呢?

1、很多初学者很纠结,学qtp还是学selenium

  • 我的建议是学 selenium,开源的,免费的,你可以下载源码研究,去了解其原理,再者现在 selenium 的资料不要太多,随便搜搜一大堆,学起来比较轻松。
  • 不建议学 selenium IDE 录制,当然你可以通过录制一些然后转换为相应的脚本去学习,等你学好了 selenium , 再去学 appium 你会有一种天然的似曾相识。

2、为什么不建议学QTP/UFT?

  • 因为收费/臃肿/现在做桌面软件测试的工作已经不太多了。

3、关于买书

  • 自动化工具类的书,不建议买,很多书已经过时了,并且质量不一定好,你买了那些书中的 code 可能已经不能用了,如果你真的想学,就去官网找 example ,去相应的社区和群交流。
  • 或者直接看 API 源码。当然,测试基础类的书籍,至少得看过一本,有系统性的知识。

5、最后总结

1、新人学习自动化测试最好是掌握一门开发语言,掌握一些基础的知识。

2、自动化方面,少买书,多看测试框架的 Document ,多去技术社区交流。

3、不断学习,提升自己发现问题,解决问题的能力。

4、不做伸手党,多动手。


总而言之,学习一门开发语言,Java /Python,学习一个测试工具 selenium /appium ,掌握一个测试框架testngcucumber等。

平时多沉淀,然后抓住机遇,是可以轻而易举的转型自动化测试的。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值