2021 學士新鮮人 JkoPay 街口支付面試心得

ChingYu Li
11 min readNov 2, 2021

--

街口支付目前已經是臺灣境內最大的行動支付平台了,自 2019 年使用人數約為百萬人、2020 年約為 2 百萬人,再到今年已經有將近 480 萬使用者,每年以翻倍的成長速度在臺灣奠定了行動支付龍頭的地位。

街口支付 Logo

街口支付打從創立初期就頗有討論度,不論是創辦人的行事風格、街口支付的多元服務拓展以及整個團隊的擴編速度,更遑論使用者多受街口支付以及 Line Pay 兩大支付業者瓜分了,因此來面試的過程也是希望能夠一窺金融服務的樣貌。

坦白說我個人已經是將近三年的 Line Pay Money 以及 Apple Pay 的使用者,雖耳聞街口支付許久,卻始終不是他們的的使用者。

十月份偶然在 Medium 看到 Onedaytest 的文章,覺得寫的滿不錯的,對於我這個連 Junior 都稱不上的菜鳥測試工程師來說,應該可以成為初入職場的觀念來源,索性就按下 Follow 了。爾後不久,突然收到 JkoPay 的 QA/SDET Team Leader 來加 LinkedIn,才發現 Onedaytest 原來就是由這位街口支付的 Team Leader 所經營,而他也是因為我變成 Follower 的關係才輾轉看到我的 LinkedIn。

隔天便收到該 Team Leader 主動邀請我去面試,但是網路上針對街口支付的面試心得相對較少,因此我的第一直覺是很難拿到 Offer(畢竟這也不過是我人生第二次面試)。

時間序

10/17 Received Interview Invitation From LinkedIn

10/22 HR Phone Interview

10/28 On-site Interview (In 2 Sessions)

10/29 Verbal Offer From HR

10/28 恰好是我從實習公司正式離職後的第一天,沒想到前一天還在跟同事 Farewell Afternoon Tea,隔天就又再面另外一間公司。

進到面試間便有了基本人格測驗和一張考卷,考卷題目只有兩題,第一題的旁邊會有一台測試機,然後必須針對從街口支付 App 首頁掃碼付款再到付款成功頁面的 Integration Test 進行 Test Plan 制定,包括但不受限於 UI Test, QR Code and Code Scanner Test, Function Test and Error Handling。

街口支付內部的測試案例主要是採心智圖的方式,我是第一次看到這種編排方式,相當新鮮!

可惜的是街口支付當時帶我進房間的工程師忘記跟我說測試機的密碼,我反覆猜了幾個常見的密碼都失敗,再加上我個人只是虛有 App 卻不曾使用街口支付的人,導致於我這邊的 Test Plan 完全是憑空想像…,還浪費了寶貴的三分鐘在猜密碼 QQ

第二題旁邊放好了一台 MacBook Pro 16" 上機考,使用 Python 的 Requests Library 進行政府 API 測試,政府會回傳一份將臺灣所有醫事機構的名稱、完整地址、成人口罩餘數及兒童口罩餘數等資訊都揭露的 JSON 檔,針對這份非常大的 JSON 必須要做三道小題的處理;三小題分別是「1. 列出成人及兒童口罩總餘數小於 50 的醫事機構名稱。」、「2. 列出每個縣市的成人口罩及兒童口罩餘數為何。」、「3. 列出口罩總餘數最高的三個醫事機構。」

第一題只要把 JSON 檔的指定 Data 抓出來用 int() 處理,剩下就好辦了;而第二題則是把每個醫事機構的地址抓出來只取頭三個字,用 For Loop、match() 和 Regular Expression Library 就做得到了,與前一個 Key 的地址作比對,相同則加進總數,不同的話則把總數歸零重新計算;第三題就只要建一個 Disctionary 或 List,針對總數做 sort() 然後抓出前三多的機構名稱 Append 進去即可…。

但我空有想法,只能夠紙上談兵;

人生第一次的上機考才體會到原來我不會寫 Code…

以前實習或大學專題的時候,可以有足夠的時間去沉澱心思,慢慢去對資料做處理,放鬆狀態下 40 分鐘應該可以完整做完那三道題目。

然而上機考當下我腦袋明明就有清晰的邏輯,也知道 Python 有哪些 Method 可以做處理,但我就是寫不出來,當時腦袋已經卡到 int(VARIABLE_NAME) 寫成 VARIABLE_NAME.int(),我卻還在狐疑為什麼直譯不過去…。
我想要是那些 SDET 工程師跑去看我上機考時的 Google 搜尋紀錄,應該會懷疑這傢伙怎麼連 int() 的用法都要查,我也深刻體會到自己的 Programming 能力原來如此之廢。

接著一面由一位 Staff SDET 及一位 SDET 進來,分別遞給了我自己的名片後,僅針對 Test Plan 的部份來詢問我的看法,我想可能我的上機考真的太不如人意了。

一面主要由 Staff SDET 發問,問題幾乎將我當初放在 LinkedIn 的 Resume 遍歷了一次,對於我過往的實習經驗看似挺感興趣。

由於街口支付是 B2C 的數位支付,而我過去是在 B2B 的外商物聯網,兩者內容完全不相干,所以有將近十分鐘的時間都在分享我的實習領域和工作內容。問題問得很詳細,諸如「你為什麼當初會想去修經濟系的課程?那經濟系的課程對你有什麼影響?… 那你覺得經濟系的思維有幫助到你的工作嗎?」、「你的履歷中提及你在實習公司設計了多少的 Test Case,完成了多少個 Automated Test,但我比較想要看到的是績效表現,例如 Test Coverage 的比率,可以告訴我你為公司帶來的 Test Coverage 是怎麼樣嗎?」、「過去你們實習公司在進行 Sprint 時,你如何和其他團隊的成員一同制定 Test Plan?」、「你在桃園機場做人資實習生是做什麼?為什麼當時你會想去桃園機場做實習生?」等問題,就是把我大學經歷都吐出來的概念;反而另外一位 SDET 比較沒有特別問問題,印象中他只問了兩題而已。

一面其實很輕鬆,畢竟也是抱著來認識街口支付的心態在面試,所以面談結尾我也針對自己好奇的部分詢問了不少問題,甚至中間有提到我個人使用街口支付在 UI 這塊看到的一塊小 Bug,並對這個 Bug 提出我個人的看法及 Priority。
面試約有七成時間是面試方在瞭解我,三成則是我在認識街口支付,一面都算是能夠預先準備的部分,而當時一面大約花了 70 分鐘。

一面結束後,在另一間辦公室等了約略 15 分鐘,直接進行二面。

二面由資深 SDET 及 Team Leader 來進行面試,當初收到 Team Leader 邀約時就有進行背景調查,深諳是個很厲害的人,尤其在他簡單自介兩句後,拿著我的履歷一開口發問就體現出他的個人氣場,畢竟邏輯清晰、問題言簡意賅、語速也相當快,著實有先被震驚到兩秒鐘。

「我想請你做個自我介紹,但你只需要告訴我三件事情就好了,第一是你之前實習的工作內容在做什麼,第二是為什麼你想做 QA/SDET,第三是…(有點忘記確切是問什麼)後來我提到我以前的工作內容沒有做過壓力測試,接著面試官就說「測試有 Stress Test, Load Test 和 Performance Test,既然你提到壓測,你做過什麼壓測?(我前面有說我沒有做過壓測,但我不確定面試官是聽錯才這麼問的,還是單純想知道我有沒有做過其他的壓測)「你在你們公司看過 Performance Test 的 Code 你有什麼想法嗎?」「你對 QA 和 SDET 有什麼認識?」、「假設原先舊的 Feature 流程是…,然後新的 Feature 流程是…,中間共用到 A、B、C 三個 Function 且做過重構,但你時間上測不完所有的 Test Case,你要如何敢跟 PM 拍板說這版可以發了?」等等的問題,基本上面試開場的十分鐘就是一連串被轟炸,當時餓著肚子加上剛一面結束的我,每個問題都不知道該怎麼回答,直接被炸到體無完膚,這是我人生第一次體驗到大家說的「面試被電爆,一問三不知」

我之前的實習經驗中只知道美國的 Team 有在做核心平台的 Performance Test,瞄過那份 Python Script 一次,僅此而已;一開頭就被問到壓測的問題時,我只是知道他在講什麼,但我本身沒做過,所以也沒辦法回答。
那十分鐘的開場轟炸完之後,面試官淡淡地說「因為我有看到你 Tomofun 的錄取文章,所以我對你的期望比較高」,他並沒有接續表明些什麼,但當下聽到這句話我就知道面試應該是涼掉了,畢竟這句話的意思是當下我的表現並沒有達到他所預期。

接下來大約 60 分鐘的時間,氣氛突然不那麼的像被轟炸了。

面試官先是跟我介紹了他對於 QA 和 SDET 的看法。
以前我一直以為 QA 和 SDET 是個很類似的詞彙,只是差在 SDET 是專指能夠將測試案例轉向自動化流程的職務;但談話中才知道 Quality Assurance 是一個偏向業務導向的軟體品質控管,然而 Software Development Engineer in Test 理應是一個更全面的腳色,有點類似整個專案或產品站在 Omniscient 上帝視角俯瞰,不僅需要具備 QA 的知識,同時最好具備 DevOps 的能力等觀念,這是整場面試中學到的第一課。

後來面試官提到了街口支付當時新上線不久的服務--「跨機構轉帳」,然後他站起身來,緩步走向我身後的白板,隨手拿起橘色的白板筆畫了簡易版流程圖之後並詢問我的看法,「你的測試案例都是偏向業務導向的,你可以用系統導向的角度告訴我你會怎麼測嗎?那把測試計畫模組化來進行,你會怎麼測?」,老實說我也不知道我會如何測,因為我壓根兒就不知道所謂的系統導向、模組化是什麼樣的概念,因此我只能依循我實習的思維來回答,顯而易見的,這不是面試官想聽的。

接著面試官開始花了三分鐘在白板上解釋了他實際上想問的。它不是什麼很晦澀的東西,但也的確是很必須的思維,這是整場面試中被上的第二課。

後來我仔細思考,認為這部分應該是跟我實習的產業和街口支付相距太大所導致,因為 B2B 的產品業務的開發週期通常較長,迭代速度相較之下顯得較為緩慢,我們不太會遇到要在極短時間還扛著必須 Release 的壓力(通常啦);街口支付實則相反,背負著每兩週強制必須要發版的壓力,測試時間自然被壓縮許多,因此許多時候會針對特定流程來進行 Verify,Process Validation and Verification 都過了自然是可以發版出去。

二面的 QA/SDET Team Leader 先是狂電了約十分鐘後,就如上面的問題般地過了 30 分鐘;接下來大約 20 分鐘的時間就由另外一位 SDET 來進行 QA/SDET 常見的 Behavior Questions,「你還聽過哪些 Testing Tool? 平常如何吸收軟體測試、軟體品質相關的知識?」,而其他問題常常圍繞在「跨機構轉帳」這個新功能,基於前半小時從 Team Leader 身上學到的 Mindset,回答倒是變得沒那麼困難許多。
另外,也被問到諸如「像是跨機構轉帳這個服務,會牽扯到很多第三方的服務,但第三方服務的軟體服務品質並不是街口支付我們可以掌控的,那你要怎麼確認這次版本中整體使用者流程都沒有問題?」等等的問題,我私心認為這種問法比較聰明,因為這種 BQ 不僅讓面試者能夠更加認識該公司,面試官也能夠用最迅速的方法來判斷面試者的思維方式是否有符合團隊。

後來我大概也問了約 15 - 20 分鐘的問題,問得不多,但這時候兩位面試官的回覆卻讓面試變得很輕鬆,提到了一些街口在服務整合上的努力,以及一些使用者人數、組織內部擴編的需求來源,因此嚴格定義來說街口支付並非純粹的「金流服務」,而整場二面大約花了一小時半左右。

面試官甚至提到了當時政府在推動五倍券時,與各大支付平台合作的一些問題,雖然面試官當時分享這件內幕顯得雲淡風輕,但我仍能感受到他們語中所帶的無奈。

最後正當我以為熬過了整場面試,HR 卻走了進來,簡單的寒暄幾句。
接著就進行期望薪資的面談環節,但這儼然是我人生中第一次談薪水的經驗,而 HR 的環節大約是 15 分鐘。

最後當我走出整棟大樓時卻感到一身舒暢,因為藉此學到了許多新的 Mindset,甚至有點慶幸,畢竟 Team Leader 願意撥冗在面試中給我上一課。

總計四小半的面談中,收穫可謂相當豐富。

後記 2021/10/29

面試完不到 24 小時,就收到了 HR 打來給了 Verbal Offer,街口支付給了比 Tomofun 年薪還高 15% 的 Offer,想不到大學還沒畢業也尚未服役的我拿到了人生第二份 Offer。

當時的 Verbal Offer 內容大概是這樣:

1. 街口支付年薪保底為十四個月。
2. 約 3 - 6 個月後會再調薪,或是維持原薪資。

--

--