什么叫自动化测试?
自动化测试,顾名思义,就是自动完成测试工作。通过一些自动化测试工具完成测试工作并验证其结果的测试过程,这样的便是自动化测试。
自动化测试,听起来很高大上,自动进行测试,再也不用人工反复的去测,去验证机器代替手工劳动的时代。其实实际操作起来却不是这样,虽然说它叫自动化测试,但是因为每一个自动化测试的case都是从手工测试做起的,所以换句话说,如果没有手工测试的基础,是没法进行自动化测试。
那自动化测试的优点和缺点是什么?为什么要进行自动化测试呢?
为什么要进行自动化测试?我认为有以下三个方面
1.自动化测试节约成本
自动化测试可以解放一大堆人力,这一堆被解放的人力可以去从事其他方面的测试工作,这大大的节约了人力成本。并且如果让人反复,重复的去一件事,会大大的降低他的工作激情,效率,也会消磨他的创造力,但是机器则不同了,毕竟所有的工作只是一条又一条的命令而已,它只是在反复的执行预先输入好的命令,并不会有任何负面影响。
2.有些测试项目手工很难实现
比如一个大型网站的负载测试,压力测试,公司根本可能可以找到那么多的测试人员去模拟这样一个情况,但是通过机器却可以实现。
3.项目质量流程需要
自动化测试的优点:
1.提高测试效率,避免测试人员进行反复的工作而产生倦怠的情绪。
2.使每一次的测试都可以高度保持一致性
3.可以进行一些手工无法完成的测试
自动化测试的缺点:
1.因为是自动测试,系统执行的命令是提前预设好的,所以在bug的覆盖率上回比手工测试低
2.ui布局的问题无法发现
3.测试的时间可能会变得更长
那么到底什么样的项目适合用自动化测试呢?
项目有以下特点的适合做自动化测试:
1.项目需求变更少
自动化测试虽然是自动测试,但是前文也说到过,他始终是在完成提前预设好的命令。所以如果需求未确定的情况下,老是变更需求,那么测试的功能就需要反复改变,命令也要跟着反复改动,这样的项目是不适合做自动化测试的。
2.项目周期足够长
自动化测试是一个长期的测试过程,因为你在面对不同的需求时,命令也需要做不同的改变。打个比方,如果一个互联网项目,要求两周之内必须上线,那么这边你可能自动化才做完,项目就已经准备上线了,所以说,这种周期短的项目是不适合做自动化测试的。
3.项目资源足够
说了这么多,现在我们来谈谈,做自动化测试需要什么能力
1.首先,你得掌握代码能力
流行的 java Python c#等等。至少掌握一门,但不局限于一门。因为自动化测试需要你自己去编写命令让机器完成一些特定的操作,如果你连一点代码能力都没有,又怎么能让机器听懂你的需求,去做你想要做的事呢?
2.其次,你得熟悉你需要测试的系统的一些基本概念
比如说,你要做wbe端的测试,你需要懂html,css ,js,xpath
你要做的是移动端的测试,你至少需要懂Android开发基础,ios开发基础
如果你做的是c/s测试,那就需要懂tcp/ip 协议
自动化测试是一个长期学习的过程,上述的这些都是一些基础的知识储备,如果没有这些基础的知识储备,还是先从手工测试做起吧
3.你得会使用自动化测试工具
比如selenium, appium,testng等等,工欲善其事必先利其器,不会使用工具,你怎么能在自动化这条路上走的顺风顺水呢?
4.最后,你得善于学习,能够接受新的事物
现在互联网技术日新月异,每隔一段时间就会出现一些新的东西,如果你不学习,固步自封,那么你就只能做你以前做的事,无法进步,甚至有可能被淘汰。
软件行业从桌面到web端,又从web端到了移动端,谁也不知道下一个趋势是什么,最近这两年的AI,人工智能让Python又火了一把,如果你还停留在那个c#,java的时代,是否再过几年你就跟不上行业的步伐而被淘汰了呢?这是谁都说不准的。
所以说,核心的能力还是学习,如果你擅长学习,能接受新的事物,那么你的能力一定会越来越强,如果你不能达到这一点,那么还是老老实实的做手工测试吧。