1. 程式人生 > >百度開發測試面試經驗2015

百度開發測試面試經驗2015



百度的開發測試60%~70%是開發,30%~40%是測試;因此程式碼是重點,編碼要注意資料結構和演算法的複習。

特別推薦程式設計之美這本書,有些百度工程師喜歡從中找題目進行程式碼測試,命中率很高。

百度是有4面,最後一面HR面。前面三面是這樣的:

一面面基礎;二面根據你的崗位,會側重考查一項;三面是經理面的感覺,更看中你這個人怎麼樣,考查的會更全面。

12面可能技術更重一點,到第3面,那就是看氣場和感覺了,很可能脾氣不對味都可能被pass。

網上看到的原題有可能被問到。比如那個連結串列找環的,題目很經典。其解法也是很經典,雙指標,快指標一次2步,慢指標一次1步。然後如果出現二者相等的情況,就可以認定有環。

關於演算法部分:一定要留出一點時間,找找規律,驗證一下演算法是不是可以工作。這樣可以避免寫到一半發現不對的尷尬。

還有那個通訊模型的三次握手,四次揮手,至少50%的重現概率吧。反正翻來覆去就這麼點題庫。

根據百度百科的描述,三次握手即對每次傳送的資料量的跟蹤協商的機制。目的是使資料段的傳送和接收同步,根據所收到的資料量而確定的資料確認數及資料傳送,接收完畢後何時撤銷聯絡,並建立虛連線。

第1次:客戶端傳送syn包到伺服器,並進入SYN_SENT狀態,等待伺服器確認;

第2次:伺服器收到syn包,必須確認客戶的SYN,同時也傳送一個SYN包即,SYN+ACK,此時伺服器進入SYN_RECV狀態;

第3次:客戶端收到SYN+ACK包,向伺服器傳送ACK包,此包傳送完畢,客戶端和伺服器進入ESTABLISHED狀態,完成3次握手。

在三次握手協議中,伺服器維護一個未連線的佇列,此佇列為中條目處於第2次握手完畢狀態。

backlog是核心相應套接字排隊的最大連線個數。

四次揮手:

對於一個已建立連線,使用改進的三次握手來釋放,即使用一個帶有FIN附加標記的報文段。其步驟如下:

1. 當主機A的應用程式通知TCP資料已經發送完畢時,TCP向主機B傳送一個帶有FIN標記(finish)的的報文段。

2. 主機B收到這個FIN的報文段之後,並不立即用FIN報文段回覆主機A,而是先向主機A傳送一個確認序號ACK,同時通知自己相應的應用程式,對方要求關閉連線。(先發送ACK的目的是為了防止這段時間內,對方重傳FIN報文段。

3.主機B的應用程式告訴TCP:徹底關閉連線,TCP向主機A傳送一個FIN報文段。

4.主機A收到這個FIN報文後,向主機B傳送一個ACK表示連線徹底釋放。

作為測試工程師,還是有些測試的問題的。常見的就是設計測例:

比如一部電梯怎麼測試,一個自動售貨機怎麼測試。

按照度孃的意思,這種問題應該從這幾個方面去展開:

1.基本功能是否正常;

2.效能是否滿足要求;

3.壓力測試

4.可用性測試

5.相容性測試

6.本地化/國際化測試

7.可維護性測試

另外根據某測試網站的兄弟的面經,百度首頁怎麼測試呢?這個問題我也被問到過,但是我沒有答好這個問題。看看這兄弟咋答的:

try...catch

嘗試..然後分析

1.長度:

2.語種;

3.連結;

4.敏感詞;

5.考慮測試評價指標:

如搜尋覆蓋的網頁數目以及範圍;

結果的相關性;

結果的全面性;

結果的時效性;

搜尋響應時間;

易用性;

連結的有效性和穩定性;