道家人 发表于 2024-8-18 20:04:56

软件测试工程师如何从功能测试转成主动化测试?

前言

接触了太多测试同行,由于多数同行之前一直做手工测试,现在很急迫希望做主动化测试,其中不乏工作5年以上的同行。
从事软件主动化测试已经近十年,接触过底层服务端、API 、Web、APP、H5 等等,对主动化算是比较了解。在此分享一下个人经验。https://i-blog.csdnimg.cn/blog_migrate/2c7b4ea2aaae1876b21129676741af07.png
想做主动化,起首得了解一下主动化测试的一些常见问题。
也是口试时,必问的一些问题(这么简单的口试问题,你却答的一塌糊涂),如果对主动化完全不了解,每天在那嚷嚷要做主动化,都是空喊。
主动化测试一些问题

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测试你就要很认识[<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 等
  · 平常多沉淀,然后抓住机遇,即可轻而易举的转型主动化测试。
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 软件测试工程师如何从功能测试转成主动化测试?