一.通常来说,具备以下3个主要条件才能开展自动化测试工作:
1.需求变动不频繁
自动化测试脚本变化的频率决定了自动化测试的维护成本。如果需求变动过于频繁,那么测试人员就需要根据变动的需求来不断地更新自动化测试用例,从而适应新的功能。而脚本的维护本身就是一个开发代码的过程,需要扩展、修改、调试,有时还需要对框架做出调整。如果所花费的维护成本高于利用其节省的测试成本,那么自动化测试就失去了价值与意义。
2.项目周期较长
由于自动化测试需求的确定框架的设计、脚本的开发与调试都需要一定的时间,而这个过程本身就是一个软件的开发过程,如果项目周期比较紧张,没有足够的时间去支持这样一个过程的话,就不要进行自动化测试。
3.自动化脚本可以重复使用
自动化测试脚本的重复使用要从三个方面来考虑:
1.所测试的项目之间是否存在有很大的差异性(如C/S系统架构与B/S系统架构的差异)
2.所选择的测试技术和工具是否适应这种差异
3.测试人员是否有能力设计开发出适应这种差异的自动化测试框架
二.自动化测试主要解决的问题:
回归测试时,需要投入较大的人力/工时;
实现手工测试无法达成的测试任务;
加深对业务的认知,有助于下阶段迭代中发现问题;
三.测试人员想要实施自动化测试,需要具备以下能力:
熟悉被测系统,熟悉被测系统对任何测试人员来说都是最起码的要求;
至少要熟悉编程语言Java或者Python,最好有一定的编码能力,同时代码逻辑要清晰;
可以根据所掌握的代码,学习一门自动化测试的框架,如Selenium/Appium/Robot Framework/TestNG等;
四.自动化用例一般在哪个阶段完成?
一般落后于功能的手工测试,可以在手工用例执行完成或功能上线后,再去补充自动化的用例。
自动化不是跟着新需求走,而是测变化的东西对不变东西的影响,一定不要做为了自动化而自动化的工作。
五.自动化测试分类?
UI自动化测试。价值最小,但是它最接近用户真实场景,也容易发现bug,但它的实现成本最高,太容易受外部环境影响脚本成功率。适当的UI自动化测试是有必要的,但是没有必要投入太多;
接口自动化测试。价值居中,覆盖大多数主要的接口是比较合适的。测试人员需要熟悉接口逻辑关系,否则接口测试代码很容易遗漏bug;
单元测试。价值最大,但是对测试人员要求比较高,一般由开发人员完成。
通常来说,UI自动化测试,覆盖少量主流程即可,接口自动化测试,可以考虑覆盖100%的流程;
六.在需求变化频繁的情况下,如果想要实施自动化测试:
折中的做法就是先对系统中相对稳定的模块与功能进行自动化测试,变动较大的地方进行手工测试。作为测试人员,我们应该明确:哪些需求发生了变化,这些需求变化后,对测试工作会产生哪些影响。包括会不会影响测试用例,如果影响,会对哪些用例产生影响。当发生较大改动时,还要明确是不是影响到了测试计划?明确这些变化,会对测试的工作进度产生多大的影响。当发现自己的大部分用例都受到影响,需要修改时,应该第一时间向上级反映情况。关于如何确定哪些需求发生了变化,最好的方式是通过配置管理进行需求跟踪。公司的测试任务分配,一般都是按照模块来分的。我们只需要自己维护测试线的需求跟踪,当建立了自己的需求跟踪矩阵以后,就可以快速定位变更部分,通过配置管理,所以可以及时变更你的用例,甚至是计划。当发现受变更影响的部分非常多时,应该及时通知上级,让他们了解情况,并做出决策。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!