测试,任何一个开发者都不愿意提起的话题,但是又不得不提。测试作为软件开发的最后环节往往不被人重视,但往往就在这最后一哆嗦,前面付出的诸多心血付之东流了。在软件开发阶段完成之后经常严格的测试环节才能对外发布,测试是一个软件迈向市场的最后环节。
当进入移动互联网时代,各个行业中涌现出来的App质量良莠不齐,这是由于国内整体的技术环境导致的,不重视测试。有人会说,Google不会对自己的应用进行测试,我们也可以学习Google。但Google的工程师都是领域内顶尖的高手,你聘请的工程师呢?大部分公司出于成本考虑,会雇一些比较初级的开发人员,做出来的东西也是比较粗糙,而且还不测试,APP的质量可想而知。
当与一些创业者沟通交流的时候他们往往会有这样的想法,先发布再说,有了用户反馈在修改。就是这样的想法让好不容易有了的用户群慢慢消散,因为当你出现问题的时候用户就已经有了卸载应用的理由,为什么不将一个接近完美的产品放在用户面前呢?
在与一些移动创业者交流的过程中发现,这并不是产品与研发不想做测试,而是由于根本没有精力和成本来做测试。因为在移动互联网领域版本快速迭代,采用传统测试方式的话黄花菜都凉了。就目前的状况来看,似乎只有自动化测试者一条路可走,但传统自动化测试的模式真的能满足移动互联网创业者的需求么?
传统自动化测试不是你想测就能测
首先传统测试需要购买大量的测试设备,这对于初创型团队来讲是一笔不小的成本,这些设备的购买成本甚至要比整个团队的日常运作费用还要高。如果考虑做自动化测试,您还得雇几个懂的人来搞,更是一大块成本。所以自动化测试虽然看上去很美,但很少有公司愿意去碰它,原因也是这里边,前期需要投入的成本,是大部分公司不能接受的。
其次,传统测试对于技术和时间的要求较高,不能适应移动互联网快速版本迭代的现状。在与某大型公司的测试经理交流之后了解到,传统测试也可以实现自动化测试,但步骤比较繁琐。
实现Android测试项目自动化,需要一下几个步骤:
1. 了解产品功能。
2. 评估手动测试用例,筛选出适合自动化的用例。
3. 搭建脚本开发环境(配置Eclipse,下载测试框架,安装Android SDK,配置环境等)
4. 根据用例描述编写测试脚本
5. 调试完善脚本
6. 执行自动化测试(可能需要搭建多个设备同时执行测试的环境)
7. 脚本在应用升级迭代中不断地维护更新,并重复执行
一位就职于国内大型企业中的测试工程师介绍到,根据以往的经验,一般测试项目,可实现自动化的测试用例比例大约为30% ~ 50%。有些手动测试用例,需要进行拆分才能较好的实现自动化。类似于单元测试,UI自动化测试,最好也是一条用例只验证一个测试点,这样有利于测试脚本的编写和维护。
这还不包括后续编写脚本与调试完善脚本的事情,假设我们已经对测试用例进行拆分,一条用例只验证一个测试点。这类测试用例,对于初级自动化测试工程师来说,完成这样一条用例的脚本的编写和调试需要3~4个小时,中高级的人员平均需要1个小时左右。到了测试脚本的后期维护阶段,耗费的时间更加不可预知。
在与这位测试工程师交流过后,感觉传统的测试模式对于快速发展的移动互联网公司来说就是一个噩梦,一个耗时费力的噩梦。
创业路上 喊上父母来解决传统测试之痛
关于移动应用自动化测试解决方案在市场上已经有一些非常成熟的案例。这位不愿意透露姓名的测试工程师介绍到,目前市场上有几个较为成熟的自动化测试软件可以用来辅助测试工作。
国内目前使用比较广泛的是iTestin,也有一部分人使用百度的MTC和易测云的Radar,但是从更新频率和维护热度上来看还是稍差一些,国外的自动化测试工具以收费的居多,其实核算下来成本并不低。
iTestin是国内Testin云测公司推出了一款免费的安卓自动化测试脚本录制工具iTestin,可以帮助你所在的项目组快速实现稳定模块的功能自动化测试,或者实现某个版本的深度兼容性测试。
iTestin还可直接捕获操作者在真实手机设备上对被测应用的操作,并直接生成可跨分辨率执行的功能测试脚本。该脚本能在应用的多个版本间复用,并随时可以提交云测平台,在1000多款真机上重复执行。测试报告包括测试脚本包涵盖的功能点的验证结果,还有测试过程中的日志、截图、和性能数据等。通过使用iTestin,你可能只需一位黑盒测试工程师,就可以在一天之内启动自动化测试。
从另外一个角度来看,iTestin可以让一个完全没有测试经验的人完成繁琐而且机械的测试工作。换句话说,你甚至可以把你的父母喊来帮你做测试工作,在你创业的路上又添加了一抹戏剧化的元素。