前言
大家好,我是 Lawrence Tsai,現為 LINE TRAVEL 的 QA 工程師。很榮幸有機會與 GDSC 的各位分享在 LINE 的工作與生活經驗。
究竟大學主修傳播的我是如何來到 LINE 實習?QA 的工作有哪些?我又是如何準備面試的?就讓我們一起看下去…
介紹
LINE TRAVEL
在開始前,我想先跟大家介紹一下 LINE TRAVEL 服務,LINE TRAVEL 是一個綜合性的旅遊服務平台,提供旅遊相關資訊和訂票服務,用戶可以利用 LINE 官方帳號或是網頁平台進入 LINE TRAVEL。
以下是 LINE TRAVEL 提供的一些主要功能:
- 旅遊資訊:LINE TRAVEL 提供豐富的旅遊資訊,包括熱門旅遊景點、旅遊行程、當地美食、交通資訊、天氣預報等,幫助使用者計畫旅遊行程。
- 機票:使用者可以透過 LINE TRAVEL 訂購機票,包括國內航班和國際航班。使用者可以比較不同航空公司的價格和航班時刻表,並進行訂購和付款。
- 住宿:LINE TRAVEL 提供訂房服務,使用者可以預訂國內和國際的飯店、民宿、度假村等,並比較不同住宿選項的價格和評價,進行訂房和付款。
- 體驗:使用者可以在 LINE TRAVEL 上找到各式體驗行程。
- 跟團:LINE TRAVEL 亦提供世界各地的跟團旅遊服務。
- 旅遊相簿:使用者可以在 LINE TRAVEL 上創建自己的旅遊相簿,上傳旅遊照片和分享旅遊心得,並與朋友和親人互動和分享旅遊體驗。
TRAVEL SCRUM Team
在介紹完 LINE TRAVEL 服務後,接下來便是介紹我們的開發團隊。TRAVEL team 中共有下列角色:
- Product Owner
- 產品負責人,是商業端的人但是負責跟工程團隊溝通。
- 將 marketing language 轉換為 product language 的角色,負責產品的 spec。
- Techinal Project Manager
- 技術上的 project manager。
- Designer
- 負責產品 UI/UX 的設計。
- Front End
- 前端工程師。
- 會在網頁中許多元素加入如 testid 的標籤,方便 QA 做 E2E testing。
- Back End
- 後端工程師。
- LINE TRAVEL 的服務有很多跟第三方廠商、內部系統的介接,這部分都需要後端工程師的協助。
- QA
- 很多的 api 意味著需要進行很多測試。
- 每天要測試能不能從合作廠商那邊拿到資料、網站運行是否正常等。
與許多軟體開發團隊相同,TRAVEL team 也使用 SCRUM 作為敏捷開發框架。
很多人聽到「敏捷開發」第一個反應都是「快」,這個理解是錯誤的。事實上,如果今天需求變動不大的話,傳統的 waterfall 開發模式遠比 agile 快不少,因為省去了許多的管理及溝通成本。然而,LINE 作為一款 2C 產品,客戶的需求變動是極快的,因此需要一個「敏捷」的開發框架,我們在每次開發 sprint 完成後都會根據需求來調整任務的優先順序,或是增加新的任務,讓產品隨時都能夠符合用戶的需求。
TRAVEL 的 Sprint 週期為兩個星期,期間我們會經過以下流程:
- Scrum Daily
- 每日的站立會議,團隊成員會簡述前一天做了什麼、今天要做什麼、有沒有什麼需要跟團隊成員討論的事項。
- Sprint Planning
- Sprint 開始前的會議,討論此次的 Sprint 要完成哪些目標。
- 目標的優先順序由 PO 決定。
- Refinement
- 針對 Product Backlog 的會議,PO 與團隊討論最近需要開發的項目並檢視。
- 會依據需要開發項目的難度進行「估點」,如此一來在 sprint planning 的時候就可估算出 每個人在 sprint 中的工作量是否合理。
- Sprint Review
- 團隊成員會將此次開發的成果 demo 給 biz 端的人看。
- Retrospective
- Sprint 的回顧,看看有沒有碰到問題,是否能夠改善。
- TRAVEL 會使用「Mad Sad Glad」表來幫助 retro 進行。
- 討論出的改善事項也會決定負責人,並押上日期以利後續追蹤。
QA Roles
那 QA 在 TRAVEL 團隊扮演的角色是什麼呢?
在 Planner 開好 spec 之後,Service QA(QA 對其他 team 的 contact window,如 planner、法務等等)以及 Test Engineer 便會開始撰寫 test case 並進行測試,若有 bug 則會開票給 developer 並追蹤修復情況。Automation Engineer 則會著重在撰寫自動化測試、CI/CD、 網站運行狀況監控等部分。待 sprint 接近尾聲,開發及測試皆完成後,亦需要 service QA 準備 sign-off document 才能將產品最終發佈。
因此,一名 QA 的職責通常會是 test case preparation、test automation、manual testing、CI/CD、monitoring 五項。
TECH FRESH Job Responsibility
那 TECH FRESH QA 的工作會是什麼呢?一般 TECH FRESH 會充當團隊 Automation Engineer 的角色,因此工作中比較會接觸到的就是 test automation、CI/CD、monitoring。
- Test automation:這是工作中最主要的部分,涵蓋模擬使用者使用路徑的 E2E testing、測試 response schema 和 status 的 api testing、測試極端情況下程式運作能力的壓力測試等等。在 LINE TRAVEL 團隊中,自動化測試主要用兩大框架,分別是 Cypress 和 Playwright。
- CI/CD:通過將產品的構建、測試及部署自動化,軟體開發流程可以大大加速,code 有問題時也能即時發現並修復。因此撰寫 CI/CD pipeline、了解相關工具也是 automation engineer 的職責之一,LINE TRAVEL 團隊主要使用 Jenkins、Drone、GitHub Actions、ArgoCD 等工具。
- Monitoring:在產品發佈之後,後續的監控亦是十分重要,對 dashboard 數據的觀察以及 alert 的處理也是平常工作的項目。
How did I prepare interview?
聊了這麼多,那究竟要如何成為 LINE 的 QA 工程師,我又為了面試做了哪些準備呢?
我認為可以從三個面向著手:
-
Testing
QA 最重要的工作仍然是測試,因此了解測試流程與種類、如何撰寫 test case、各式測試及監控工具等等知識是必要的。面試時很有可能就會給你一個情境,然後詢問你要如何針對某個 function 或功能撰寫 test case、要考慮什麼極端情況、如何做壓力測試等等問題。 -
Coding
除了測試相關能力外,要撰寫自動化測試,coding 的能力亦是是必不可少的,因此面試時也會有很大機率碰到 coding test。在我看來,coding test 除了考察面試者的程式能力之外,更是在考察面試者能否將自己的邏輯清楚的講述,展現自己思考的脈絡,這一點是在未來職場與其他工程師合作不可缺少的能力。除此之外,身為一名 QA 工程師,你更是要在解題的同時思考要如何將 code 優化、如何針對你寫的 code 撰寫測試等問題。 -
Project
Side Project 也是我認為面試者可以積極準備的一個方向,軟體工程的世界是非常實作導向的,side project 除 了是提升個人開發經驗的極佳方法外,也能夠向面試官展現自己的技術及能力。然而雖然大家都知道 side project 很重要、要做 side project,那到底要怎麼開始呢?
相信我,如果你真的對開發有著無限的熱忱,那你就不會問出這個問題,而是早已經開發出一些小工具、撰寫技術文章、或是在網上找到各種 open source 的東西開始玩了。可惜,你不是這種人,我也不是 XD,上班上課已經夠累了,空閒時間我只想要好好放鬆,那要怎麼辦呢?
我認為可以從選課以及社團兩方面下手,例如盡量找一些學期末必需要實作出專案的課程及社團,畢竟如果自己沒有辦法監督自己的話,那就靠別人吧!
Life as a LINER
說了這麼多,那究竟為何我會選擇加入 LINE 呢?
除了活潑友善的公司氛圍、一群年齡相仿的 TECH FRESH 同事、超棒的 Team Building 活動之外。LINE 身為一間跨國企業,其組織規模龐大且制度完善,這點也反應在工程團隊上。很多軟體公司只是單純將 QA 當作「測試工程師」,主要的工作只是簡單的開 test case、執行手動測試、碰到 bug 時開單給工程師而已,但在 LINE,你能完整接觸到 scrum、CI/CD、monitoring、api 串接等各方面的知識,而這些對 QA 的未來職涯發展是十分有用的,也是我最終選擇加入 LINE 的原因。
結語
以上即是我個人的一些心得總結,希望能夠幫助到所有對 QA 有興趣的同學,期待之後能夠與各位在 LINE 相見,謝謝。