【闲谈】自问自答---与测试相关

前言

《编程之美》在开篇部分提到一个问题:房间里有三盏灯,屋外有三个开关,分别控制这三盏灯,只有进入房间,才能看到哪一个灯是亮的。

请问如何只进入房间一次,就能指明哪一个开关控制哪一个灯?

这本书我一年前浏览过一遍,当时就看到这个问题了,而且我记得我还发表过QQ空间说说,并且当时也查了查答案。

答案就是,因为灯泡通电会发热,所以先开一盏灯一会时间,然后关闭后再开另一盏灯,进屋,亮着的就是正在控制的开关,用手摸一下其它两盏,哪个是热的哪个就是第一个开关控制的,然后就剩下一个开关一个灯泡对应了。

可是当一年之后的我再次查看这个问题,竟然丝毫想不起答案。而且是那种直接举手投降的想不起。为此,我自己问了自己四个问题。

问题一:为什么时隔一年,再见问题我却丝毫想不起答案?

问题二:这是否意味着我曾经在这道题上花的时间完全无用?

问题三:这种“隔一段时间就完全忘掉”的情况能否有所改变?

问题四:接下来该怎么做?

 

问题一:为什么时隔一年,再见问题我却丝毫想不起答案?

回答一:一方面和记忆力有关,但是这道题的答案不是死的,不像背诵唐诗宋词那样一个字也不能错,答案只与一个名词“温度”和一个动词“摸”有关(当然不排除还有其他合理的答案)。所以不能完全责怪自己的记忆力不行。另一方面的原因就是:“思维”。比如你一年没用过螺丝刀拧螺丝,但是当时隔一年之后再把螺丝刀和螺丝给你,也照样会拧。因为脑子中有“拧”的思维。那么这道题的思维是什么呢?测试,没错,就是“软件测试”中的测试思维。还是拿这道题说,题中涉及到三个东西:屋子,灯,开关。

下面分别对这三件东西进行测试:

房子开关
能否看见屋内?(否)是否是正常的灯泡?(是)开关的位置和灯泡的位置有关系吗?(无)
能否凿墙?(否)发光强度多少?(100W)开关带线吗?带线的话能拉断吗?(不带线)
 

是否会发热?(是)

 
 长时间开着是否会爆炸?(否) 

当然,这个测试并不完善,但已经能够解决这个问题了。如果我今天之前具备测试的思维,能够问出这些问题,那么想回答出这个问题,应该不成问题。

 

问题二:这是否意味着我曾经在这道题上花的时间完全无用?

回答二:不能说完全无用,如果没有上次“浪费”时间,也不会有今天这篇文章了。那样,真的是:最大的无知就是不知道自己无知了。

 

问题三:这种“隔一段时间就完全忘掉”的情况能否有所改变?

回答三:可以有所改变,方法还是那句老话:“透过问题看本质”,不同的问题的具体解法都不相同,但它们有一些可以归类,抽象出通解的思维。

 

问题四:接下来该怎么做?

回答四:继续看书,看完后继续遗忘,若干时间后再回头看时再发现自己原来还缺少另一种思维。因为有时候第一眼并不能看到本质(也许这也是现在离婚率很高的原因吧:)。虽然第一眼不一定能看到本质,但 Better later than never ,不怕慢,就怕站!

结尾 

我这次讨论的是没有标准答案的问题,至于那种给出下句让默写上句的“八股”问题,求解只能靠记忆力。“无他,孰能生巧尔!”这一句,放之四海而皆准。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值