1. 程式人生 > >7月11號百度測試實習生面試心得

7月11號百度測試實習生面試心得

2017年7月11號有幸接到百度測試開發實習生的電話面試,雖然自己接觸了一年多的Android開發,但是對於測試開沒有系統的學習,對於此次面試,我是抱著試一試的心態,當作積累經驗。第一回面試百度這個大廠的測試崗位,自己在和麵試官小姐姐電話交流的過程中,自己表現的很糟糕,總體來說就是老毛病又犯了,交流的過程中說話結巴,很是尷尬,想說的話感覺有東西堵在嘴邊,說不出來,唉。

接下來說一說面試官小姐姐提出的問題吧(只能憑藉這記憶來回想了,請讀者見諒)。

面試官小姐姐:你先自我介紹一下吧

我回答到:“我是XX,目前大三,大二開始接觸Android開發,現在一年多了。”

氣氛頓時尷尬,接下來就是面試官小姐姐問問題了。

面試官:“說一下你弄的專案吧。”

我:“巴拉巴拉的說了一堆。”

1:

面試官:“你在的專案裡面有沒有寫日誌?”

我:“我們在程式碼裡面一般只是寫一些輸入輸出語句,如Systen.out,順便用了百度的Bugly(Bugly是騰訊開發的,這裡純屬口誤)。“

面試官:”Android app崩潰日誌的手機和上傳有沒有接觸過?“

我:”專案用沒用過。“【貌似Android裡面提供了一個LogCollection的類,有興趣的讀者可以去了解了解】

2:

面試官:”程序和執行緒的區別?“

我:”一個APP程式對應一個程序,一個程序可以有多個執行緒,執行緒實際上是程序的縮小版,之後就巴拉巴拉的說了一堆”

3:

面試官:在瀏覽器中輸入一個URL,並按下Enter鍵,簡述這中間發生的事情。“

我:”首先,URL會被放在post方法的表單中,畢竟使用get方法不安全。接著把相應的資料放在session物件裡面,隨後伺服器通過判斷此次請求,返回相應的資料給瀏覽器 。“

面試官:”不是這樣的,其實應該是URL通過DNS把域名解析成ip地址,然後通過ip地址找到相應的伺服器主機,瀏覽器和伺服器建立TCP連線,實現資料的傳輸。“

我:”你說的是這個啊,我以為你問的是類似與Servlet相關的知識。“

面試官貌似不相信我說的,叫我重複一下她剛剛說的

我:”瀏覽器中輸入URL,通過DNS域名解析把URL解析成IP地址,即192.168.0.0那種,為什麼會有DNS呢?因為類似與www.baidu.com這個域名來說,人們方便記憶,而那些192.168.0.0這些數字不容易記住,所以處於便利使用者的目的,才有的DNS域名解析。在得到IP地址之後,在物理層建立物理連線,通過路由表的路由選擇演算法選擇到合適的路徑到達伺服器,經過與TCP的3次握手協議之後,建議一個安全可靠的資料傳輸通道,進行資料傳輸,相應瀏覽器的請求,回傳資料。“

4:

面試官:”你熟悉Linux命令嗎?“

我:”Linux的一些命令我還是比較熟的。“

面試官:”說一下解壓縮的命令。“

我:”如果是.zip檔案的話,解壓縮命令為:unzip “檔名”    ,還有是.tar檔案的,我命令不記得了。

面試官:“Android adb 安裝apk的命令你知道嗎?”

我:“我用的的圖形化介面,這個不清楚。?

面試官:”adb 拷貝檔案的命令是什麼?

我:“我沒用過這個命令,不過我想應該是:copy  。”

面試官:”不對。“

我:”mv  。“

面試官:”也不是。“

面試完之後我網上百度,應該是: push

5:

面試官:”說一說你在專案中遇到的一些問題?“

我:”我在開發的時候遇到的問題是記憶體洩露問題。“

面試官:”能舉個例子嗎?“

我:”以前我們在處理圖片的時候,因為圖片沒有經過處理然後就載入到記憶體裡面,再者沒有進行記憶體回收,導致消耗記憶體特別嚴重,我們知道Android手機一般給一個APP

開闢的記憶體執行空間為200M---300M,當然,這不是固定的範圍,要看不同牌子的手機規格。”

面試官:“你們是怎麼處理的呢?“

我:”我們選擇把圖片按照一定比例,在保證圖片不失真嚴重的情況下把使用比較好的讀取圖片方法把圖片載入到記憶體中,從而展示給使用者,當然,因為我們專案比較小,用圖片的地方相對比較少,所以沒有使用LRU(最近最久未使用)的快取方法。“

面試官:”除了圖片,還有其他的嗎?可以總結一下嗎?“

我:”1:我們使用的物件,在用完之後沒有並確定之後不會使用而沒有把改物件置為NULL,導致java 虛擬機器認為此物件還有用處,並未回收此物件的記憶體空間

2:物件之間迴圈引用,例如A引用B,B引用C,C引用A,在這種情況下你單獨把一個物件置NULL是沒有用的,記憶體還是回收不了

3:我剛剛說的圖片載入也是一個

4:當你用一些陣列的時候,使用HashMap會暫用較大的記憶體,建議使用ArrayMap【當然Android還提供了一個SparseArray】

其他的我就不一一列舉了,反正就是一個核心思想:使用了記憶體記得要回收 。“

面試官:”使用記憶體要回收是對的。“

6:

面試官:“假如我們要測試微信的語音功能,改怎麼測試呢?”

我:“我之前沒有接觸過測試這一塊,不過按我的想法應該是這樣的:一個賬號在一邊點擊發語言的按鍵,傳送語音,然後另一個賬號能在另一端及時準確的獲取傳送的內容,例如,我傳送”你好“,你要準確無誤的接收到”你好“這兩個字。”

面試官:“你說的這個算一點,不過語音轉換文字這一部分沒有說到哦。”

7:

面試官:”你剛剛說到記憶體的問題,你知道記憶體溢位丟擲的異常是什麼嗎?比如空指標是NullExcetion。“

我:”英語我不麼會念,我拼給您聽吧,S,T,A,C,K,+異常的英文。“

面試官:”不是,你知道OOM是什麼嗎?“

我:”Memory。“

面試官:”Out Of Memory ,記憶體溢位 。“

我很尷尬,這裡建議讀者去了解一下記憶體溢位和記憶體洩露的區別【遞迴一般出現的異常是棧異常,因為遞迴是用棧實現的】

8:

面試官:”你熟悉SQL語句嗎?“

我:”簡單的查詢,插入,刪除,更新我還是比較熟的,其他像多表查詢我就不怎麼熟了。“

面試官:”現在要你在一張表裡面查詢某個日期之前有多少條記錄,SQL語句怎麼寫?

我:“ selete from "表名"  where "查詢條件"    。”

面試官:“不對,應該是  selete "列名" from "表名"  where "查詢條件"   。”

我:“好吧,忘記加列名了。”

9:

面試官:“說一說Activity的生命週期。”

我:“我英文不好,我用中文說吧,建立,顯示,暫停,停止,銷燬。”

面試官:“不對,建立之後還有一個啟動。”

10:

面試官:”你資料結構學的怎麼樣?“

我:”學的還行吧。”

面試官:“已知二叉樹的中序序列為:ABCEFGHD,後序序列為:ABFHGEDC,求二叉樹的先序序列?”

我:“當時面試官問我這個問題的時候,我笑著和麵試官小姐姐說這樣的題我以前做過,不過現在我不一定能做出來,做出來也不一定是對的。”

面試官小姐姐笑呵呵的回答道:“那就換不問這個問題了,你知道int 和 Ingeter的區別嗎?”

這題的解答過程如下:

解:先序遍歷:根節點,左子樹,右子樹

中序遍歷:左子樹,根節點,右子樹

後序序列:左子樹,右子樹,根節點

請看圖解:

所以此二叉樹的先序序列為:CBADEGFH

11:

面試官:”你知道int和Integer的區別?“

我:int是整數型別,Integer是一個包裝類,是java JDK5.0提出的自動包裝箱中出現的。”

小姐姐沉默了一會,說到,面試時間也差不多了,你有什麼想問的問題嗎?

我:”請問面試結果大約什麼時候出來呢?”    

小姐姐:“這要看HR的進度。”

之後就是掛電話前一些寒暄的話語了........

總結一下這次的面試心得吧:唉,不超過10秒鐘的自我介紹是硬傷,百度這種大企業對實習生的基礎要求特別嚴格,基礎涉及到資料結構,計算機網路等等一些基礎知識,只恨自己的基礎知識還不是那麼牢固,還是趁著現在還有時間好好大牢基礎。今天和一位網際網路老人聊了一下,他說現在畢業大學生太會吹了,動不動就說面試過哪個大廠和在哪個大廠帶過,理論知識回答牛得一逼,但是實際開發能力很差,我只能和他說:“大廠有時間和金錢來培養基礎好得學生(985/211),像我這種非(985/211)還不是苦得一逼,大廠校招宣講根本不會來我們學校,學校位置又偏,招聘資訊閉塞,老哥你說的也是有道理得,但是就是太絕對了,相對於一些大學生就是這樣得的【眼高手低】,就算進了大廠,如果自己不努力,還不是沒啥用,大廠只是有很大機率造就人才而已。”  老哥這麼回答我:“是啊,經驗都是加班加出來的,不要隨便吹啊。”

還有就是在面試的過程中,因為緊張的緣故,英語說不出來,只能說自己英語真的不好,自己都拼英語單詞了,唉,還是太年輕,需要磨礪啊。