Slide 1

Slide 1 text

軟體品質不只測試 LINE QA團隊分享 TW QA / Jeris Lee 2023.03.17 @ LINE Taiwan

Slide 2

Slide 2 text

Jeris Lee Service QA Engineer • Tech enthusiast • QA Automation Engineer • 5 years QA experience • Client Android/iOS App Testing

Slide 3

Slide 3 text

01 02 03 04 05 Contents 淺談Quality Assurance 品質保證 LINE TW的軟體開發流程 軟體品質我們做的努⼒ 使⽤的⾃動化與⼯具 Q & A

Slide 4

Slide 4 text

1. 淺談Quality Assurance品質保證

Slide 5

Slide 5 text

什麼是Quality Assurance (QA) 軟體品質不只是測試 🗒 Definition • 防⽌製造的產品出現錯誤 和缺陷 • 避免在交付產品或服務時 出現問題的⽅法 👨💻 QA Engineer - 確保產品的品質 - 確認產品符合需求 - 對產品做測試/找出問題 - 透過各種⽅法減少問題 的發⽣

Slide 6

Slide 6 text

QA vs. QC Quality Assurance • 從事前開始的 • 預防發⽣瑕疵 • 是否正確⽅法 Quality Control - 從事後開始的 - 檢查成品瑕疵 - 是否正確產品

Slide 7

Slide 7 text

測試左移 Shift Left

Slide 8

Slide 8 text

2. LINE TW的軟體開發流程

Slide 9

Slide 9 text

Scrum Process • Planning • Daily • Refinement • Review • Retrospec5ve • Release/Deployment 1-2 Weeks Sprint Period

Slide 10

Slide 10 text

Stages of Software Development 軟體開發流程 Planning & Design Implement & Develop Testing & Validate Release & Monitor 💡 👨💻 📋 📈

Slide 11

Slide 11 text

3.軟體品質我們做的努力

Slide 12

Slide 12 text

Planning & Design What QA have to do in this stage? Planning & Design Implement & Develop Testing & Validate Release & Monitor A B C 確認⽬的與需求 - 與Product Owner 釐清需求的細節和預期的結果 -與UX/UI Designer 討論使⽤性和流程 討論產品設計架構與流程 -與Dev討論開發的API/系統架構/資料流程/使⽤⼯具/潛在風險等 設定完成條件與測試計畫 -與團隊討論確保每個需求都有明確Acceptance Criteria -建立基本的測試驗證計畫 ex: test mindmap

Slide 13

Slide 13 text

Implement & Develop What QA have to do in this stage? Planning & Design Implement & Develop Testing & Validate Release & Monitor A B C 建立測試案例和資料 - 建立測試案例並與團隊討論Review - 準備測試資料並使⽤Mock Server等⼯具 開發⾃動化測試案例 - 與Dev討論⾃動化測試的驗證⽅向 - 開發API/UI 等等的⾃動化測試 - 針對必要項⽬設計Load Test/Performance Test 確保PR驗證通過測試 - 每個PR都必須通過Unit Test 和 Static Code Scan - 不同團隊會有不同PR Merge的條件

Slide 14

Slide 14 text

Testing & Validate What QA have to do in this stage? Planning & Design Implement & Develop Testing & Validate Release & Monitor A B C 執⾏⼿動測試 - 針對Feature按照Test Case做⼿動測試 - 確認功能邏輯符合Spec ⾃動化測試 - 針對新功能做測試 - 既有功能透過⾃動化測試確保,減少⼿動Regression時間 - 針對開發完的產品在測試環境執⾏Load Test/Performance Test 探索性測試 - 透過Exploratory Test / Bug Bash 等等活動來找可能的問題

Slide 15

Slide 15 text

Release & Monitor What QA have to do in this stage? Planning & Design Implement & Develop Testing & Validate Release & Monitor A B C CI/CD 持續整合交付 - 使⽤各式CI/CD⼯具來達成one pipeline - Ex Jenkins/GitHub Action/Drone/ArgoCD…等等 Release前的檢查與確認 - 透過不同的checklist與環境確認,確保交付產品的正確性 - Ex: Nginix Rules/CDN Config/DB Script …等等 測試右移的追蹤和監控 - Release後針對軟體的即時數據log/health check追蹤,確保無重⼤問題產⽣ - Release後的Defect/Bug Review

Slide 16

Slide 16 text

4.使用的自動化與工具

Slide 17

Slide 17 text

Various Automation Help us reduce testing time and raise product quality E2E/API Automation CI/CD Pipeline Tools & Gadgets Load & Stress Test Realtime Monitor

Slide 18

Slide 18 text

Automation Tool We Use E2E/API Automation API/Performance Tools/CICD

Slide 19

Slide 19 text

Realtime Data Dashboard

Slide 20

Slide 20 text

軟體品質不只是測試 軟體品質是整個團隊的責任 影響品質很多時候是流程的品質和⽅法, ⽽不是你⽤了什麼測試⼯具或是語⾔

Slide 21

Slide 21 text

Q & A

Slide 22

Slide 22 text

THANK YOU