什么是自动化测试?
当我第一次知道自动化测试的时候,除了知道“自动化”这三个有些高大上的称呼之外,我对自动化测试一无所知,正如谈恋爱一样,找女朋友之前要知道她是谁。
那么是什么自动化呢?
自动化难以定义,却存在于我们生活中的角角落落。其实理解自动化并不难,我觉得只要你不是智障都能够理解。举个例子:
1、传统农耕VS自动化农耕
2、传统播种VS自动化播种
3、手工收割VS自动化收割
首先,无论是耕耘、播种和收割,这些作业都是周而复始而没有任何变化的工作,这种重复却非常适合自动化农耕技术中预设的脚本。
其次,传统的农耕作业都是低效的,面对当今大规模、快节奏的农耕需求,手工作业的生产力明显跟不上日益增长的饮食需求,靠人工是不可能完成的任务。
最后,人类虽然是万物的灵长,但是面对重复、枯燥、大规模的农耕劳动中是很容易犯错的,使用自动化及其作业可以做到既专业又标准。
通过上面的例子我们基本可以得到,机器+设定=自动化
顾名思义,我认为将自动化技术应用到web测试当中,就是自动化测试。
那么问题1来了,适合用自动化完成的测试工作特征都有哪些呢?
测试中自动化的应用
我们都知道,并不是所有的测试都适合自动化测试,那么在我们整个测试流程中,哪些测试工作适合自动化测试呢?
其实回答这个问题非常简单,只有符合自动化特性的测试工作才适合进行自动化测试。
按照时间顺序,我们大部分项目的测试流程应当是这样的:冒烟测试→新需求测试→兼容性测试→回归测试。
冒烟测试:测试流程的重要起点
新需求测试:测试过程中学习、探索最集中的测试
兼容性测试:产品在不同浏览器上的兼容性测试
回归测试:稳定功能是否受到新功能影响的测试
结合自动化重复、低效、易错的特点,我们可以知道冒烟测试和新需求测试由于需求不稳定,变化较多,并不适合进行自动化测试;而回归测试和兼容性测试,前者需要执行大量的回归测试用例,后者需要将这些用例在不同的浏览器重复执行,完全符合自动化应用场景中的特点,我们完全可以利用自动化测试工具,将这些重复、低效、易错的工作做得更为高效和专业。
下面大家看一个自动化测试使回归测试更为高效的例子:
1、打开网易云课堂首页
2、完成登陆
3、导航栏进入【编程语言】
4、选择【随到随学】→【用Java学编程】
5、浏览章节
6、选择【计算的优先级】一节
7、验证章节标题是否为选取的章节
由此,我们可以看到自动化测试确实能够提高我们在测试工作中的效率,节省大量的人力和时间。
如何选择自动化测试工具?
通过上面的例子,自动化测试的威力我们已经有了初步的了解,就像是编程语言等互联网技术百花齐放一样,WEB自动化测试工具也是多种多样的,那么作为自动化测试的初学者如何去选择自动化测试工具呢?
当然了,内事不觉问百度,外事不觉问谷歌嘛,借助搜索引擎的力量我们可以找到我们要的答案,但是我建议你使用如下关键字搜索:Web+Automation+Test+Tools,至于为什么用英文,大家可以自己尝试比较一下搜索结果的差异,毕竟百度.....是吧......
说实话,当你搜索的时候会有非常多的工具推荐,到底使用那种工具就要有一个严格的标准来筛选,我自己选择的标准如下:
1、发展趋势要稳定上升
2、要有一个活跃的社区能够讨论
3、要是开源软件
4、支持主流的编程语言(Java、Python)
5、要支持主流浏览器(谷歌、IE、火狐等)
综合以上,Selenium是不二之选。
好了,说了那么多,那么如何学习自动化?学习有没有资料?
对自动化感兴趣的同学,欢迎加QQ群:706315665,一起学习,相互讨论。
群内已经有小伙伴将知识体系整理好(源码,笔记,PPT,学习视频),欢迎加群免费领取
加QQ群:706315665,免费领取资料
分享给喜欢自动化,有梦想成为大牛的Tester们,希望能够帮助到你们。