美文网首页
职场经验:为什么要学习自动化测试?过来人告诉你答案

职场经验:为什么要学习自动化测试?过来人告诉你答案

作者: 起码我有故事 | 来源:发表于2022-12-08 20:44 被阅读0次

学习自动化这个想法,其实自己在心里已经琢磨了很久,就是一直没付诸实践,觉得现在手工测试已经能满足当前的工作需要,不想浪费时间去学习新的东西,有点时间还不如刷刷视频、看看小说等。

为什么要进行自动化测试?

之前很长时间做的都是手工测试,虽然也有将手工测试用例转化为自动化测试用例过,但是个人的认识是自动化测试是用在为产品后期维护进行测试的目的上。

我接触到的自动化测试分两个方面:一个是性能测试(LR),一个是自动化测试(XACC)。我个人的理解想要做这两样测试的话必须软件的界面都很成熟了,变动不大了。比如在产品后期交付界面比较稳定不会做大的调整的过程中,为了进一步的提高软件性能可以进行性能测试,为了保证每一个版本的基础功能不受其他代码变动的影响也可以在后期版本中运行自动化测试。

既然要打翻从新学习就要了解一下网上现在都是什么情况?总结起来跟我之前的理解不冲突。

软件自动化测试是测试工作的一部分,是对手工测试的一种补充。自动化测试是相对手工测试而存在的,主要是通过所开发的软件测试工具、脚本等来实现,具有良好的可操作性、可重复性和高效率等特点。

手工测试局限性:

1、手工测试不能覆盖所有代码路径。

2、基本的功能性测试用例在每一轮测试中都不能少。由于工作量往往较大,属于重复性的、非智力性的和非创造性,并要求准确细致,使用机器比人类更有优势。

3、许多死锁、资源冲突、多线程等有关的不正确 ,通过手工测试很难捕捉到。

4、系统压力、性能测试,需要模拟大数据或大并发用户等各种测试场景,很难通过手工测试执行。

5、系统可靠性测试,需要模拟系统长时间运行,以验证系统能否稳定运行,难以通过手工测试执行。

6、如果有大量(几千)的测试用例,须要在短时间内(1天)完成,手工测试几乎不可能做到。

自动化测试主要优点:

1、避免重复工作:对于功能已经完整和成熟的软件,每发布一个新的版本,其中大部分功能和界面都和上一个版本相似或完全相同,这部分功能特别适合于自动化测试,从而可以让测试达到测试每个特征的目的。

2、提高测试效率:DCC版本的发布周期往往比较短,也就是开发周期只有短短的几个月,而在测试期间是每天/每2天都要发布一个版本供测试人员测试,一个系统的功能点有几千个上万个,人工测试是非常的耗时和繁琐,这样必然会使测试效率低下。

3、保证每次测试的一致性和可重复性:由于每次自动化测试运行的脚本是相同的,所以每次执行的测试具有一致性,人是很难做到的。由于自动化测试的一致性,很容易发现被测软件的任何改变。

4、更好的利用资源--周未/晚上。理想的自动化测试能够按计划完全自动的运行,在开发人员和测试人员不可能实行三班倒的情况下, 自动化测试可以胜任这个任务, 完全可以在周末和晚上执行测试。这样充分的利用了公司的资源,也避免了开发和测试之间的等待。

5、解决测试与开发之间的矛盾:通常在开发的末期,进入集成测试阶段,由于每发布一个版本的初期,测试系统的错误比较少,这时开发人员在等待测试人员测试出错误的时间。事实上在迭代周期很短的开发模式中,存在更多的矛盾,但自动化测试可以解决其中的主要矛盾。

开始自学

第一次有学习Selenium的冲动是在一次被训话之后,觉得委屈了,不想干了,想换份工作。

那个时候手工测试比比皆是,没有自己的优势,所以就打算学习自动化知识来充实自己。网上视频也找了,但是仗着自己之前有点代码基础,没有按照课程系统学习,导致一知半解,在学习完Selenium录制脚本的功能之后,觉得自动化测试只是用工具录制脚本,然后回放就可以了,学习到此结束。

由于未继续学习,只会用Selenium录制脚本然后回放,正好我用来测试的系统,有一个鼠标悬浮时间,但是录制时这个事件并没有录制上,也导致了回放不成功,就此就放下了,第一次自动化的学习就到此结束了。

第二次又有冲动学习自动化是在和领导的一次谈话中提及的,说不能只会手工测试,要接触一些新东西,不然很快就会被淘汰。谈话完之后,我又想是时候开始学习了,又找出学习视频,三天打鱼两天晒网的开始看视频,不紧不慢的进行学习,也没太上心。

准备

真正督促我开始重视学习的,是某个项目真正用到了自动化,问我能不能做,我说还在学习的时候,就感觉别人的眼神都不对了,作为一个有好几年测试经验的老测试,测试自动化工具都不会用。

这个时候我才开始真正上心,每天工作不忙的时候,或者下班之后,拿出1-2小时进行系统的学习,不因为我之前一知半解的知识而放弃某个模块的学习,俗话说得好,有压力才会有动力,真的是这样,我竟然真的坚持下来了,经过一段时间的学习,慢慢的觉得,自动化原来也不是个很难得事情,所谓熟能生巧,多次练习之后就会发现其实很简单。

根据这几次的学习历程,给大家几个建议供大家参考。

学习建议

多样化练习

完全按照视频里的操作方法,用视频里的网站,按部就班的写代码,效果不大,并不是说没有必要。因为课程里所使用的网站都是老师“精心挑选”的,主要针对某个模块某个知识点而来的,用来做例子的功能也是最简单,主要目的是让学员明白当前所讲的知识点。

但是在实际应用的过程中肯定会比这复杂。所以建议在按照视频里的例子练习完成后,多拿一些常用的网站或者工作中正在使用的网站多做练习,这样我们往往会获取到一些课程里没有的知识。

一开始不会没关系,就是照着现有脚本抄也要练习,因为只有练习才能熟能生巧。

虚心学习不自以为是

因为我之前是有代码基础的,所以在第一次学习的过程中将所有代码相关的课程都跳过了,所以导致了知识的断层。第二次学习的过程中,是将课程从头到尾的完整的看了一遍并进行了实际操作,才发现,之前被我跳过的内容隐藏了一些我从前并不知道的知识点。

有始有终

第一次学习时,学习完脚本录制之后,就停止学习了,并没有继续学习后续的内容。

第二次学习后发现,用录制的方式写脚本是很low的,很有局限性,并不能满足所有的需求,后来用WebDriver和UnitTest才是真正的高级,解决脚本录制不能解决的问题。

遇事迎难而上

在我学习完课程后,自己在练习的过程中,遇到了课程中并没有讲到的内容,脚本执行一直报错,在我第一次的学习过程中,遇到问题就放弃了,并没有积极的去解决问题,导致了最终的放弃。

而第二次学习中,遇到问题后我积极的去各种网站查找解决问题的方案,问题总会得到解决。在问题得到解决之后,发现这是一件很值得骄傲的事情,心情就会变好,虽然解决问题的过程可能会很艰难。

应用到日常的工作中

我们学习完自动化之后,不要学习完就行了,而要积极的将其应用到我们日常的工作中,如果放着不用,一段时间之后我们学习到的知识都会慢慢遗忘。将其应用到工作中后,不仅能对技术进行不断练习、优化、升级,还能提高工作效率,何乐而不为呢?

这是我自学自动化的历程,走了不少弯路,也没有专人的指导,只能靠自己去摸索,希望我自己犯的错误能让大家引以为戒。

相关文章

网友评论

      本文标题:职场经验:为什么要学习自动化测试?过来人告诉你答案

      本文链接:https://www.haomeiwen.com/subject/bnqofdtx.html