作为一名及其懒惰的程序员,一直对自动化测试都有非常大的兴趣,之前接触过一些自动化测试框架,但一直没有实际使用的经验。iOS也有许多自动化测试框架,上面的链接中有一些相关介绍,UIAutomation是官方提供的一种针对UI的测试框架,这正是我需要的,我得把自己从每次发布版本之前从各种手工测试中解放出来,我是真的很讨厌一遍又一遍地去点击那些我已经点过无数次的功能,而且这些功能还都是我自己开发的。
自动化测试是不是真的有用? 之前我在aqee和coolshell上面都读到过不少对自动化测试的讨论,褒贬不一。在我自己实际的搭建自动化测试的过程中,我基本上遇到了之前读到过的反方所说到的所有情况,UIAutomation已经算是一个比较简单的UI测试框架了,但我还是花了不少时间才大致搞明白该如何去使用这个玩意,到目前都还不是很熟练。当然我接触的时间不是很长,而且本身我是作为一名开发人员而非专业的测试人员,很多东西可能做得不太正宗。为了写出实际可用且满足要求的自动化测试代码,也需要花费不少时间,甚至这些自动化测试代码本身就存在某些漏洞,需要专门的人来维护。对于人数比较少的小公司来说,不能说非常值得。所以到底这样的自动化测试是否适合,得取决于很多因素,并不是一个1和0的问题。
我为什么想搭建自动化测试? 第一个原因正如我上面所说的,我是一个及其懒惰的程序员,任何需要多次重复做的事情,我都看懒得自己再去折腾一次,我喜欢把这个过程自动化,只有在出现任何问题的时候通知我。第二,手工测试很可能出错,但测试代码很少出错。我在之前的开发过程中出现过几次由于修改了某些代码,导致某些功能的使用出现问题,但是我在测试的时候没有完全覆盖到这些出问题的部分,因为我的手工测试是建立在我对代码了解的基础上来进行的,我认为某些部分可能收到影响,但在某些情况下我不可能考虑得那么完善。而对于我所在团队的情况,也没有那么多的测试人员来进行一次又一次的内部完整测试再发布版本,有时候版本的发布甚至是非常仓促的,但我希望在每次发布版本的时候至少能把主要功能完整地跑一遍,所以对我来说,UI自动化测试是一个非常好的解决办法,我可以在每次开发功能的时候,针对那些核心的主要功能,编写自动测试代码,这样每次测试就不会有明显的功能上的缺陷。
喜欢的特色:录制测试过程。 UIAutomation有一个我非常喜欢的功能,那就是你可以录制一段操作,它会自动地给你生成测试代码,这大大简化了我自己一点一点去研究这个视图结构的繁琐过程,通过录制,再稍加修改,就能产生合适的自动测试代码。
是否全面使用的迟疑:编写测试代码不是个容易的活。 在我的项目中,我只是尝试性地使用了UIAutomation的测试框架,因为我发现写出正确合理的自动化测试代码真的不是一件容易的事情,那需要花费相当多时间才能算得上有成效,但在我当时的情况下,并没有这个条件。我记得在我为我们产品的一系列主要功能编写测试代码的时候,测试代码本身就出现了很多问题,真正检测出来的被测试对象出现的问题非常有限。所以,让专业的人干专业的事是没错的,在有条件的情况下。