干货 ┃ 网易产品背后的测试秘密

 

网易出品,必属精品。这些产品的背后,测试工程师扮演了怎样的角色,做了哪些什么工作呢?...



本文节选自网易高级测试经理宾峥个人分享

适看人群:测试工程师/项目经理/计算机专业学生
宾峥 | 网易高级测试经理

2006年加入网易杭州研究院,现任网易邮件事业部质量保障部负责人、高级测试经理。负责过网易邮箱、网易邮箱大师、网易闪电邮、易信、网易严选、网易有钱、网易POPO、网易CC等产品的质量保障工作。
对于网易的产品,不论是游戏还是其他产品,大家一般都会听到一个说法:“网易出品,必属精品。”可见大家对网易产品的认同和欣赏。

说到网易出品的精品,比如LOFTER、网易公开课、网易云课堂、邮箱大师、网易云音乐、新闻客户端、网易考拉、有道词典等等。这些产品的背后,测试工程师扮演了怎样的角色,做了哪些什么工作呢?
1
产品的背后
首先,每个产品的出生都少不了孵化的过程。我们确定做一个产品,需要明确为用户做一个什么产品,愿景是什么。在这个阶段我们会不断提出想法和方向,又会排除那些不好的想法,最终确定一个令人兴奋的产品目标。

产品立项之后,各个只能团队就会行动起来。

产品经理会去挖掘用户需求,定义我们的产品需求;

交互设计师会根据需求考虑产品的细节、输出以及高保真的原型;

视觉设计师会根据不同平台的要求提供高质量的视觉素材;

开发用一行行的代码把这些需求一点点实现出来,开发是构建者;

而测试则同时是构建者和破坏者,去验证开发实现和需求一致,又要有破坏的意识,去设计各种异常的、大压力的场景,来保障产品数以万计的用户都能正常使用,就像航天飞机一样,需要设计各种极端环境来验证它的可靠性。
除此以外,我们还有用户研究、数据分析、运营推广、系统运维的团队。可见一个成功产品的背后都有一群辛勤付出的男人和女人。每一个产品要成功,过程都是艰辛的。但我们最终会从产品成功中获得成就感,测试也是如此。

刚才提到了测试团队的作用,那测试到底要做些什么工作呢?会不会像大家想的那样点点鼠标或者在手机上这里点点那里点点就够了呢?让我们来具体看一下测试团队的作用。
2
测试的秘密


在需求测试阶段,需求凭什么来确定可行性?

在网易,整个项目团度都要参与评审,提出各种意见和建议。需求确认之后,交互视觉做设计,开发做架构设计,测试则需要做测试需求的分析,做测试用例设计和性能测试场景的设计等,开发设计出可以输出的测试版本后,测试就会开始做具体的接口测试、集成测试、兼容性测试、性能测试等。

产品上线之后,我们需要跟进用户反馈,和开发运维团队一起做线上服务的监控,并及时总结整个测试过程中的问题和经验,及时改进方式,用自动化的方式提升测试效率。

不少同学选择工作的时候,都对测试工程师这个职业有很多困惑,有人认为测试都是重复的劳动,枯燥缺乏挑战性,或者不需要技术和很强的能力。甚至有很多同学在工作一段时间后会觉得迷茫、烦躁和没有发展前途。

其实我可以很有底气地说这些观点都是错误的。在互联网行业包括网易,测试工程师是一个很有意思和挑战的职业,你会接触到不同的项目,各种类型的测试,会使用不同的工具和技能。在这个行业同样可以得到强烈的满足感、成就感,也会有很好的发展前途。
3
什么是好的测试?
我们之前说测试需要有构建和破坏的思维方式,正向验证和反向试错的方式,这不是精神分裂,而是测试执行和测试设计的做事方式,是否能做好测试的基础,也是测试工程师和其他人的区别。

就像人人都可以是产品经理但不是人人都可以是好的产品经理;同样的人人都可以是测试,比如说你可以在某个产品使用中发现一个bug,但不是人人都可以是一个好的测试工程师。我常常和我的测试同事说,做到以下三点:比产品更懂开发,比开发更懂产品,在测试上专业。

首先是敏感有针对性,同样的产品有不同的实现方式,不同的实现方式就要有不同的测试策略和测试方法;

其次要对需求要有更深入的理解,考虑用户会在哪些场景和环境里遇到哪些问题时还能正常使用我们的产品;

测试思路全面指的是在测试需求分析、测试用例设计的时候不要遗漏功能测试点,要让测试的场景都能覆盖到。
4
网易如何做测试?
那么我们在网易的产品测试过程中,会是怎样的一种工作体验呢?

我们产品发布前,所有成员会花一到两个小时左右来使用产品的功能。有两个目的,一个当然是在发布前将遗漏的bug解决,另一个目的就是增强成员对产品的了解、增强团队的凝聚力,这是常规测试流程之外的一种新的测试手段。

除此之外我们还会使用众测的方式,来发动更多项目外的同事来进行测试,好比众筹,使用大家的力量来进行试用这个待发布的产品。之前是局限于整个团队,而众测就可以将测试人群扩展到整个公司,让外部人员一起参与,我们还会给发现bug的同时发放奖金,发现越多奖金越高。

对于兼容性测试,我们还有专门的团队来提供移动端app通用兼容性测试服务。这个团队购置了很多ios和安卓的设备,通过自动化和人工测试相结合的方式,提供移动app的安装、启动、更新以及特定产品业务的兼容性、稳定性测试,还包括移动端h5页面的兼容性测试,可以帮助产品测试团队覆盖更多移动端设备,减少兼容性测试的人力投入。

除了上面提到的测试流程、服务的完善外,我们在产品测试中还会根据各个产品的特性和需要来使用和开发各种工具来提高效率,将我们从人工测试中解放出来,然后可以用这些节省出来的时间做更多有意义的事。

我们会进行大量的接口自动化测试,来测试后端提供的api接口和http接口的功能,这个就是分层测试理念的实践。

我们还会使用持续集成测试工具,比如说这个Jenkins,来把代码提交、编译、打包、测试机部署一直到自动化借口测试、ui自动化测试,来实现自动构建、自动部署、快速上线以及快速验证。在这个构成中,我们节省的就不只是测试团队的时间了,还有开发团队的时间,这也是敏捷开发的一种尝试和实践。
End
如果感觉这篇文章不错,那就把它分享到朋友圈吧,您的转发是小编持续努力的动力~
▼关注IT荐书,获得新鲜资讯,更多活动等你参加


    关注 IT荐书


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册