微软过桥问题与测试人员素养
相关文章链接如下:
微软面试题过桥问题在IT业内几乎已变成一个众所周知的问题,问题如下:
4个人在晚上过一座小桥,过桥时必须要用到手电筒,只有一枚手电筒,每次最多只可以有两人通过(人多了桥支撑不住就塌了), 4个人的过桥速度分别为1分钟、2分钟、5分钟、10分钟,试问最少需要多长时间4人才可以全部通过小桥?
一般人碰到这道题目也许马上就在想该如何安排这4个人的过桥顺序使得过桥时间最少,稍微聪明一些的人也许马上就想到了答案:“先让1、2过去,1回来,5、10再过去,2回来,1、2再过去”,总共需要17分钟就可以让4个人都过去。
当然如果数学知识足够好的话,可能会用图论来分析这个问题,最后发现这是一个图论的最短路径算法问题,只要根据过桥的状态建立一张有向图,然后求出最短路径就可以得到最少时间的过桥方案。(如果读者对如何用图论问题解这个问题感兴趣的话,可以看我的博客中的另外一篇讲微软过桥问题图论解法的文章)。
现在如果让一个测试人员来回答这个问题的话,是不是也象上述一样回答就可以了呢?如果能在很短时间内象上面一样回答问题,当然说明你人比较聪明,但是如果作为测试人员的话,需要的不是简单的结果,而是要全面分析问题,仅仅回答出最短时间为17分钟的答案是达不到测试人员的要求的。
作为一个测试人员,首先得对问题中的许多未知因素提出疑问,下面一些问题也许是测试人员所想知道的:
n 这4个人为什么要在晚上过这座桥,他们是在正常回家的路上还是野外探险迷路还是被人追杀?如果是被人追杀会不会有2人过去后独自逃走不回来接剩下的2人?
n 这四个人过桥的时间为什么差距这么大,最大最小时间差了10倍?进而可以提出疑问,这4个人到底是什么样的人?他们的年龄分别多大?他们是否有人是残疾人或是小孩?如果有小孩或残疾人的话,那么是不是残疾人和小孩不能同时过桥?(也就是说5和10不能同时过桥)
n 既然最多只有2人可以同时过桥,那么桥的最大承重能力是多少?是不是两个最重的人也可以同时过桥?
n 手电筒是不是好的,手电筒里的电是不是用完了,或者手电筒的电还能用多久?或者过桥的过程中手电筒会不会掉到桥下去或摔坏?
n 当时的天气是什么样的?有没有刮风下雨、打雷或下暴雪,会不会有人在过桥过程中被风刮下桥去,或者被打雷声吓得掉下桥去。或者过桥时天气变坏使得他们过桥需要的时间增加了。
n 当时的气温是多少度?如果温度低于0度的话,桥上是不是结冰了,过桥时会不会滑下去。
n 过桥的过程中对面是不是有救援人员来了,比如1、2过去后就碰到救援人员等在对岸,那么1也许可以拿救援人员的电筒过去接剩下的两个人,这样最少只要14分钟就可以过桥了。
n 过桥的过程中是否有山洪爆发或水突然涨高将桥淹没?
n 会不会在过桥过程中有野兽嚎叫等因素影响他们的过桥速度?
n 桥下面是什么?是水溪还是无水的沟谷还是很深的悬崖?人掉下去后能不能爬上来?
n 桥旁边有没有其他的捷径可以过去。
n 1分钟的人是否可以背上10分钟的人过桥?如果可以的话需要多长时间?
n 桥有多长?手电筒能照多远?是否过去的人在桥的另外一头就可以用手电筒照亮桥让未过去的人过桥?
这些问题的确定对过桥需要的最短时间都会有影响,在不同的情况下过桥所需要的最短时间是不同的。以上只是写出了一些问题,还有更多的问题读者可以自己去发掘,如果能在上面的基础上再发掘出2个以上的新问题的话,那么相信你已经具备了测试人员全面分析问题的素养了。
不过即使你不能发现新的问题,并且上面的那些问题你很多都没有想到,也没有任何关系,当学完后面第3章的测试用例设计方法后再来重新分析这个问题,也许你会惊喜地发现你已经有能力发现很多新的问题了。
当然初学者也许会觉得有些问题好像是在钻牛角尖,但是作为测试人员来讲,要的就是这种钻牛角尖的精神。
分享到:
相关推荐
火车过桥问题.pdf
包括生产者消费者问题和猴子过桥问题的源代码实现,用C#实现的,带可视化界面,并且包含一个猴子过桥问题exe的安装包生产工程。
本文给出了过桥用时最少的一种方法。并不保证采用其他方法仍然可以达到该值。可以肯定,采用其他方法所用时间不能小于采用本文方法所用时间。
在两个城市南北方向之间存在一条铁路,多列火车可以分别从两个城市的车站排队等待进入车道向对方城市行驶,该铁路在同一时间,只能允许在同一方向上行车,如果同时有相向的火车行驶将会撞车。请模拟实现两个方向行车...
这个题目是求N个人(N由自己输入)过桥的最少时间,规则是晚上过桥,只有一个火把,每次最多两个人一起过桥,每个人的过桥时间不一样(每个人过桥的时间由用户输入),两个人一起过去的时候以过桥时间最大的那个人...
四人过桥的编程实现,参考博文https://blog.csdn.net/zb872676223/article/details/80205953
行程问题-火车过桥与错车超车问题.pdf行程问题-火车过桥与错车超车问题.pdf行程问题-火车过桥与错车超车问题.pdf行程问题-火车过桥与错车超车问题.pdf行程问题-火车过桥与错车超车问题.pdf行程问题-火车过桥与错车...
这个题目是求N个人(N由自己输入)过桥的最少时间,规则是晚上过桥,只有一个火把,每次最多两个人一起过桥,每个人的过桥时间不一样(每个人过桥的时间由用户输入),两个人一起过去的时候以过桥时间最大的那个人...
火车过桥问题解说与精练归纳.pdf
过桥问题是一个数学难题,其中一组N人必须在晚上过一座桥。 天很黑,他们只有提着灯才能过桥。 只提供一盏灯,最多两个人可以同时穿过。 如果灯不在一侧,则不可能从一侧穿过。 过马路的时间是最慢的人过马路的时间...
过桥问题课设报告.doc
描述一个场景:在悬崖两边有一大堆猴子,猴子大小不一,中间有一个独木桥,每次只能单方向通过一定量的猴子,要使用一种调度算法,要使猴子序列能安全通过独木桥到达对岸!
小升初行程问题专项训练之火车过桥问题流水行船问题.doc
火车过桥问题讲义可用.pdf
火车过桥问题教案参考.pdf
火车过桥问题说课稿分享.pdf
过桥问题(含答案).doc
C++实现的数据结构的课程设计,四人过桥题目,算法实现,内含源代码,解决需要求得最短路径问题、有四个人打算过河,这个桥每次最多只能有两个人通过,他们都在桥的某一段,并且是在晚上,过桥需要一只手电筒,而...
用进程模拟车辆过桥,利用linux进程间通信知识
过桥问题(含答案)-.doc