自从转了测试岗,感觉身边所有人都在讨论自动化,特别是接口的自动化这几年听得更多。
那是不是所有业务都适合自动化?是不是自动化程度越高效果越好呢?
下面我也针对接口自动化测试的原理和需要考虑的东西,谈谈自己的看法。
为什么要自动化测试?
1)当有太多回归测试工作要做时,请自动化你的测试工作
在接口测试时,进行了新的部署、bug修复,这时候该如何保证新bug没有被引入老功能?当然是需要测试之前的功能。
但是,每当有bug修复,或新功能添加时,都要手动测试所有功能吗?考虑到费用、资源、时间等等因素,可以发现这么测试不是高效的,需要接口自动化来提高效率。
2)模拟众多虚拟用户,来测试应用的负载容量时,请将性能测试自动化
做个场景模拟,当你正在测试一款web应用时,与此同时,这个应用可能有数千用户正在使用。
你将如何测试这样的web应用?如何使用手工方式,同时模拟这些多的用户?这是一件十分困难的手工操作,配合自动化做的话会好得多。
3)当你的GUI几乎不变,功能频繁发生变化时,请将你的测试工作自动化。
你正在测试一款代码被频繁修改的应用,虽然GUI几乎一样,但功能变动越多,需要的测试“维修”就越多。这时就需要一些自动化的功能测试内容了。
接口自动化测试有哪些风险?
在一些不同的情况下可以考虑自动化测试工作。下面是一些自动化测试的风险。如果你有计划要做自动化或者已经开始做准备了,那么可以先考虑一下这几个点。
1)团队规模
想要自动化,你需要有一些编程经验的人员。
考虑一下你的人力资源。他们有足够的自动化测试经验吗?如果没有,他们有技术能力或编程背景来轻松应对新技术吗?你打算投资建立一个好的自动化标准吗?如果你的答案是肯定的,那么考虑自动化你的工作吧。
2)接口自动化的初期投入成本
由于要雇用熟练的手动测试人员,所以手动测试的相关成本很高。但如果你因为这个考虑将接口自动化作为方案,请考虑清楚。
接口自自动化有初始投入成本,例如:自动化工具的购买,测试脚本的培训和维护。
如果你花了钱,只得到一个可以用的接口自动化测试工具和一些基本的脚本,那么自动化的用途是什么?
3)开发环境是否足够稳定
在早期的开发周期中自动化测试工作将是一个坏主意(除非它处在一个敏捷的环境)。在这种情况下,脚本的维护成本将非常高。需要保证在一个稳定的开发环境下,接口的自动化测试才能产生更大的价值。
4)是否需要100%自动化
别异想天开了,不可能做到的。不可否认一些领域如性能测试、回归测试、负载/压力测试,有机会达到接近100%的接口自动化。但用户界面、文档、安装、兼容性和恢复等领域,必须手动完成测试。
5)使用次数
每个接口自动化脚本工具都应该有足够多的使用次数,其新建成本应该绝对低于手动执行成本。然而分析每个自动化脚本套件的有效成本有点困难,简单估计大约应该使用或运行至少15到20次自动化工具,才能得到合理的回报。
总结
接口自动化测试是实现大多数测试目标和有效利用资源和时间的最佳方式。但在选择接口自动化工具之前,你应该谨慎。
将接口自动化工具交给非技术人员没有用。在购买自动化工具之前,需要明确,不太可能拥有与你的要求100%匹配的工具,你需要找出最符合你要求的工具,然后使用手动测试来克服这些测试工具的限制性,如Eolinker其他自动化测试功能都很完善,然而性能测试需要Jmeter补充。
贴一下两个工具的地址。
Eolinker:www.eolinker.com
Jmeter:jmeter.apache.org
不是100%依赖于手动或自动化,而是要使用手动测试和自动化测试的最佳组合。这是每个项目的最佳解决方案(我认为)。自动化套件不会找到所有的错误,也不能替代真正的测试人员。在许多情况下,随机测试也是必要的。