# 關於我從拍片仔轉職 QA 的那件事 ## 前言 大家好,我是 Lawrence Tsai,現為 LINE Travel 的 QA 工程師。很榮幸有機會與 GDSC 的各位分享在 LINE 的工作與生活經驗。 究竟大學主修傳播的我是如何來到 LINE 實習?QA 的工作有哪些?我又是如何準備面試的?就讓我們一起看下去... ## 介紹 ### LINE Travel 在開始前,我想先跟大家介紹一下 LINE Travel 服務,LINE Travel 是一個綜合性的旅遊服務平台,提供旅遊相關資訊和訂票服務,用戶可以利用 LINE 官方帳號或是網頁平台進入 LINE Travel。 以下是 LINE Travel 提供的一些主要功能: 1. 旅遊資訊:LINE Travel 提供豐富的旅遊資訊,包括熱門旅遊景點、旅遊行程、當地美食、交通資訊、天氣預報等,幫助使用者計畫旅遊行程。 2. 機票:使用者可以透過 LINE Travel 訂購機票,包括國內航班和國際航班。使用者可以比較不同航空公司的價格和航班時刻表,並進行訂購和付款。 3. 住宿:LINE Travel 提供訂房服務,使用者可以預訂國內和國際的飯店、民宿、度假村等,並比較不同住宿選項的價格和評價,進行訂房和付款。 4. 體驗:使用者可以在 LINE Travel 上找到各式體驗行程。 5. 跟團:LINE Travel 亦提供世界各地的跟團旅遊服務。 6. 旅遊相簿:使用者可以在 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。 1. Test automation:這是工作中最主要的部分,涵蓋模擬使用者使用路徑的 E2E testing、測試 response schema 和 status 的 api testing、測試極端情況下程式運作能力的壓力測試等等。在 LINE Travel 團隊中,自動化測試主要用兩大框架,分別是 Cypress 和 Playwright。 2. CI/CD:通過將產品的構建、測試及部署自動化,軟體開發流程可以大大加速,code 有問題時也能即時發現並修復。因此撰寫 CI/CD pipeline、了解相關工具也是 automation engineer 的職責之一,LINE Travel 團隊主要使用 Jenkins、Drone、GitHub Actions、ArgoCD 等工具。 3. Monitoring:在產品發佈之後,後續的監控亦是十分重要,對 dashboard 數據的觀察以及 alert 的處理也是平常工作的項目。 ### How did I prepare interview?  聊了這麼多,那究竟要如何成為 LINE 的 QA 工程師,我又為了面試做了哪些準備呢? 我認為可以從三個面向著手: 1. Testing QA 最重要的工作仍然是測試,因此了解測試流程與種類、如何撰寫 test case、各式測試及監控工具等等知識是必要的。面試時很有可能就會給你一個情境,然後詢問你要如何針對某個 function 或功能撰寫 test case、要考慮什麼極端情況、如何做壓力測試等等問題。 2. Coding 除了測試相關能力外,要撰寫自動化測試,coding 的能力亦是是必不可少的,因此面試時也會有很大機率碰到 coding test。在我看來,coding test 除了考察面試者的程式能力之外,更是在考察面試者能否將自己的邏輯清楚的講述,展現自己思考的脈絡,這一點是在未來職場與其他工程師合作不可缺少的能力。除此之外,身為一名 QA 工程師,你更是要在解題的同時思考要如何將 code 優化、如何針對你寫的 code 撰寫測試等問題。 3. 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 相見,謝謝。
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.