WOT讲师钱承军:大数据给百度测试团队发展带来新探索目前测试团队的构成是怎样的,对新入职者有哪些指导和建议?带着这些问题,记者采访了百度测试经理钱承军先生,他将为大家深入分析这些问题。 钱成君拥有多年互联网研发、测试、管理经验,在基础设施和大数据方面具有丰富的实战经验。曾在大众点评研发部工作,参与大众点评团队的初始设计。目前负责百度大数据测试部的技术管理,下属团队约100人。 大数据给百度的测试团队带来了哪些挑战 大数据相关的测试其实已经超越了传统的测试范畴。根据IEEE对软件测试的定义,软件测试是验证(verify)软件系统是否符合需求(requirementandspecification)的定义,较偏向于传统的工程软件项目。一种常见的方法是构建系统的输入和预期输出,以确保系统满足预期。 但是,从大数据的角度来看,整个检测理念和检测方式都发生了很大的变化。我们以百度搜索为例。首先,测试输入不能面面俱到,可以输入的内容是千变万化的。按照传统的测试方法论,覆盖工程实现的逻辑分支远不能保证结果的质量。其次,输出内容如何才算正确?没有定论,结果极其糟糕,结果完全无关紧要。用户可以直接说返回不好,但可能有更好的结果更接近搜索没有返回!这个系统的输出一直在“理想好”和“极差”之间波动,传统的测试方法论未必能给出答案。这是一个典型的“非测试oracle”问题,很常见,比如电商的结果推荐。对于大数据场景,除了传统的、工程的、代码的准确性验证,还需要“验证”产品本身的质量。这些都是我们要探索的内容。 测试团队遇到的最大问题 从工程实现的角度来说,相对于一个小网站或者移动应用来说,大数据或者底层基础设施的开发难度更大。百度涉及的数据规模超出了一般开源系统所能承载的范围。比如需要跨机房,需要计算密集型和存储密集型设备混合。在自己修改一些复杂的基础设施时,比如改造Hadoop,或者干脆自己开发一个大型的分布式文件系统,由于技术的复杂性,对质量保证的要求非常高。 从数据测试方法论的角度,对于大数据挖掘的算法和结果,判断这些输出是否满足用户需求,帮助业务持续提升数据质量,是一个不断探索的课题。百度搜索需要每隔一段时间更新其策略和搜索内容。也许某个版本对用户的搜索体验有不好的影响。质量团队需要评估、预测和防御这些问题的发生。时间捕捉、定位、止损。这是一项非常困难的工作。 从团队建设的角度来说,因为整个行业技术含量低的工作比较多,所以很难培养和吸引更多的优秀人才加入我们来做这些复杂的工作。团队对人员的要求不断提高,但从业人员的素质却没有及时跟上,这将导致团队很难形成。 测试组织的具体结构介绍 这里介绍几种常见的测试组织结构。从汇报关系来看,常见的测试团队有两类。一是测试团队属于产品线和具体业务,是业务的一部分;二是整个企业共享质量团队,属于企业的基础技术服务。在百度,测试团队的组织架构属于后者。这是一个近2000人的大部门,直接向技术主管汇报。子团队与业务一一对应,但没有汇报关系。值得一提的是,有各种众所周知的例外。比如在Google模式中,测试资源是流动的,测试人员有一定的专业能力,可以是使用一定的工具,也可以是提高可测性的经验。这些流动的资源进入产品线,为产品线带来相应的能力。离开后,相应的能力将留在产品线。 在测试团队中,细分工作再次流行起来,在一些传统的大企业中依然存在。有的专用于流程实现,有的专用于工具平台,有的专用于发布,有的专用于管理。对于外包,有专职的测试设计和测试执行。每个人所做的工作只是整个研发闭环的一小部分。这种模式不能很好地适应瞬息万变的互联网团队,逐渐演变成百度现在的做法。百度的测试工程师更全栈、更全面。每个人都需要了解业务,需要能够从代码中定位问题。您还需要能够开发工具。这种方式对工程师的能力要求很高,对个人发展很有好处,但对公司来说,需要付出额外的培训费用。至今,百度依然坚守高技术标准,是一家坚持技术信仰的公司。 百度现在的测试团队鼓励测试人员做一些横向移动,期望他们有更全面的视野。过去,很多测试人员在经验丰富后转为产品经理或研发,因为培养路径更好。克服了种种缺点,是一个很受欢迎的复合型人才。 百度测试团队组成 百度的测试团队各不相同。我的团队比较特殊,因为需要涉及到基础设施和大数据,行业内相应的人力资源不多。团队成员主要来自几方面:第一类是社会招聘,工作时间不太长,有持续培训潜力。比如,我们从一线公司招聘了从事分布式系统开发的工程师。第二类是高级架构师,匹配人才很少。第三种也是最大的团队构成,吸引了优秀的毕业生,给了更多的继续锻炼的空间。有的学校的实验室有非常适合的背景,比如大数据方向从事数据质量研究的,比如分布式系统中的调度算法,比如有机器学习、挖掘背景的。团队主要构成为一线高校研究生。我们的团队一直在不断寻找优秀的人才加入我们。 研发、测试、运维是一个不可分割的整体 从研发到测试再到运维,很难分清谁的工作,很多已经走向融合。现在很流行的一个名词就是全栈工程师,从开发到测试再到运维的人。通常,测试团队会在这些场景下与运维紧密配合: 1.项目发布后的风险和预案,一般由开发、测试、运维三方共同演练。许多系统不会自动恢复的容错场景需要人工干预。这时候就需要测试人员评估这些风险,模拟场景,方便演练。此类演练可以在线进行,也可以在启动前会议期间进行,也可以在离线环境中进行。 2.一个非常流行的概念叫做“发布后测试”。现在越来越多的场景过于复杂或者资源消耗过大,尤其是大数据,动辄上千台机器,很难保证线上环境和生产环境的一致性。所以建议上线后,在运维的监督和照顾下,给线路注入一些异常,注入一些抖动,增加一个检查系统在极端环境下性能的压力。这是运维和测试更好的结合。观点。 给新人的成长忠告 不管一个真正优秀的工程师先进入哪个行业,哪个角色,不管你是从事测试、研发还是运维,你真正关注的应该是这个角色以外的东西,重点培养,培养在某一领域的厚积薄发。这种积累,别人很难通过看几篇文章,做一个小app这么容易获得的。这里的重点是找到一个可以持续积累的领域。我们看到,很多年轻人由于行业的浮躁,不愿深耕积累,频繁跳槽以获得现金回报的增长。其实,归根结底,人才的价值在于它的稀缺性和不可替代性。需要找到这样一个可以持续积累的领域。深化之后,别人几年内很难超越你。 11月份的深圳WOT峰会预计会分享哪些内容 在WOT2015峰会上,钱老师将介绍三方面的内容。首先是大数据带来的测试挑战和目前我们探索的一些解决方案。二是大数据能力给质保乃至研发过程带来哪些新的可能。最后,相信也是更多人感兴趣的部分,我会说说百度大数据在做什么,未来会怎么走。敬请关注!由主办方主办的高端技术峰会【WOT2015“互联网+”时代大数据技术峰会】将于11月28-29日在深圳盛大开幕。42位行业重量级嘉宾齐聚一堂,剖析大数据技术点睛之笔应用。财富大放送,主办方将邀请更多讲师来到“WOT讲师访谈室”,深度剖析技术干货。WOT2015更多采访如何把谷歌神秘的数据中心管理系统搬回家WOT讲师杨德胜:程序员创业需要什么WOT讲师刘鹏:大数据应该指导机器而不是人的决策
