百度開發測試面試經驗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.考慮測試評價指標:
如搜尋覆蓋的網頁數目以及範圍;
結果的相關性;
結果的全面性;
結果的時效性;
搜尋響應時間;
易用性;
連結的有效性和穩定性;