面試經驗總結——測試崗
雖然還有一年才找工作,但是提前做準備總歸是好的。等我把基礎性知識學習完以後,在一一總結相關問題的答案。以下是總結別人的測試崗的面試經驗,會不定期更新的!
1、百度面試
1、能夠大概描述出來幾種常見的演算法的過程,複雜度(排序、查詢等)
2、給你設定幾種場景,讓你解答:比如給你兩部手機,讓你站在一百層樓高的地方,假設在第n層手機摔下就會摔破,問你怎樣用著兩部手機確定這個臨界層。
3、怎樣知道一個連結串列裡是否有環的存在,以及確定環的位置。如何確定兩個連結串列是否有相同的部分
4、網路一些知識,比如http幾次握手的情況,ack等包,結束是否只能由伺服器段先斷開。網路幾層,常見網路裝置屬於哪層?
參考答案:在TCP/IP協議中,TCP協議提供可靠的連線服務,採用三次握手建立一個連線。 第一次握手:建立連線時,客戶端傳送syn包(syn=j)到伺服器,並進入SYN_SEND狀態,等待伺服器確認; 第二次握手:伺服器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也傳送一個SYN包(syn=k),即SYN+ACK包,此時伺服器進入SYN_RECV狀態;第三次握手:客戶端收到伺服器的SYN+ACK包,向伺服器傳送確認包ACK(ack=k+1),此包傳送完畢,客戶端和伺服器進入ESTABLISHED狀態,完成三次握手。
5、測試的幾種方法.
6、給定一個很大檔案,記憶體裡放不下,怎樣搜尋裡面是否有需要的關鍵字,從百度搜索內容,描述一下大致的過程
7、 C語言 記憶體分配機制(堆疊的區別,靜態儲存區)
8、 陣列指標和指標陣列有什麼區別
9、海量搜尋問題
比如百度搜索關鍵字放在一個大檔案裡,該檔案在記憶體裡裝不下,使用者可以輸入關鍵字,在檔案裡查詢關鍵字,看關鍵字是否在該檔案裡,給一個解決方案。(用Hash方法)
10、搜尋的原理 :在百度頁面輸入關鍵字,得到搜尋結果,解釋一下這個過程是什麼樣的
11、深度搜索演算法 單鏈表 就地 反轉
12、Linux常見的命令看看(必考) ,對linux核心有一定的瞭解
14、TCP與UDP的區別
15、網路裝置
16、socket 套接字
17、熟悉基本的網路配置及路由器、交換機等網路裝置的配置;
18、瞭解TCP/IP協議
19、測試流程 有幾種方式像什麼白盒 黑盒 功能測試 效能測試 單元測試
20、程序與執行緒的區別
21、標準模板庫STL 用過的庫函式
22、做過的有關測試的專案,沒有問很細,測試用例是不是自己寫的,根據做的專案,設計怎麼測試自己的專案
23、靜態函式庫、動態函式庫 區別 自己做的專案是屬於動態的還是靜態的
24、Linux程式設計怎麼樣(百度貌似基本上程式都跑在linux上,這個肯定要問到)我直接答的linux常用命令還可以,在linux環境下做過實驗,核心不瞭解
25、演算法題
大部分是告訴他思路,面試官哥哥會把問題簡化,再一點點啟發,一點點給問題加條件,要把自己思想解釋懂給他聽,練練口才啊~還有準備好紙筆,一些程式碼,不好憑空想象~
1、在棧中,找出最小值,給出push pop 求最小值min函式(不破壞棧的原始的順序、用最小的時間)
2、矩陣中 橫排 每行的資料是從小到大的,豎排 每一列也是從小到大 給出一個數用最快的時間查詢一個數是否在矩陣中(空間複雜度)
3、括號匹配 { 【 ( 看左右括號是否匹配 數學規則:{【(
1)不考慮數學規則
2)考慮數學規則
集合數的儲存模式,一聽就有點懵了,啥是集合數??委婉的告訴她不知道什麼是集合數,她就說,儲存模式有陣列等,我當時很亂,就把我自己理解的,所有在記憶體中儲存模式的,那些,陣列、連結串列、棧、堆、常量區等等,都答了,想想真2。
之後圍繞之前做過的專案問的比較多,比較詳細,詳細到了一些功能的實現,遇到的問題,怎麼解決的等等,根據專案問了資料庫的語句,找出資料中最大的前十個,給忘了,就說了C++中的實現方法,還自己引申了一下,答了記憶體中放的下的資料怎麼處理、放不下怎麼處理、找出最大的前十個怎麼處理,前一萬個怎麼處理。。。
也是回答了一些測試的題,測試一個函式,設計測試用例,函式功能:兩個已經排好序的陣列,合併成為一個有序陣列。
做過的白盒測試 實驗 自動化測試 有沒有寫過指令碼語言
問了 測試網路是否連通 ping命令
Linux 我還是像一面那麼答的,這回讓我列出了我自己熟悉的linux命令,我就說了一些,她問了一個退出vim怎麼退出,就回答了,儲存退出,不儲存退出的命令等等。
還問了 編碼量最大的專案,最近半年自學的東西,自學的途徑等等。
我每次最後都要面試我的人給我一些建議,一是有些人給的建議很誠懇,像小米,直接說基礎太差,要我好好學習基礎;二是,基本上可以知道還有沒有機會接著面了~直接問有沒有戲,別人不一定會說。
下面是2015年一個同學的面試經驗;
一面:
(1).針對簡歷問了些問題。
(2).當場寫了個在母串中找子串的問題。
(3).寫了個在兩個資料表中查詢某個欄位的sql語句。
(4).哪些方法可以提高資料庫查詢效率。
(5).索引設計的時候要注意什麼。【欄位長度及索引個數不能太多】
(6).Java中final關鍵字修飾不同內容時含義。
二面:
(1)針對簡歷問了些,如闡述MVC設計模式。
(2)ajax的原生過程及jQuery實現。
(3)jquery中常用的選擇器。
(4)tcp/ip的作用。
(5)位元組碼作用,jvm作用。
(6)當場寫兩個空棧實現佇列。
(7)如果一個數據表有成千上萬條記錄,訪問時很慢,有哪些方法可以優化。
(8)對電視機做測試
三面:【一位很nice的姐姐~】
(1)自我介紹及興趣愛好。
(2)專案中成長最快的地方,有沒與成員出現分歧的地方。
(3)瞭解哪些百度產品。對百度地圖做測試。
(4)最近有沒感到有壓力的事。
(5)瞭解百度最近的一些大事,如世界大會,百度eye,百度筷搜等等。
(6)最近投了哪些公司,對BAT的看法。
(7)希望工作後能從公司得到什麼。
(8)一片區域的網路狀態不是很好,要蒐集這樣的一個反饋,你會怎麼做。【具體忘了,反正百度姐姐說用眾測平臺醬紫。。。】
(9)工作地點及個人情況。
一面
1、自我介紹
2、專案介紹和專案所做的內容
3、HTTP協議中GET和POST的區別。三次握手過程描述一下。
4、單鏈表的逆置,如何判斷單鏈表是否有環?
5、Linux常用命令,chown是什麼?Grep呢?
6、資料庫更新語句?group by如何使用?
7、測試用例設計。對新聞下方的評論如何設計測試用例呢?(分為介面部分、互動部分)
8、何時能入職?對加班什麼看法?你有什麼問題問我?
二面
1、自我介紹
2、專案裡你做了什麼?(我做的是一個安卓購物商城專案)
3、專案中的東西如何具體實現?
4、有做後臺嗎?有搭建過環境嗎?環境如何配置的?
5、弱網檢測,APP效能你如何檢測的?(fiddler抓包工具檢測)
6、和後臺資料庫如何進行互動?
7、對購物商城專案做一個整體的測試該如何設計?給5min思考
8、專案開發環境、開發工具、語言
9、介紹一下另外一個專案
10、學語言多快?大概多久上手?
三面
1、自我介紹
2、介紹專案有什麼功能?Native和H5如何混合的?(我的安卓商城專案是混合模式,並不完全原生)
3、做過其他什麼專案嗎?
4、如何取出字串中的英文字元,在實現中有哪些需要特別注意的?難點在哪?
5、執行緒程序什麼區別?為什麼引入執行緒?他們各自的好處?
6、你有什麼問我的?你的優點是什麼?
2、小米麵試
1、c與c++分別是怎樣動態分配和釋放記憶體的(小米)
2、儲存位置的區別 棧區、堆區、全域性變數、程式碼區(小米)
全域性變數儲存在全域性靜態儲存區,區域性變數存在堆疊中
3、自己寫一串程式碼實現atoi函式的功能,然後根據自己寫的程式碼,寫出測試用例,再根據測試用例完善些的程式碼(小米)
之前面小米的一個經驗:不會的千萬不要說你會,我提了下C#,面試官直接問我C#跟C++的區別,勉強說了一些,說著說著,說了一底層介面這個名詞,面試官又問我底層介面有哪些,我當時想死的心都有了,於是,自己不熟悉的,在他還沒具體細問問題的時候先告訴他會什麼,不會什麼,例如linux,我直接答的linux常用命令還可以,在linux環境下做過實驗,核心不瞭解,就不會死很慘。
還有,簡歷注意下,之前朋友簡歷上寫的 學過的課程中 有一個 linux核心 ,這課確實是學了,百度的面試官問了一個問題 你比較熟悉哪一個linux核心命令,我們來深入探討一下啊,這個就不好答了~
2017年8月網易測試面試:
1) 如何測試出網易辦公大樓裡面人員使用andirol 系統還是 IOS 系統
2)為什麼報測試,不報研發崗?
3)如何判斷多執行緒
4)如何判斷多程序。
5)linux 系統常見命令
6)你知道多少個操作操作,作業系統共同點是什麼?不同點是什麼?