【连载3】对产品开发和测试的思考

< 上一篇 | 连载目录 | 下一篇 >
我和《僵尸榨汁机》的故事,系列连载(3)

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

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

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

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


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

时间点 主要里程碑
2015年8月 合同签署,收到代码交付
2015年10月 人员变化,团队重组
2015年11月 调整项目计划,重新确定上线日期
2016年1月12日 iOS上线
2016年1月15日 获得App Store首页推荐

修改内容:

游戏原先的核心玩法、美术、音乐音效已经非常不错,所以修改内容集中在提高留存、增加付费、本地化这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!
这不是在开玩笑,以我十多年软件行业的经验,这绝对是一个真理。
我们来看一下《僵尸榨汁机》初期的一些问题:

僵尸项目初期的问题

02 测试质量的提高

质量意识:

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

测试执行:

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

测试管理:

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

人员配置:

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

03 测试驱动(Test Driven)

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

写在最后

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

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


参考资料

[1] 这样的工作流程让网易在14个月修复2000个bug
[2] 在游戏产品中使用敏捷方法

2015年底的一张照片,每天都是这么过来的...
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,856评论 25 707
  • 文章来自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鹏阅读 9,189评论 2 126
  • 先说项目开发过程中团队人员的分工协作。 一 人员安排 毕业至今的大部分项目都是独立完成,虽然也有和其他同事协作的时...
    SnowflakeCloud阅读 10,756评论 3 59
  • 今天我在网易公开课上听了一本书,是吴晓波老师写的《腾讯传》。这本书主要讲了腾讯是如何扛过一次次冲击,发展到如今这个...
    终身学习的老道阅读 356评论 0 1
  • 两岸青山夹江过, 一枝柳笛满江春, 柳笛一声漫天春。 晨,天空上满是铅青色的云,间或镶嵌着白色,金色,绯红的带子,...
    三河散人阅读 250评论 0 1