
作为全球最大的中文搜索引擎,百度搜索框每天响应着超过50亿次的检索请求,这些请求来自世界各地数以亿计的网民,不仅类型包罗万象,而且时刻折射出人们对热点的关注。因此“让人们最平等便捷地获取信息,找到所求”,不仅是百度公司的使命,也是对搜索架构极具挑战的技术考验。
每天数十亿次的检索请求即意味着每秒都有大量的并发数据汹涌而来。与此同时,为改善搜索体验,满足更多需求的搜索研发工作也在刻不容缓地进行中,甚至一天内就有数十项改进上线。这对搜索引擎系统的持续响应速度、服务稳定性、效果相关性都提出了巨大挑战。百度质量部高级工程师,线下百度和大搜索效果监控负责人杨进在主讲第二十八期百度技术沙龙时表示:搜索系统隐患爆发的可能性与规模的平方成正比,用户规模的量级、并发数,对于稳定性差、扩展性不强的平台来说,无异于灾难。
百度质量部高级工程师杨进分享系统架构测试心得测试实践出真知
据杨进在百度技术沙龙演讲中介绍,搜索引擎系统架构测试的核心目标是保证百度搜索产品的服务稳定性,准确性,效果相关性。线下百度作为一个基础的系统测试平台,对外提供预上线、故障预演、数据测试等系统层面的服务。而搜索效果监控系统则专注于快速发现产品严重影响用户体验的效果问题,它和线下百度相辅相成,共同提升百度搜索服务的质量。演讲中杨进不仅回顾了搜索引擎发展历程中遇到的测试挑战,而且分享了他对不同测试方法的实践体会:
“探索性测试”让测试工作变得轻松和富有创造力,它能让你无需复杂的测试准备,就直接进入最核心的测试工作,并且不拘泥用什么方法、什么工具,也不用考虑能否被自动化,只需要关注能否快速的找到bug就行。当然好的探索性测试实际上对工程师的逻辑分析能力和产品整体理解要求很高,这种依赖于个人能力的测试手段,执行的效果也比较难以控制。我们之前尝试过多人组队测试,这种方式适用于多人进行的大型项目,大家一起进行探索性测试,bug系统即时显示你在这个版本发现了多少个bug,并且排名。我们每天乐于寻找更多的bug,并且分享找bug的技巧,在这个过程中我们都得到了很多的成就感,并且对产品的理解和测试技巧也大幅提升。现在回想起来也还是一个很有意思的事情。
“敏捷测试”就是让项目相关的角色全体直接承担项目最终目标,由于都是为最终目标服务,因而角色也变得模糊,并且每个人的工作也需要考虑是否对当前最急迫的事情,这种集中所有角色力量为共同目标前进的开发方式,减少了大家沟通和项目迭代成本,最终很容易得到项目整体效率和质量的提升。由于各角色对目标理解一致,对产品理解都很深入,因而可以更多的把bug消灭在开发的早期,比如单元测试、新功能测试阶段,使得后期的集成和系统测试问题变得更少,尤其是产品最终的效果问题也会减少。
杨进认为,一个好的开放性测试框架,需要依托于具体测试资源,以满足具体某种测试需求而诞生。这种测试框架因为和用户的某些需求绑定因而生存能力很强,并且也能很好的一站式完成用户的需求。他提到百度内部有一个测试工具分享平台,汇聚了百度自行开发的许多工具和框架,未来也有计划将这些经过实战检验的资源开放、开源。
创新提升质量保障
“bug不仅来自程序和数据,也来自每个可能对线上造成影响的环节”,这番话在技术沙龙现场引发了二百多位工程师的共鸣。对于杨进所处的百度质量部来说,每天可能都会碰到棘手的问题,一旦测试环境不能将BUG屏蔽或消除掉,带来的后果是不可预料的,甚至会引发搜索体验的损伤和用户的流失。
“我们的核心目标就是全方位地保障产品质量,并创新加速公司整体产品研发效率”
,百度质量部为此特地构建了“事故防护网”。防护网是一个立体体系,既包括多层次的预上线、效果监控等的正向防护,也包括故障植入预演等逆向防护。这张“防护网”保障了百度搜索和其他诸多产品的稳定性,产品质量在2012年有了进一步提升。
这样的技术创新在百度质量部还有许多。仅2012年上半年,百度质量部在搜索测试技术方面申请的专利就多达26项。例如性能测试的模拟技术已实现单机模拟上千台前、后端服务器的效果,这样不仅保障了大规模测试的质量,而且也通过提升效率节省了测试资源。
从“测试自动化与TDD实战”到“大型网站的性能测试实践及结果分析”,再到“搜索引擎系统架构测试”,百度质量部通过百度技术沙龙、开发者大会等活动持续不断地分享实践经验,启发测试工程师之间的技术交流。本期活动之后就有参会工程师通过' 微博记录心得,“测试工作也可变得有独创性,具备想象力!”
每期百度技术沙龙讲师都会在讨论环节成为众人瞩目的“焦点”经过两年多的积累,百度技术沙龙已成为' 互联网工程师、开发者群体首屈一指的技术交流平台。每月一期,在技术全开放的氛围下,分享热门技术趋势和话题。活动主页:http://www.infoq.com/cn/zones/baidu-salon/
客服热线:











