现在所有的公司都知道,要小步快跑,快速迭代,所以应用功能开发完成,测试完成就忙不迭的发布,抢发布时间,配合宣传时间,抢审核时间。可由于开发人员良莠不齐,上线流程不规范等等经常会出现各种各样问题,临门一脚搞得焦头烂额。
尤其对于移动客户端,发出去就覆水难收,如果淡出是服务器问题还好说,可如果是客户端有问题那就只能等下个版本发布的时候了,再此期间要面对被客户投诉,被同行鄙视的风险,尽管自己事实上已经开发的很完美了,可落实到程序上就是一个字,“烂”。不能让客户满意,不能让老板满意。
怎么做好这临门一脚呢,我来说下我的看法。
上线时为什么会出这么多问题呢?
第一, 代码问题,一般来说就是合入代码不全,随着开发和测试的不断进行,一次上线往往伴随着很多的文件修改和配置文件(项)的增多,上线时,时间紧迫加上线人员不熟悉,上线文件清单准备不全等等,会导致上线代码有遗漏,上线之后的测试往往时间比较紧,不能覆盖全面,导致此类问题的出现。
第二,测试问题,并不是说测试人员不给力,关键就出现在测试数据不够全面的问题上,很多的测试都是一些测试人员自己添加的测试数据,还有一部分是从线上扒下来的数据然后又更改的数据,这类数据 首先是 太少,不能全面覆盖生产环境的数据,还有,数据格式不一定,举个例子,十个人一百个想法,同样一个输入框不同的人输入的内容是截然不一样的。开发人员和测试人员能想到的问题必然有限。
第三,产品设计问题,产品设计时考虑不够周全,比如输入框长度的限定,比如图片尺寸的限定,比如输入格式的限定。举个例子,我们一般要求收获地址就两行三行差不多了,可我从线上发现一MM的地址有70几个汉字之多,3行装不下,关键是还真有这个地方,人家输入地址进去死活就是看不到后面的门牌号,-_-!
怎么解决此类问题呢?
加一个预发布阶段,最短一天,最优三天。
怎么预发布呢?
有条件的话准备一台服务器单独做预发布服务器,若没有可以从线上服务器组里摘一台机器下来。合入代码,让测试人员进行测试,
预发布的好处?
1 使用的是线上数据,避免数据不一致引发的问题,
2 有时间发现文件上线不全可以及时上线。
3 预发布没问题后直接从预发布机器部署代码到机群,减少手工干预
这是我对 应用上线容易出错这个问题的一些思考和实践,欢迎大家讨论。