阿里10年经验之谈-如何从功能测试转成自动化测试?

接触了太多测试同行,由于多数同行之前一直做手工测试,现在很迫切希望做自动化测试,其中不乏工作5年以上的同行。

我在阿里从事软件自动化测试已经近十年,接触过底层服务端、API 、Web、APP、H5 等等,对自动化算是比较了解。在此分享一下个人经验。

想做自动化,首先得了解一下自动化测试的一些常见问题。

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

自动化测试一些问题

1. 什么是自动化测试?
  自动化测试,顾名思义,自动完成测试工作。
  通过一些自动化测试工具或自己造轮子实现模拟之前人工点点/写写的工作并验证其结果完成整个测试过程,这样的测试过程,便是自动化测试。
  自动化测试,看上去很美,感觉好像是第一次工业革命,它开创了以机器代替手工劳动的时代,实则不然。
  因为每一个自动化测试的case都是从手工测试做起的,如果没有手工测试的基础,是没法进行自动化测试。
2. 为什么要进行自动化测试
  为什么进行自动化测试,答案要从自动测试的收益和人肉测试的成本说起:
1)自动化测试节约成本(根据项目)
  毕竟自动化测试确实解放了一批人力(人力成本才是IT公司最大的成本),可以让机器没日没夜的执行一些重复劳动.
2)有些测试项目手工很难实现(手工成本较高)
  比如12306的压力测试、负载测试,同时找那么多人去测试不现实可以通过机器去模拟.
3)项目质量流程需要
  比如版本管理需要build verify,以保证check in的code不会影响版本库。
  类似于smoke test

自动化测试的优缺点

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

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

《自动化测试工程师学习路线》

1、Python 编程与测试开发技术

2、Web自动化测试基础

3、APP自动化测试基础

4、Postman测试工具专题

 5、接口自动化测试基础

6、自动化框架封装

7、持续集成

8、Jmeter 性能测试

 9、APP性能测试

10、Fiddler 抓包工具的使用

11、TCP/IP协议详情

12、计算机操作系统

13、Linux 系统操作

 14、MySQL 数据库

15、RobotFramework 自动化测试框架

16、跨平台的自动化测试框架

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

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测试你就要很熟悉[<u>TCP</u>](javascript:;)、IP协议
3)掌握一套自动化测试框架(工具)
  比如
  selenium/appium
  nunit/testng
  robot framework/cucumber
4)善于学习,达到知其然知其所以然

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/源码.
当然,测试基础类的书籍,至少得看过一本,有系统性的知识。

总结:

新人学习自动化测试要:
  · 掌握一门开发语言
  · 掌握一些基础的知识
  · 自动化方面,少买书,多看测试框架的Document,多去技术社区交流
  · 不断学习,提升自己发现问题,解决问题的能力
  · 不做伸手党,多动手
 总而言之
  · 学习一门开发语言,Java/Python,学习一个测试工具selenium/appium,掌握一个测试框架,testng,cucumber等
  · 平时多沉淀,然后抓住机遇,即可轻而易举的转型自动化测试。

最后:下方这份完整的【自动化测试】学习教程已经整理上传完成,朋友们如果需要可以自行免费领取 【保证100%免费】

猜你喜欢

转载自blog.csdn.net/chengxuyuznguoke/article/details/129771589