随着智能设备的普及和移动互联网的兴起,各家互联网巨头纷纷在往移动端布局和转型,同时初创的移动互联网公司也都盯着这个市场希望分一杯羹。在这个大环境下,互联网的重心已经慢慢从Web端转向了移动端,而移动端的软件测试也变得越来越重要了。今天就说说移动测试中最重要的两个方向。

APP自动化测试完全不同于手游自动化测试
  
手机App和手游的开发技术不同,这导致了两者的自动化测试技术是截然不同的。以安卓开发举例,手机App一般使用Android SDK开发,使用Java编写。通过Android提供的服务,我们可以获取App当前窗口的视图信息,进而查找和操作按钮等控件,以完成自动化测试,如Uiautomator。这个过程是标准化的,从技术上来说没有任何难度,因此各个公司各个App自动化测试的方法都大同小异。
  
但手游的开发却不是这样。手游一般使用引擎开发,现在著名的有cocos2d和unity3d。两者都是使用引擎自带的语言进行开发,主流的分别是c++和c#,虽然在开发过程中也有按钮等控件的概念。手游测试的自动化很难实现,现在也TestBird这种专门做测试公司能深入游戏引擎来进行自动化测试。

接下来具体说说不同之处
  
玩法不同导致功能测试更复杂

随机性。游戏的场景和过程是动态并且伴有随机要素的,这体现在两点。
  
1、你重复玩一个游戏关卡,很可能两次出现敌人以及游戏过程是不同的。
2、你玩一个手游的时候不进行操作,敌人和周围的场景也在时刻发生改变。
  
这两点对自动化测试带来了极大的挑战,如果测试脚本写的不够灵活,很容易导致上一次运行成功的脚本这一次就无法运行了。我们需要在测试脚本里适当的加入探索和自适应的功能。
  
App测试就没有这个问题,大部分App的使用方式都是静态且可以重复的。因此自动化测试可以完全按照测试脚本进行编写并执行。

探索性。手游和App的第二个玩法不同在于探索性。App一般都是功能性的,好的App需要把它的功能简单明了地告诉用户。而游戏重在娱乐性,需要给玩家一定的探索要素。因此在做手游测试的时候,我们需要测试游戏的用户帮助说明是否清晰,同时后续的游玩和探索过程和前面给出的说明之间是否有合理联系,规则的指示是否有足够的提示性。

难度测试。App希望做的越简单,用户的使用成本越低越好。而手游是有难度设置的。我们在做手游功能测试的时候,会把资源和等级调到最大以方便后期功能的执行,但当所有的功能测试都做完后,我们需要把自己的资源初始化,以"回归"一个普通玩家的水平,通过普通玩家的视角来查看游戏的难度提升是否合理,资源分配是否均匀。

关卡测试。App的使用是功能性的,一个功能的重复使用总是一样的。而手游具有关卡的概念,即便是同一种玩法,关卡和关卡之间也有细微的差别,前面的关卡测试正确了,并不表示后面的关卡一定是正确的。作者曾经碰到过一个手游的Bug,当游戏进行到某个后期关卡时,游戏一定会崩溃。而导致这个Bug的原因也很简单:这个关卡的图片资源在打包客户端的时候没有加入。因此当我们玩前面的关卡时并不会触发这个Bug,但一到后面的关卡就出错了。
  
这类Bug虽然原因简单,但确实非常难测试到。因为各个关卡的玩法虽然都一致,但一个游戏的关卡数却是非常多。如果我们要遍历所有的关卡走一遍,那耗费的人力成本将是非常大的。对于这类重复性的关卡测试,建议使用自动化脚本进行遍历。

PvP测试。App的使用普遍是单人的,而手游往往有玩家对战的PvP模式,好的手游更是具有实时的PvP模式。由于两个玩家实时进行游戏合作或者对战,因此网络延迟的测试就变得非常关键了。我们在测试中需要模拟不同的网络对游戏延迟的影响,观察两个玩家的状态和数据是否一致,同时体验网络延迟对游戏手感的影响,这在传统的App测试中是完全不需要的。

移动测试中游戏和应用的不同之处相关推荐

  1. 游戏测试中容易被忽视的重点

    游戏测试实际上也是去验证一个功能是否正常运行.但是这周我因为我测试这发现的一个bug致使我开始注意到,其实游戏测试有一点很容易被忽视. 我前面也说了,游戏测试实际上就是验证功能是否正常运行,而且一般的 ...

  2. 有关游戏测试中的探索性测试

    游戏测试里面其实主要是手工测试,那谈到手工测试肯定就会说到探索性测试. 1.指南测试法:其实就是严格按照策划案对功能进行审查,这点是最基础也是最重要的,没什么太多可解释的. 2.卖点测试法:这个方法是 ...

  3. 软件测试缺陷等级划分_游戏测试中缺陷等级分类

    给大家讲游戏测试中缺陷等级分类,它的等级区分不同于应用软件系统的测试,行业不同,分类标准也不同. 视觉级缺陷:此类缺陷不会对游戏功能造成影响,但是一款好游戏不光要心灵美(技术好)也要外型美,给玩家带来 ...

  4. 有人喜欢爱情测试小游戏么

    情人节要到了,来测试下吧看看你的姓名和心目中的情人是不是附和呢?这个游戏鼠标控制,输入你的英文名称,或者拼音,快来玩爱情测试小游戏吧 地址:http://www.orzyouxi.com/8089.h ...

  5. sql 注射_只能在测试中注射吗?

    sql 注射 本文是关于测试设计和可测试性的一些想法. 我们与我的儿子讨论了一些问题,他的儿子是Java的初级开发人员,目前在匈牙利的EPAM(我工作的同一家公司,但在另一家公司工作)受雇并学习. 本 ...

  6. 只能在测试中注射吗?

    本文是关于测试设计和可测试性的一些想法. 我们与我的儿子讨论了一些问题,他的儿子是Java的初级开发人员,目前在匈牙利的EPAM(我工作的同一家公司,但在另一家子公司)工作和学习. 本文中的所有内容都 ...

  7. 能识别nvme的pe启动_【腾讯WeTest干货分享】机器学习在启动耗时测试中的应用及模型调优...

    商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处 原文链接:http://wetest.qq.com/lab/view/392.html WeTest导语 启动耗时自动化方案在关键帧识别时 ...

  8. sensei鼠标测试软件,「硬核测试:游戏鼠标精准度」赛睿SENSEI 310

    原标题:「硬核测试:游戏鼠标精准度」赛睿SENSEI 310 作为赛睿最热销游戏鼠标之一,310有SENSEI(对称)和RIVAL(右手)两个版本,均采用今天要测的TrueMove3引擎,是基于PMW ...

  9. 在测试中实施人工智能

    人工智能实施如何改进软件测试过程? 软件测试中的人工智能是自动化 QA 的自然演变.AI 测试自动化比模拟手动工作更进一步."机器"还首先决定何时以及如何运行测试. 创新不止于此. ...

最新文章

  1. 解答关于学习前端的一些问题
  2. php缩图代码是什么,php生成缩略图示例代码分享(使用gd库实现)
  3. 把Sql数据转换为业务数据的几种方法
  4. Golang 的跨平台交叉编译浅析
  5. 【踩坑记录】Tensorflow在Windows下使用
  6. 事物注解方式: @Transactional
  7. hung task日志linux,Linux Kernel Crash--hung_task_timeout_secs
  8. java 并发 异步_Java并发 CompletableFuture异步编程的实现
  9. struts2 学习01
  10. Avalon二数据填充
  11. matlab 非均匀采样,非均匀采样信号的频谱分析
  12. 微信小程序tap事件中target与currentTarget的区别
  13. php 随机经纬度,使用php,API自动获取经纬度
  14. 查看windows office是否激活
  15. 悦虎洛达1562M二代固件升级包最新V1.40更新日期2021.1.12(教程)
  16. flappy bird java源码_Java实现Flappy Bird游戏源码
  17. 一种全景视频的主观质量评价方法(译)
  18. 多态的理解(父类引用指向子类对象)
  19. 巅峰产生虚伪拥护,黄昏见证忠诚信徒
  20. Python之统计作图函数讲解(三)

热门文章

  1. 川教版计算机三年级下册教案,川教版小学三年级下册信息技术教案(全册)
  2. javaee实训报告总结_程力汽车集团隆重召开专业厂暨集团成员厂上半年经营工作总结表彰会。2、程力集团专汽公告培训会圆满结束...
  3. c# imager让图片有圆角unity_Qt编写自定义控件24-图片轮播控件
  4. 视觉SLAM总结——SVO中关键知识点总结
  5. opencv与opengl混用实现三维点云图像
  6. 【人脸表情识别】不得不读的重要论文推荐(2019-2020篇)
  7. 做shopee找代运营,如何判断一家代运营公司是否靠谱?
  8. openresty开发系列29--openresty中发起http请求
  9. 如何避免HBase写入过快引起的各种问题
  10. 背景透明的 Dialog