$30 off During Our Annual Pro Sale. View Details »

軟體品質不只測試: LINE QA團隊分享

軟體品質不只測試: LINE QA團隊分享

Event: 2023-03-17 清大資工「軟體專案管理」企業參訪@熊大廣場
Speaker: Jeris Lee

LINE Developers Taiwan
PRO

March 17, 2023
Tweet

More Decks by LINE Developers Taiwan

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

  4. 1. 淺談Quality Assurance品質保證

    View Slide

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

    View Slide

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

    View Slide

  7. 測試左移 Shift Left

    View Slide

  8. 2. LINE TW的軟體開發流程

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  12. 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

    View Slide

  13. 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的條件

    View Slide

  14. 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 等等活動來找可能的問題

    View Slide

  15. 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

    View Slide

  16. 4.使用的自動化與工具

    View Slide

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

    View Slide

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

    View Slide

  19. Realtime Data Dashboard

    View Slide

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

    View Slide

  21. Q & A

    View Slide

  22. THANK YOU

    View Slide