游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5171|回复: 0

[分享] 质量是产品的生命!对产品开发和测试的思考

[复制链接]

8360

主题

9283

帖子

2万

积分

论坛元老

Rank: 8Rank: 8

积分
29945
发表于 2017-5-11 16:19:42 | 显示全部楼层 |阅读模式
  文/卫亮

  《僵尸榨汁机》产品是基于 Zombie Catchers上的二次开发,整个项目开发周期在4个月左右,从2015年10月到2016年1月,团队成员7人。

  对于一款休闲游戏的修改,这个人员配置和周期应该是不差了,但是整个开发过程是困难重重。首先公司当时的业务重心不在这个项目上,各方面资源投入有限;其次主程因为个人原因,在项目刚开始开发阶段就离开了公司,新来的小朋友完全不在状态;另外之前完成的一个项目顺风顺水,所以个人对于这个项目有些轻敌。

  因此项目开始阶段,开发进度非常缓慢,让人一筹莫展,每天都感到很焦虑。后来在10月中的时候,进行了一次项目团队重组,补充了精干人力,总算有了明显的起色。但是为了补上之前拉下的进度,每天都加班,有很长一段时间都是工作到11点12点,甚至更晚。

  从这个项目上得到的血和泪的教训,不得不让我去好好整理思路,重新思考产品开发过程中的关键因素。很多问题可能会具有普遍性,事后诸葛亮般的提了很多应对措施和建议,希望以后能够少趟一些这样的坑。

image001.jpg

  产品主要里程碑和修改内容

QQ截图20170511162337.jpg


  修改内容:


  游戏原先的核心玩法、美术、音乐音效已经非常不错,所以修改内容集中在提高留存、增加付费、本地化这3块。

  对于僵尸战斗:增加沼泽地图BOSS和BOSS飞碟,目的是增加游戏的玩法,避免玩法过于单一,给玩家带来疲劳感,提高留存;增加了HP,调整僵尸攻击力,调整了道具和服装效果,从而给付费增加了空间。这块修改从玩家反馈来看,是非常成功的。

  为了增加长线留存,增加了僵尸养成系统、僵尸工厂系统,玩家可以养成自己的僵尸,升级发展僵尸工厂;对应的增加了召唤僵尸功能,作为一个大的付费点。但是从实际效果来看,这块并不成功,后续的连载中会进行针对性分析。

  本地化,主要是语言和各类SDK的替换,比如广告SDK,微信代替Facebook等。(版号规定之后,所有图片字都需要替换,这个简直没法活了……)

  项目开发,总计代码近5万行;开发人均生产效率为200行/日;发现有效bug总计392个;每千行代码发现bug数为8个。开发效率还不错,但是bug偏多,这和团队重组后,没有太多时间研读代码有直接关系。


  项目过程中主要问题和风险

  01 项目初期预估

  遇到问题:

  • 项目初期,由于没有专职的人全心全意在项目上,对项目难度和工作量,缺乏有效的评估,导致整个项目初始计划的过于乐观;
  • 结果在后续项目实施中,进度严重落后于计划,非常被动,不得不简化和删减了很多内容;
  • 实现新功能的技术方案,拖到项目上线前期,发现并不可行,只能匆忙调整技术方案,并延期上线。

  应对措施:

  • 项目立项前或者实际执行前,应该有技术专家,对于项目难度和工作量做出合理估计;
  • 对于难度较高的功能,尽早进行方案的试验,验证方案是否可行;
  • 把大功能拆成低耦合的小功能点,降低实现上的风险;
  • 对于需要的资源,要竭力去争取。


  02 外包质量监控

  遇到问题:

  • 原主程离职后兼职做外包,导致交付的质量和时间点都难以控制。


  应对措施:

  • 尽量使用全职员工,外包需要定期检查交付物和质量;
  • 一旦发生问题,需要提前考虑备份方案;
  • 人员稳定对于小项目至关重要。


  03 产品缺乏试商用

  遇到问题:

  • 为了赶苹果推荐位,内部测试后就直接上线,导致大量使用问题。


  应对措施:

  • 加强内部测试人力和周期,尽量动员所有公司员工进行测试;
  • 选择一个小的区域,如港澳台地区,进行试商用(Soft Launch);
  • 也可以使用邀请码方式或者TestFlight方式进行封闭测试;
  • 确保在正式上线前,有足够的用户进行了较长时间的使用,数据都已调优。


  04 第三方SDK更新

  遇到问题:

  • 友商广告SDK更新后,莫名出现无广告卡死、广告无法关闭的问题,导致用户的很多差评。


  应对措施:

  • 不要急着更新第三方的SDK,需要对方有成功案例,并稳定运行一个月以上再进行更新;
  • 国内SDK质量参差不齐,尽量选择大厂或者海外厂商的SDK。


  05 单机版的破解

  遇到问题:

  • 上线初期版本是单机版,破解和修改时间的问题在iOS也较多,远远超过我们的想象;
  • 存档没有联网保存,可能引起玩家存档丢失,从而导致不少差评。


  应对措施:

  • 弱联网功能是单机游戏的必须要求,不管iOS还是安卓。本地加密,长期来看,还是有被破解的风险;
  • 弱联网功能应当尽早实现,避免在产品运营中进行联网改造。因为网络、手机、操作系统各方面原因,非常容易出问题;
  • 需要开发一个相对通用的后台,甚至自己的SDK,为后续游戏做好准备。(功能需求不高的话,可以考虑BaaS平台)


  如何提高测试的质量?

  01 墨菲定律

  • 任何事都没有表面看起来那么简单;
  • 所有的事都会比你预计的时间长;
  • 会出错的事总会出错;
  • 如果你担心某种情况发生,那么它就更有可能发生。
  • 那么对于一个软件: 任何可能出bug的地方都会出bug! 这不是在开玩笑,以我十多年软件行业的经验,这绝对是一个真理。


  我们来看一下《僵尸榨汁机》初期的一些问题:

image002.gif
僵尸项目初期的问题

  02 测试质量的提高

  质量意识:

  • 质量是所有人的责任,不只是测试或者开发的责任,要加强对工作完成(Definition of Done)的共同理解;
  • 任何代码修改,哪怕是修改已有bug,哪怕只改了1行代码,都可能引起新bug;
  • 任何交付前,都必须经过完整测试,哪怕时间再紧;


  测试执行:

  • 测试工作需要尽早开始准备,甚至可以和开发并行;
  • 考虑不同的条件组合,尽量提高测试覆盖度;
  • 重要的测试用例,可以进行多次测试,便于发现偶发性问题;
  • 有效利用网上的工具,提高测试覆盖度,增强软件兼容性,例如:云测Testin,腾讯WeTest等;
  • 定义好回归测试(Regression Test),及早发现重大问题;
  • 开发有助于进行测试的功能或者小工具,提高测试效率。


  测试管理:

  • 将测试工作分为不同级别,例如单元测试、集成测试等,合理分配好测试工作;
  • 使用工具进行bug跟踪和管理,责任明确到人,任何修改都必须进入系统进行跟踪,例如:禅道,JIRA等;
  • 联合开发对于测试中的重大问题进行分析,使用“5 Why” 方法,寻找根本原因,帮助提高开发的质量;
  • 对于上线后的重大问题进行分析,使用“5 Why” 方法,寻找根本原因,提高测试质量,持续改进。


  人员配置:

  • 很多中小团队,都会忽视对测试人员的配置,觉得随便找人玩一玩就可以了,结果导致很多问题都无法有效测试到;
  • 测试人员必须专职,足够耐心和细致,非常熟悉游戏的各个细节;
  • 自动化测试环境目前比较缺乏,如果需要实现敏捷开发,提高交付效率,增加测试人员势在必行;


  看一下《梦幻西游手游》团队构成,23%的人是QA!

image003.png
梦幻西游团队构成

  03 测试驱动(Test Driven)

  • 尽早得到市场和玩家的反馈,从而指导游戏的设计和开发;
  • 持续跟踪游戏数据指标,结合版本内容进行数据分析,总结规律;
  • 运用A/B测试和灰度发布,进行小规模的用户测试和对比;
  • 策划和设计,要考虑功能是否好实现、是否好测试,好的质量是设计出来的;
  • 建立持续集成和自动化测试环境,进行每日构建(Daily build)。


  写在最后

  质量是产品的生命,需要通过开发和测试来保证。产品的质量是用户体验的必备要求,试问经常莫名闪退的游戏,你还会玩吗?

  另外一点,工作中最重要的是考虑如何提高效率,而不是一味提高劳动强度(加班)。在工作过程中,要不断去学习和总结,提高自身的能力,并且掌握合理的方法,才能事半功倍,做出更高质量的产品!


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-17 23:24

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表