最近在论坛上看到一位朋友问到这个问题,我觉得很经典,一般二面(leader级别)都相对喜欢问这种问题,我曾经既在面试中被问过这个问题,也在后来做面试官的时候问过别人这个问题,所以正好给大家分析下这个问题、答案,还有实际的一些落地经验。

作为应聘者,在回答这个问题之前,我们要明确一点:这个问题属于开放性问题,也就是说并没有所谓的标准答案

当面试官问到你一个开放性的问题,一般是希望你能够积极主动地和他讨论问题(这样的面试官以我的经验判断,一定是个好面试官),而不是给出一箩筐标准答案,在我们不知道上下文的情况下贸然回答这类问题,答案很容易偏主观主义

那么作为应聘者,应该怎么友好地推进整个面试过程呢?

回答应该包含三个核心点:

  • 沟通上下文:问题清晰化,范围具体化

  • 就事论事,制定计划:将自己的项目经历落地到面试过程中,有理有据。

  • 过程管理,持续反馈:从0.99到1的不断迭代优化

首先说第一点,沟通上下文。沟通上下文就是一个了解大背景的过程,而了解大背景就是把面试官的问题明确化的过程。

那么,如何去了解背景?

一个主动积极的人永不不会没饭吃。(在百度时候的领导对我的一句逆耳忠言)

我们作为面试者,在回答问题之前,要主动和面试官提问:咱们公司的测试岗位的职责范围是哪些?这里我们变被动面试为主动面试,不仅能够获得更多的问题线索,并且会很大程度上得到面试官会的青睐。

一般来说,如果是家小公司,测试的职责一般界定在业务测试,包括一些自动化工作;但如果是大公司,测试的职责可能还会包括项目推进,平台建设,流程优化等等。不同地职责反馈意味着不一样的工作内容,所以从0到1要做的事情也不一样。确认了这个,你就更加方面地探知到面试官的口味,知道如何顺着面试官的话继续往下说下去(这里不是让瞎编,而是要为后面打基础,后面就可以捡面试官想听到的东西说),再一个你也知道这家公司的工作内容合不合适你(如果提前了解到不合适,也可以为后面多个offer间决策提供了依据)。

然后,在明确了要职责范围后,我们就知道这家公司测试的职责范畴了,那么接下来该怎么讲呢?

我们做计划一定是有根据性的,如果只是直接抛出一堆理论计划,就显得有点教科书化。有没有想过,项目面试官为什么要为你从0到1的工作如何开展呢?其本质就是:他想知道你到底之前有没有过从0到1的经验

说完了了解背景,接下里,我们该如何制定计划?

对于有过从0到1的项目经历的人来说,最好的答案就是把自己的经历说出来,这样都不用太多解释,面试官就会极其信服你。这位朋友问了这个问题,有可能是没有这个从0到1的经历。那这里,我给没有经历从到0到1的朋友提供一个通用工作内容的借鉴吧。一般来讲,从0到1的工作内容涉及如下两个方面:

1.了解项目、成员,现状

首先,熟悉了解项目组成员,无论是产品,开发和测试。在日常工作中,培养建立亲密战友关系,为后面的工作打下基础。

然后,熟悉项目背景,需求,开发和测试的现状,这个阶段要沟通胜于文档的方式去了解(天天看文档,获得都是被动信息,而且一般都不是重点,多和项目组的成员沟通了解,这样事半功倍)

这个阶段一般初步在两周内完成,在了解整体的情况之后,我们就可以制定一些战略方针来开展所谓的从0到1。

2. 梳理测试活动

第一步,先确认测试范围。根据前面了解的情况,把要测试的业务梳理一下,即哪些需要测试,哪些不需要测试,哪些是核心业务,哪些是边缘业务,我们根据基本的原则,就能制定出我们的测试工作范畴。(这样做的好处是,我们可以有的放矢,不会变成一个救火队员;再一个来讲,有工作范畴,对后面明确自己的KPI就很有帮助了,而且领导也能有根据性地评估你的工作量,对于后期工作量过大的情况,leader也能明显感知到你的工作压力)。

然后,确定测试流程。测试流程中包含很重要的两点:一个是提测流程,另一个是bug流程。制定提测流程的目的在于厘清测试界限,比如在提测之前,开发应该有哪些质量保证工作(比如说单测,静态扫描,本地功能冒烟)。在提测之后,测试又应该做哪些工作,比如功能测试、接口测试、集成测试和性能测试等。第二个是bug流程,比如bug优先级,bug分类,bug解决后如何通知验证,有bug是否能够上线,还有最后的测试报告等。这两个流程根据每个公司的情况不同各有差异,尽量按照自己经历过的情况来说,不要胡编乱造

最后,制定自动化工作计划。按照测试金字塔原则,我们需要和项目组的产品和开发沟通下,哪些是业务需要自动化,自动化又需要做哪些项。之所以谈这一点,是因为但凡是个互联网公司,都会最终涉及做自动化,如果你不提这个,可能会降低面试官对你的技术感官分数(但要记住:初来乍到的我们,千万不要什么都搞自动化,自动化写起来很爽,维护起来就很崩溃)。

在第二步完成之后,就是反复这个过程了。前面算是一个从0到0.99的过程,而后面就是从0.99到1的不断迭代的过程,去接近这个完美的1的过程。这个阶段有三项极为重要:

1.测试节点优化

当初的测试流程是按刚来项目组时候的情况而制定的。随着用户量的增长,整个项目处于不断变化当中,整个过程中不仅有业务的变化,技术架构的变化,也会有测试流程和测试方案的变化,我们要不断地改善整个测试过程,持续优化,最终提升我们的测试效率。

2.问题复盘

测试不是万能的,在实际过程中,总会有大大小小地问题被漏测,影响到了线上用户。对于此类问题,我们需要经常开项目复盘会,联合产品,开发,测试一起回顾和复盘问题,旨在于更好地规避此类问题,提升用户体验和产品口碑。

3.知识沉淀

在工作过程中,我们要不断地沉淀文档,包括测试计划,测试用例,测试框架,自动化方案等等我们实际遇到和做过的内容。这样做有助于不断地提升个人还有团队的战斗力,同时在为后续述职提供了材料支撑,做到足够大的影响力。

综上所述,一个项目从0到1的测试工作的开展包括了解项目背景,成员背景,测试现状。然后依据现状梳理测试范围,制定测试流程,调研测试方案,把该自动化的业务自动化,最后将整个过程不断地执行与完善,并定期项目复盘,同时总结沉淀工作内容

在此过程中重点在于:有效沟通制定好测试流程尽可能地自动化总结并输出过程,最终形成从0到1的体系