微軟過橋問題與測試人員素養

發表于:2009-06-02來源:作者:點擊數: 標簽:微軟素養
微軟 面試 題過橋問題在IT業內幾乎已變成一個眾所周知的問題,問題如下: 4個人在晚上過一座小橋,過橋時必須要用到手電筒,只有一枚手電筒,每次最多只可以有兩人通過(人多了橋支撐不住就塌了), 4個人的過橋速度分別為1分鐘、2分鐘、5分鐘、10分鐘,試問
 微軟面試題過橋問題在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章的測試用例設計方法后再來重新分析這個問題,也許你會驚喜地發現你已經有能力發現很多新的問題了。
        當然初學者也許會覺得有些問題好像是在鉆牛角尖,但是作為測試人員來講,要的就是這種鉆牛角尖的精神。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97