很多人在回答为什么要开展自动化测试时,立即回想到的答案是提高测试效率。
这种回答本身并没有错,但我想这只是问题的次要方面。在经过数次的自动化测试时间投入与效益比来看,
可以基本得出,基于某个场景的测试脚本,在没有变更与维护情况下,脚本执行频率大于5-7次才基本能够收回
投入成本,产生自动化效益。基于互联网的产品条件下,一个项目或系统如果包含 > =100个测试场景,事实远超这个数据的N倍,其实很难能够保证在收回自动化效益后,场景业务或数据才变更,通常变更是无法预期的或难以控制。
从技术的手段来保证:
曾经我们大胆试图在技术上创新,尝试如下技术攻关点:
1、能否通过手工用例,自动化生成脚本?
2、业务对象变更自动识别,与脚本自动化维护?
技术点1与2看起来很有挑战,很值得做,曾经为这样的Idea 也热血,与冷静思考过,并开始一步步逼近实现。
但现在可以告诉大家四个字:“得不偿失”,其实上面技术点的本质,是在客观上用技术来代替现实世界中人的主观。
对于技术1,事实上很难能够找到通用的建模方式,来描述用例生成脚本;
对于技术2, 自动化技术是永远落后开发实现技术的发展,任何新的操作对象产生,必须跟进自动化识别技术,但搞自动化一帮人不可能在office意淫明天会有什么新的对象面世。即,真正意义上的做到完全无人职守,脚本自动生成或通过对象嗅探自动维护脚本,几乎是“布尔什维克”主义, 或者可以说实现上述两种技术方法,要先诞生实验室研究或论文阶段,类似于企业或像阿里巴巴,华为这样的大的公司来说,也不会有人站出来说这样做肯定有收益。
联系我时,请说是在东莞机械网看到的,谢谢!