自动化测试简介

Selenium自动化测试,很早就想跟大家分享。在15年开始,我们的团队就在使用这个工具。最初,我们使用的语言是Java和SQL的结合,随后,随着最近几年Python语言的如火如荼的发展,我们也进行相应的转型,而且看最近几年的Selenium自动化的趋势越来越好。所以,最近几天就规划给大家讲讲Selenium的自动化的知识与实践。

首先,我们来说说我对自动化的理解,Selenium也好,我们前面接触过的其他的自动化工具也好,QTP也好,UFT也好,这些工具都是为自动化去服务的,工具虽然很多,但什么时候适合用什么工具,如何开展自动化,什么时候不能或者不适合做自动化,是我们做自动化测试首先要明白的大前提!

必须对自动化测试有深入的了解,才能够在实际工作中,很好地去应用自动化,并根据项目判断哪些能开展自动化,哪些其实不需要自动化!

为什么自动化

为什么要需要自动化?回顾身边的测试工作,大部分都是手工测试,那既然手工测试已经满足测试工作了,为什么还要自动化呢?

2

大家测试过程中,经常遇到这样的问题:在有限的时间之内要测试大量的东西!这么多东西,怎么测得完呢?往往一些东西已经测了一遍了,接下来还要再测试一遍,那就测了一遍又一遍,很麻烦,很繁琐,就是我重复性的劳动再去做!还有,重复性劳动把人力资源进行大把地浪费了,那这时候能不能让一些软件或者一些工具去辅助我们,让我们从重复中的劳动中解脱出来。

比如,开发一个软件,第一个版本里面有一个登录模块,模拟测试没有问题了。由于这个模块相对于整个软件里是很重要的一部分,每次都要去测,还一直没有问题。怎么办呢,怎么在每一个版本里边都要去验证和保证没有问题!这时候就要去考虑能不能让软件或者工具替代这个重复的工作。

还有一些情况,比如说618和双11,这些活动需要进行性能测试。

3

性能测试的时候仍能保证精确到秒吗?很明显是做不到的,因此,遇到性能测试,往往也使用自动化去。

因此,两点原因回答为什么要自动化测试:自动化帮我们解决重复性的劳动;性能自动化,解决人没法去实现做到的事情:压力测试要精确到秒。进而,成本大大降低,速度会比人更快,更可靠!

我对自动化测试的定义

自动化测试,其实就是借助工具和软件,从局部或全部替代人工进行开展测试,从而提高测试效率。重新劳动,让自动化工具替代。其原理,就是模拟人工,把人工的操作记录下来,下一个版本里面去回放和调用的操作。

所以说,自动化测试很重要,也可以根据需要把写好的脚本进行二次开发。

但是,当我们有了自动化之后,是不是我们手工测试都可以退出舞台啦,并不是的,自动化有很多好的地方,那手工测试,也不会退出历史舞台。

自动化是根据在手工测试稳定的基础上进行的,优化出来的,或者延伸出来的。因此,手工测试肯定发现的缺陷比自动化发现的缺陷多。另外,比如说,第一个版本这个功能没有问题,第二个版本这个功能没有问题,第三个版本还是没有问题了!这就是在以软件版本比较稳定,软件质量比较稳定的前提下,才开展自动化。

自动化测试的应用范围

虽然现自动化测试在不断的扩展,但是它都是基于哪些条件开展呢!比如,软件版本比较稳定了,版本迭代比较多,周期比较长,在软件测试过程中,有大量的重复性的人力劳动,此时,可以用软件去替代!

哪些场合适合自动化呢?我总结一下,就是回归测试。回归测试意味着大量要做的重复的工作。回归测试有两方面的工作:一是保证原来没有问题的模块,不会由于新的版本发布产生问题;另一个是验证新的bug是否修复。更多更频繁的工作,就在不同的版本发布,还有手工测试无法实现的性能测试,跨平台测试,重复性劳动很强,那就跟回归测试一样!我汇总了如下场景:

4

哪些场合不适合呢?

如和物理设备进行交互的,还有,结果很容易判断的,比一个产品的外观,不需要用。人工通过肉眼很容易去判断,软件还不稳定的时候,结果很容易通过手工验证(UI测试)。为大家汇总如下:

6

总结

在实际工作过程中,自动化开展的比例其实远远没有想象的那么高,但是为什么现在智联招聘,58同城,中华英才网,Boss直聘等招聘网站一直招自动化呢?!在很多工作中,有些地方确实是需要用自动化测试的,只是,使用比例并没有想象那么高,可能在百分之四十,百分之五十,其中,百分之四十都属于比较高的了!所以,自动化测试是测试的一部分,同时,也是十分重要的一部分!

IT赶路人

专注IT知识分享