某天收到一封來自 Google TW - Test Engineer, Android 的面試邀請,於是開始請HR幫忙安排後續一切事情,首先要先感謝 HR Jenny 很用心、很細心的跟我說明接下來面試的流程,也提供我許多面試相關的參考文件,真的是萬般感謝,讓我感到備受尊重。當然! 面試不外乎還是要刷刷題目~這我就不多說了!
Google TW 面試流程:
Recruiter Prescreen → Phone Interview → Onsite Interview ( 4–5 sessions ) → Hiring Committee Review → Offer Review → Offer Delivery (Yippee!)
先說結果,很可惜的我在第二關就直接GG,但我還是覺得整個經驗是令我感到有點神奇與黑人問號的?
以下是面試過程:
面試時間約莫45分鐘(透過Google Hangout視訊會議),視訊電話接通之後,先與interviewer打招呼,她請我先自我介紹,我開始敘述我的工作經驗bla~bla~bla~5年的工作經驗如何如何,之前是如何建立自動化測試..如何測試..測試過什麼樣的產品..寫過什麼測試工具與建立測試架構...等(我約莫用3分鐘時間口述完畢)。
Interviewer: 恩~好 那我們開始吧 !
Me: .... (恩 好喔...
接著直接在 Google Doc 上貼上一段題目,第一次在Google Doc寫code囉~XD 如下:
Vampire number: positive integer v that can be factored into two integers x*y,
where base-10 digits of v are equal to the set of base-10 digits of x and y. These two factors are called the fangs.
Examples:
688 = 86 x 8
1260 = 21 x 60
1530 = 30 x 51
125460 = 204 x 615 = 246 x 510
12546 = 246 x 51
Please implement a method to check if it is a vampire number.
boolean isVampire(int x, int y) {
[fill here]
}
Interviewer: 你習慣用什麼語言? 那你自己再改一下function格式~
Me: Python ~ 好喔
Me: 想問一下,怎麼樣的情況會構成Vampire Number?
Interviewer: 恩~你是哪邊看不懂嗎?
Me: 將題目翻成中文念了一遍給他聽~所以668 = 86 * 8 這應該要return True or False
Interviewer: 就是~兩個相成的數字相成之後的結果,x, y出現的數字個數應該是要一樣的~
Me: 哦~好 那我知道了 ! 我能用字串解嗎 ?
Interviewer: 可以!
[解法1]
寫完之後我開始解釋,這function的執行流程:
# x = 86 y = 8
num = "688"
string_factors = "868"
factors_count_list = [2, 1, 2]
num_count_list = [1, 2, 2]
return True (O)
=================================
# x = 68 y = 8
num = "554"
string_factors = "688"
factors_count_list = [0, 0, 0]
num_count_list = [0, 0, 0]
return True (X)
自己解釋到這發現問題...
Interviewer: 你這想法有點奇特,既然都決定用字串解了,換個方式吧?
恩...於是我開始修改第2版
[解法2]
解釋:
# x = 86 y = 8
num = "688"
string_factors = "868"
factors_count_list = ["6", "8", "8"]
num_count_list = ["6", "8", "8"]
string_factor = "688"
string_num = "688"
return True (O)
=================================
# x = 68 y = 8
num = "554"
string_factors = "688"
factors_count_list = ["4", "5", "5"]
num_count_list = ["6", "8", "8"]
string_factor = "455"
string_num = "688"
return False (O)
Interviewer: (恩...看了一下)
Interviewer: 那對於這份工作還有什麼要問的嗎 ?
Me: 恩...在 Google Automation team 與 一般 QA 有什麼不一樣?
Interviewer: 一般 QA手動測試居多,Automation的話就可能需要自己 build code建立 CI 流程,release process都要自動化。
Me: 那目前你們是用什麼樣的 Framework在做 Testing ?
Interviewer: Google 內部有很多套 ~恩~
Me: Ok, 那會需要 BDD嗎 ? 或是寫 Gherkin語法把 test case變成是一個可執行的test case?
Interviewer: 你是說JUnit那種嗎 ? 如果是的話會阿~
Me: 恩...(眼看時間快到就沒再問了 XD
感想:
面試前有在網路上看一些相關的面試經驗,但主要還是都偏RD居多,Test Engineer幾乎找不太到,完全是靠HR給的相關文件與刷題在準備面試的方向,再次感謝HR很細心地提供文件與幫助,面試完後也打一通電話給我,確認一下整體的面試經過,也詢問我有沒有跟Interviewer確認題目與題目要的結果,我也告訴他我有問。
HR: 那整體面試的時間分配是如何呢?
Me: 自我介紹 與 Live coding
HR: 自介完之後Interviewer有對於你的工作經驗做詢問嗎?
Me: 恩...沒有就直接開始了~
HR: 恩...那題目你覺得如何呢? 與我給你的參考資料相比的話?
Me: 我覺得差不多但偏簡單一些~
Me: 那接下來的onsite interview流程會是如何?
Coding skill * 2 > Testing domain > Leadership
恩...過了兩天之後,收到一封Thank you Email ,基本上我個人是沒太意外,面試結束就有這種感覺。可能是對我沒興趣或是我真的不夠厲害...?!
對於我[解法1]少了一個判斷式,如果將判斷式補齊之後應該會長這樣...
這解法就是直接對數字count,之後判斷數字否一樣。
基本上題目個人覺得中等偏簡單,也許是因為失誤或是花太久的時間解題什麼的或是可能她想要數字解...所以就直接reject了吧! 我本來以為會是一個可以吸收很多知識的面試...結果是一個有趣神奇外加有點黑人問號的體驗拉! 後來在網路上有找一些吸血鬼相關的題目...恩。總之~再接再厲吧! Life is Fantastic!
原來是一題 Hard … (煙~