【面經】美團測試1,2,3面,一起來聊聊?

把蘋果v咬哭發表於2021-07-08

前言

最近因為公司層面的關係,我被迫營業開始了一些面試。

最近面的公司有:美團、阿里、位元組、B站、攜程等等。從面試中呢也有了一些感受,比如面試形式、內容、面試官的關注點、其他balabala...

一、關於面試

首先,關於面試這件事,我覺得除了解決我們工作問題之外,也是一項可以提升自己的途徑。

記得之前看蟲師、乙醇的部落格的時候,得到了面試驅動成長的思想,我覺得是很有必要的。

  1. 可以讓你獲知當下的市場,對於測試工程師的能力要求,發生了哪些變化,你是否還可以保持在主流位置。
  2. 從面試官的問題,反推你在工作中的不足,有助於你後續工作的提升。

在網際網路行業,技術更新迭代的頻率還是很高的,這也讓持續學習變成了從業人員的一項重要能力。在現在的招聘資訊裡,不管大小公司,對於測試的要求越來越高。除了業務能力之外,各種技術棧也隨之而來,比如:java、python、CI/CD、Linux、自動化、mysql、各種中介軟體(MQ、Redis、ES)等等。如果你不能及時感知到這些變化,那麼可能就會陷入被動的局面。

另外,在面試中,大概率會遇到一些你表達不好的問題,比如你在工作中除了完成基本工作外,還做了哪些質量保障的推進改善?這種問題就很值得事後反思歸納一下了,然後總結出問題,反逼我們去思考或者尋找解決方案,從而提升自己後續的工作。

所以,除了找工作要面試之外,階段性的面試也比較重要,只不過這個週期要因人而定了。

二、面試前的準備

面試前的準備是非常重要的,視時間情況而定,儘量的從多方面去準備。

比如梳理你現在負責的業務、系統應用的架構、業務的核心、測試工作的重點等等。如果會涉及到其他技術棧的,還得看看程式碼知識、資料庫、各種中介軟體等等。

總之不打無準備之仗,在有限的時間裡,能做多少做多少。

三、關於崗位 Title

其實很多招聘中寫的 title是測試開發工程師,但是基本上不是純走測試開發的,還是要基於業務測試來的,在我看來還是屬於高階/資深測試工程師。

對此,我個人的觀點,測試的核心肯定還是基於業務走的,然後開發的技能是為了幫助測試提效的,所以我個人的預期也非純測開(開發能力也不夠),所以遇到這種title的也不用慌張,看清楚JD需求,只要hold住就可以試試。

四、美團三次技術面內容

雖然面的公司比較多,但是面試題展示就還是以美團為例了,因為很多公司的面試題都有相似之處。

一面

1. 自我介紹
2. 關於自動化:怎麼做的,目前的進展,效果如何,遇到的困難
3. 你的框架搭建,最初是考慮了哪些因素去設計的
4. 如何維護自動化case?
5. 有沒有用mock去解決問題?
6. 說說你工作以來做過的這些業務,你覺得在保證質量工作中,存在的差異性
7. 你在工作中發現的問題,自己做了什麼事情去推動
8. 溝通下來,覺得你們流程問題還是比較多的,純靠手工去保證麼?
9. 開發冒煙執行後,測試如何判斷是否通過
10. 演算法題:判斷15張撲克牌,隨機5張,大小王任意配,是否是順子
11. 看你用python多,聊聊python的一些資料結構,常用方法等等,都可以說
12. python中淺拷貝、深拷貝
13. 測試的介面都是什麼協議的,對http協議有進一步瞭解麼
14. 問程式碼是怎麼學的?

二面

1. 自我介紹
2. 平時如何做測試工作的
3. 流程,規範相關
4. 推進遇到的難點,分析,解決
5. 聊聊最近印象深刻的專案或者bug
6. 聊聊自動化如何實施的,使用場景。針對你回答,抓細節點深問
7. 關於QA如何驗證開發冒煙測試通過的方式
8. 問了資料庫,索引。 優點缺點、常見索引型別、索引最左字首原理
9. Redis快取擊穿,雪崩
10. 問了java相關基礎,多執行緒
11. sql題:資料庫單表查詢,主要考察group by用法
12. 演算法題:合併有序陣列
13. 反問環節

三面

1. 自我介紹
2. 演算法題:給定一個陣列,判斷是否有重複資料,最少3種方法實現。
3. 聊平常的工作內容,具體哪些業務,系統架構,如何互動
4. 用到訊息佇列,跟介面互動有什麼區別,優缺點
5. 抓住簡歷上的專案,和你回答的內容,繼續深問
6. 問你之前XX專案的測試重點是什麼
7. 涉及到效能測試的,如何進行測試,關注哪些點,指標
8. 用例設計題:一個新客、老客、轉新購買活動商品減優惠的需求
9. 聊做了哪些工具,怎麼做的,前後端用到了什麼
10. 自動化 怎麼做的,做了哪些,測試資料是放在哪裡。
11. 多介面串聯的場景,自動化要怎麼做?

上面就是3次技術面的內容了,跟後續的其他公司的內容對比後,我覺得是有很強代表性的。現在基於此,作一些歸納總結。

五、面試內容主要構成

我是異地,所以都是視訊面。用的是牛客網,方便線上做題。三次面試時長均為1小時左右。

1. 自我介紹

自我介紹是必不可少的,看起來不起眼,但還是有必要精心準備一下。行雲流水的自我介紹,與磕磕巴巴的說話,很顯然前者更有利於面試官對你的第一印象。

我建議是組織精簡的語言,概述出如下內容:

  • 個人當前的狀態,在職,離職。
  • 任職的公司,所參與過的業務(多的話挑最具亮點的)。
  • 在工作中,你做的事情(能凸顯你的業務、技能亮點的)。

時長在 1 分鐘內比較適宜,我自己是在 30s 左右(肚子裡沒貨o(╥﹏╥)o)。太久容易引起反感,這畢竟是剛開始。而且說的久了你說的也多,說多容易出錯。語言一定要組織好,按合理順序表達。

2. 基於業務的問題

通常,面試官會根據你的描述,和簡歷上的內容,挑選其中的業務進行提問,並且根據你的回答進行追問。

所以,在面試之前還是要熟悉你要講的專案的,從哪些方便?個人建議有:

  • 專案背景,簡短介紹。
  • 專案概況,比如人力、週期等
  • 你在專案中的主要工作。
  • 專案的業務流程、系統架構圖大概是什麼樣子,互動要說得清。

然後,面試官應該會選擇其中的某些點進行細節的追問。比如你覺得專案的重點在哪裡、複雜度有多高、質量保障中遇到的問題、如何解決的等等。你能扛得住追問的話,說明你的工作還是很細緻的,細節的地方你都熟悉,印象分增加。

3. 基於技術棧的問題

問完業務,面試官會基於你簡歷體現的技術棧開始發問了。比如程式碼、自動化、CI\CD、linux、資料庫、中介軟體等等。

我個人覺得要注意的點如下:

  • 簡歷技術棧的熟練程度一定要真實。
    不要會個 hello world 就寫熟悉,該寫了解就寫了解。一點都不瞭解的,就別往簡歷上寫了,省的給自己挖坑,一問準露餡。

  • 測試用例設計
    雖然是我們測試的基礎技能,但是我覺得也是核心技能。通常你不用上來就直接設計1,2,3,4。可以先感受下題目,丟擲你的一些疑問,然後再描述你的設計思路,最後進行細節點的描述。

  • 給你XX介面你要如何測試
    這種問題看著簡單,實際有坑。最好不要上來就說正向、異常測試、輸入校驗等。其實面試官希望聽到的答案是,你能做左移的角度去逐步分析這個待測介面,然後再決定如何的測試它。我曾經就有過這種情況,實際上我是知道這個坑的,但是難免也會忘記。但是好在面試官很nice,在你回答之後,他給出了他覺得怎麼做會更好。但是這時候呢,你也可以掙扎一下,表示這個自己也是知道的,在實際當中也是如何做的。

  • 對於各種中介軟體,最好有個瞭解。
    可能你的業務系統簡單,用不到一些中介軟體,比如mq、redis這些。但是用不到不妨礙你去學習瞭解,因為這些東西現在應用真的非常廣,起碼你要知道使用場景和原理,解決哪些問題,引入哪些問題等等。如果能答一些,肯定會比一問三不知要好很多。如果真的你實際沒用到,也可以表述一下,僅自我學習的一些瞭解。

  • 涉及到自動化
    如果涉及到自動化的建設,那麼你要知道專案使用的語言、框架等、專案的模組結構、專案擁有的能力、專案執行策略、專案的收益。另外,對於自動化,面試官很愛問對於測試資料的處理,mock相關的實際應用問題。

  • 一些框架、庫的知識,底層原理
    比如你web自動化提到了用selenium,那麼selenium底層實現原理是什麼?你喜歡用pytest框架,為什麼?與unittest相比,優點有哪些,你會用到框架的哪些特性等等。

  • 資料庫
    資料庫其實還好,考察的內容主要是:連表查詢、group by、having等的用法。此外,索引也是經常問的,索引的介紹、原理、為什麼快、索引越多越好?

  • 演算法題
    面大廠必備環節。難度為LeetCode上簡單難度。有出現過原題,也有變形題,還有面試官現場手打的題目。但是考察的內容,基本上就是常用的資料容器的操作。

4. 持續學習、快速學習的能力

面試官可能會問你看過哪些書籍、哪些方向的,自己平時是怎麼學習的,對自己的評價是什麼樣子的?重點是考察你的自我學習能力大概如何。這些問題就還是因人而異了,你根據你現在的情況組織一些不太過分的內容來回答即可。

我個人看的一些書籍(看得少)會有:程式碼語言、測試相關的、自動化的、效能的。除了書本以外,主要還有搜尋引擎、部落格、極客時間的、B站等等。

另外,關於學習提升這塊,我覺得有 3 點很重要:

  • 學習目標:能夠知道自己的不足之處,知道該學哪些知識。
  • 時間管理:如果能犧牲點刷視訊資訊流的時間來看點資料,部落格,每天一點點,一個月、一年之後你肯定比現在的你強很多。
  • 執行力:目標有了,時間有了,就看能不能堅持了。

當然了,學習還是要勞逸結合的,怎麼去規劃適合你的時間,可以好好思考下。

學習的過程中,如果能做筆記自然是最好了。因為在寫的過程中,你會更深入體會知識點,有助於加深你的印象,以及理解。如果能分享出來也是極好的,也能幫助有需要的人,或者拋磚引玉,大家一起討論。

5. 反問環節

通常面試官顧及禮儀的話,會有一個反問環節,但是沒給你這個機會也不能直接說明什麼,說不定人家真的hin忙?

我通常關心 2 個問題,問多了也過多佔用別人的時間,當然有跟你聊的頭圓的除外:

  • 參與的業務,核心能力。有助於你瞭解對方的業務概況,複雜度,與你之前業務的關聯性,對你未來的成長是否有積極意義。
  • 研發規模。開發、測試的人力,有助於判斷公司的研發力量情況,以及開發測試配比的情況。

六、面試之外的感受

到此,一場面試就結束了。有條件的話,建議記錄下你印象深刻的內容,方便回去之後梳理總結。在這裡,順便談談一些其他的感受吧。

1. 心態調整

調整好心態,不管你現在處於哪種狀態。儘量讓自己面試時候的狀態要好,要自信(不是自負)。勝敗乃兵家常事,像我面試了這麼多,我也不知道最後哪家可能走到最後,或者說一個也沒有,哈哈。

那也沒關係,失敗無非就是2個問題:

  • 火候不夠。這個是自己表現確實差勁,自己都要吐槽。
  • 背景與崗位不匹配。這個也會有的,但是這種情況下用人部門可能會流轉你的簡歷給其他適合部門。

那不管是哪種,我覺得都應該汲取其中積極的一面,進一步提升自己。

2. 遇到很爛的面試官

我聽朋友講到,他遇到過一個面試官,喜歡揪住他不擅長的問題進行追問,然後還嘲笑他。

多的也不用說了,這種人就是個傻X,你千萬別跟他一般計較。我遇到的面試官通常都會在你表示不瞭解後,就會換個問題,或者說根據你的回答,給予一定的引導。所以,像我朋友說的這種傻X一定是極少數的。

3. 隨緣

隨緣就好,我面的多了也很佛了。反正面不上更好的就進一步降低標準唄,反正不會餓死。

4. 外包公司

外包公司不是不能去,但是多數人可能對此不是優先選擇,優缺點大家網上都可以搜到。所以,對於不考慮外包的童鞋,我整理了一些出現在我的視線中的公司:

  • 軟通動力
  • 中軟國際
  • 浪潮集團
  • 法本資訊
  • 華為&德科

華為德科這種OD崗位,就是跟德科籤合同的華為外包,說優秀的可以轉為華為正式崗,反正我是不信那幾率的。

OK,以上就是最近的一些感想,祝大家順利。

相關文章