1、为什么推动开发做自动化? 测试将自动化做起来不难,做出效果来不难,但只能做好与业务相关紧密的黑盒级自动化。
黑盒自动化虽能带来很好的效益,但它的问题也随之而来,慢,开发成本高,环境依赖大,可覆盖面有限。不能给项目带来质的改变。
开发做自动化,可以从代码上入手,从一开始就减少bug,其价值,就非常大。
但是,推动开发好做么?如何去做?接下来,就这个问题我们来讨论一下。
2、如何推动开发做自动化?
首先,要弄明白一个事情,开发是什么样的人。
1)聪明但懒惰的人。
聪明不必说,我们测试同样十分聪明,不是么?呵呵,放松一下。懒是程序员的天生本性。君不见,K.I.S.S 是他们开发的基本原则。可能有些测试兄弟没听过,没关系,我解析下,将项目做的够简单,够愚蠢。这样,他们才能懒下去。没有任何重复,任何事情不应该干两 次,这也是他们的准则。而且他们还美其名曰:“懒是人类进步的动力”,我吐槽,这群程序猿们有些意思嘛。。。
他们宁可用着老掉牙的vim也不喜欢微软的大型IDE,宁可在命令行输入天书般的命令,也不愿做一个UI点一点,宁可用Linux这复杂至极的系统,整天用着 wget,linker,curl也不愿切换鼠标。
那他才懒着用你提供的关键字驱动框架呢,一会用中文编程,一会切换到这门语言,一会切换到他的“母语”,一会切换在人家的IDE里,一会又用脚本,再写的过程出个错,错杀自己心爱的代码。谁受得鸟呢。不用了。
2)何况,他们还是不多管任何事的人。
君不知,不是他的事就不应该知道就是他们的信条,否则,便犯了软件界的大忌了。你想让他们做一些测试的事情?门都没有。
还好,他们还是聪明人,知道bug本质上都是自己的过错,知道线上的问题自己承担至少一半的责任。知道自己应该测测再提交测试人员。知道最好可以自动化测测。。。
说到这里,我有一个很久远的故事先分享下,古时候,有一个孩子,很懒很懒,懒到饭都要老妈喂到嘴边才肯吃,有一天,老妈要去婆婆家几天,于是,做了一张大饼,挂在儿子脖子,然而,儿子竟被饿死了。。
还好,我们开发人员只需要喂喂就可以了,我的方法是,做一个足够简单,方便的“大饼”,给开发 “喂” 起来。则此事可成。
那么,这个大饼应该是什么样呢?
* 足够简单,让他一张“嘴” 就可以“吃”起来,所以最好只写业务代码就成了。
* 美味,符合他的味口,所以最好可以使用他的母语进行自动化,符合K.I.S.S
* 可扩展性好,想改变下口味也是可以的
* 还要好看,实用。通知机制,失败分析,一个都不能少。
如果,有如此一张“饼”,大事可成矣。但如何去做出这张大 “饼” 呢?这需要你的高深的厨艺了。且听接下来的分解。
3、具体的做法
我有两种方法
第一种高端方法是采用深入敌方深处
* 控制开发框架,掌握开发的框架,正所谓,知之知彼,百战不怠。
* 通过某一次新产品需求,提出框架的可测试性需求,让产品经理或老板采纳。
* 开始完成我们的大饼,一步步来,让开发看到进度,一旦成型,则可以无数开发使用。
第一种难度大,我们需要成为他们的架构师才行的通。
方法二
* 参与前期需求,提出可测试性需求,并能够有效拥有开发的意识,
* 跟他们开发经理谈谈,找出内部有兴趣做这个框架的”叛将“, 谈谈。
* 让他负责做核心,你借机熟悉周边技术,比如,我们用Ruby,因为它的开发效率,我们可以学学 swing, thrift 这些 ”透明胶“,将他们的母语粘在一起,这样即拥有了高效的开发效益,又符合他的味口。
* 形成框架,让少数人用起来,改进再改进,直到”大饼“ 成型。
大饼的特点,我上面说到了,你一定要留心,缺一不可。
那能做成么?有实例吗?你肯定会如此问,我可以信心十足的回答,有的。实际上,正是段念分享的一段话,在懒惰的开发面前,如何做成 Google Map 这样的自动化测试工作的。
所以,我们团队很可能去落实了,你呢?
版权声明:本文出自 lyfi2003 的51Testing软件测试博客:http://www.51testing.com/?312752
原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。