关于要不要加测试接口的讨论

作者:半瓶墨水   链接:http://www.2maomao.com/blog/why-we-need-test-hook/

上周跟一个资深老员工讨论,很惊讶他的论调的同时,听到了一段精彩的讨论。

事情是这样的,我在给自己的代码写集成测试的时候,需要检查系统的一个内部状态,虽然可以通过其他方式,但是这样做会影响到系统本身,可能会让测试结果表现得不稳定。这个模块是资深老员工A负责的,所以我跟他说加一个接口以便测试。

老A强烈反对,说我绝不为了方便测试写代码(奇怪吧,我也奇怪,居然还有许多人这样想的)。

没办法,找来了组里Architect L来调停,下面是对话:

L:我们需要加这个接口。
A:不需要,我绝不为了方便测试写代码。我只关注功能。
L:需要。否则测试会三天两头出错,不稳定,跑一次没过,跑一次过了。。。到时候出了问题你去看。
A:测试失败大家都看,这是整个组的责任。
L:上个项目测试失败的时候你去看过几次?
A:。。。
L:我们需要加这个接口。
A:我不能为了方便测试写代码。比如作为一个医生,我不能对病人说,需要把你的心脏拿出来单独测试一下一秒钟跳一次会怎么样,然后拿出肝脏看看造血功能。。。

。。。众人狂笑,L跟着笑完这么说。。。

L:但是我们不造人,如果我们造人,我们或许真的把心脏单独测试一下,把肝脏单独测试一下。
L:比如说我们现在生产汽车,我们不能总把所有的零件兑到一起直接上路测试,要单独测试螺丝,轮胎,引擎。。。然后才是上路测试,这样一旦出了问题才好查。
A:。。。

。。。然后大家开始讨论怎么做。。。

这种讨论,闲下来谁都能想清楚,但是我看L就简单仰头思考了一秒,就说的这么清楚,很是佩服。当然如果用机器人做例子就更好了。

L是我最佩服的Architect,没有之一。几乎每次遇到百思不得其解的问题,到他那儿玩儿一样就解决了。
更多的时候,你去找他,聊完之后,豁然开朗,但是之前思考了一天干了半天的活要重新来过,所以有些同事现在都有点害怕跟他聊自己的工作细节。这几个月我有闲暇,几乎天天跟他聊,项目,设计,软件行业,软件公司,甚至还扯到国家人口问题,在每一个主题上,他的思维都很逻辑化,很快。活了三十多岁了,第一次觉得自己的脑子明显不够用。

5 条评论 发表在“关于要不要加测试接口的讨论”上

  1. 大花猫说道:

    这个Architect思路清晰,思维敏捷,多聊聊是件好事

  2. littlewater说道:

    这样的人总是存在的,往往很多问题自己看起来貌似很复杂,到这些人的手里很容易解决的。有相似经历=w=+~

  3. Knight说道:

    好久没来,发现你们全家都去美国了。呵呵。请问有L的博客么?我也需要向这样的人学习呢!多谢

  4. 半瓶墨水说道:

    @Knight 没有,他不写博客,也很少更新twitter

  5. 这个问题好复杂的说

留下回复