Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

Software Development Process v1.5 - 20121214

Avatar for Rick Hwang Rick Hwang
December 14, 2012

Software Development Process v1.5 - 20121214

Avatar for Rick Hwang

Rick Hwang

December 14, 2012
Tweet

More Decks by Rick Hwang

Other Decks in Education

Transcript

  1. Smoke Test Prepare Test Environment FVT SLD / FR Test

    Plan Bug Fix SVT/TVT/PT RT Dev SQA Code Freeze Developer: • SLD: System Level Design (Architect) • FR: Function Requirement (Architect) • CLD: Component Level Design (Comp. Owner) • DCUT: Code Level Design, Coding, and Unit Test (PG) • SDC: Small Design Change Prototype (Alpha Release) Time Beta Release RC (Release Candidate) GA (General Availability) Software Development Process Build/CI Evaluate Schedule Prepare Build/CI Kickoff QA/Tester/SDET: Test Plan: depends on SLD (QA Lead) Test Spec: depends on CLD (QA Component Owner) FVT: Functional Verification Test SVT: System Verification Test • Platform / Browser • Performance / Stress Test TVT: Translation Verification Test PT: Performance Test RT: Regression Test – rerun FVT: Zero Defect CI: Continuous Integration ART: Automation Regression Test Test Spec High Level Requirement Boss Marketing Customer SDC CLD Evaluate Schedule Release Engineering: CI: Continuous Integration Build Process Release Process Design, Coding, and Unit Test Test Spec Review 2
  2. SDC FVT SVT/TVT/PT Smoke Test Prepare Test Environment FVT Test

    Plan SVT/TVT/PT RT SQA Time Test Spec Design, Coding, and Unit Test Test Spec Review SLD / FR Dev Code Freeze CLD Time SLD: System Level Design 1. 定義產品需求 2. 產品規格 3. 應用範圍 – See SVT FR: Function Requirement / Feature 1. 功能需求 / 特色 2. Resource and Schedule Test Plan 1. Review SLD / FR 2. Resource and Schedule 3. Test Plan Document 3
  3. FVT SVT/TVT/PT Smoke Test Prepare Test Environment FVT Test Plan

    SVT/TVT/PT RT SQA Time Test Spec Design, Coding, and Unit Test Test Spec Review SLD / FR Dev Code Freeze CLD Time CLD: Component Level Design 1. 依照 FR 所需, 描述功能的流程細節 2. 如何單元測試 (Unit Test) 3. 測試建議 (Functional Verification Test) 4. 設定與參數 (Configurable) 5. 其他: 影響的 Component, API, Performance … etc Test Spec 1. Review CLD with Developer 2. Steps, verification point (VP) 3. Test spec review - developer 圖比表好 表比文好 白紙黑字 追蹤記錄 4
  4. CLD Template … 精簡版 • Functional Description – 功能,流程,錯誤處理 •

    Unit Test – 怎麼確認已經好了?聯調? • Function Verification Test – 建議SQA怎麼測 • Impacts to Configuration – build,測試設定 6
  5. CLD Owner … • 負責CLD撰寫, 維護 • 功能細節與各個 Team Leader

    協調 – Server / App / Agent / Web / SQA team leader • 遇到功能重大疑問, 需要向上反映 • 大功能要一定要寫, ex: CDA 8
  6. FVT SVT/TVT/PT Smoke Test Prepare Test Environment FVT Test Plan

    SVT/TVT/PT RT SQA Time Test Spec Design, Coding, and Unit Test Test Spec Review SLD / FR RD Code Freeze CLD Time Build/CI DCUT: Design, Coding, and Unit Test 1. Code level design: structure, configuration, pattern 2. Revise CLD and FR 3. Build procedure (co-work with release engineer) 4. Unit Test 5. Configurable and Installable Preparation: 1. Installation and configuration 2. Scope / combination / platform 3. Test program Start daily build 11
  7. DCUT: Design, Coding, and Unit Test SLD / FR CLD

    / DCUT Revise, Clarify developers Architect 12
  8. FVT SVT/TVT/PT Smoke Test Prepare Test Environment FVT Test Plan

    SVT/TVT/PT RT QA Time Test Spec Design, Coding, and Unit Test Test Spec Review SLD / FR Dev Code Freeze CLD Time Prototype (Alpha Release) Build/CI 1. Tech Preview (TP) 2. Marketing Demo 3. SDC: Small Design Change 15
  9. FVT SVT/TVT/PT Smoke Test Prepare Test Environment FVT Test Plan

    SVT/TVT/PT RT SQA Time Test Spec Design, Coding, and Unit Test Test Spec Review SLD / FR Dev Code Freeze CLD Time FVT: Functional Verification Test, 依據 Test Spec 執行 Bug track and resolve: Team Room / Mantis ER: Execution Record, 測試的執行紀錄 Code change practice: 避免side effect Daily / Nightly Build 16
  10. 如何有效的錯誤報告 • 寫得清楚是錯誤報告的基本. 如果程式師看 不懂你的意思, 報告有寫等於沒寫. – 要明確 – 要詳細

    – 要小心代名詞 – 閱讀自己寫的東西 如何有效地報告錯誤 (How to Report Bugs Effectively by by Simon Tatham) 英文版: http://www.chiark.greenend.org.uk/~sgtatham/bugs.html 繁體中文版: http://www.chiark.greenend.org.uk/~sgtatham/bugs-tw.html 簡體中文版: http://www.chiark.greenend.org.uk/~sgtatham/bugs-cn.html Putty 作者 17
  11. 提問的智慧 • 提問之前: 讀手冊, FAQ, google • 使用含義豐富, 描述準確的標題 

    標題很 重要 • 精確描述,信息量大 • 話不在多 提問的智慧 (How To Ask Questions The Smart Way by Eric S. Raymond) 原文版: http://www.catb.org/esr/faqs/smart-questions.html 中文版: http://mis.ndhu.edu.tw/docu/question.htm 18
  12. Report Template - English [Precondition] -- optional Precondition for this

    issue. [How to reprocedure the problem] 1. install APP form AppStore 2. open miSecurity with 886929168168/12345678 3. goto video view, and click the active device [Expected result] The video should be transferred immediately. [Actual result] The exception occurs. [Spec and CLD] -- optional Spec P.53: Title ... 20
  13. Resolved Template … [Root cause] -- 原因, 哪裡的問題 short description

    for root cause [Solution] – 怎麼解決 how to fix and solution. [Fix revision] r17464 22
  14. Bug的輕重緩急 Status Severity Priority 很重要, 很急 Critical Urgent 很重要, 不急

    Block Low 不重要, 很急 Minor Urgent 不重要, 不急 Minor Low 25
  15. FVT SVT/TVT/PT Smoke Test Prepare Test Environment FVT Test Plan

    SVT/TVT/PT RT SQA Time Test Spec Design, Coding, and Unit Test Test Spec Review SLD / FR Dev Code Freeze CLD Time Beta Release 1. In other words is prototype 2. Tech preview (TP) 3. Marketing demo 30
  16. FVT SVT/TVT/PT Smoke Test Prepare Test Environment FVT Test Plan

    SVT/TVT/PT RT SQA Time Test Spec Design, Coding, and Unit Test Test Spec Review SLD / FR Dev Code Freeze CLD Time SVT: System Verification Test • Platform: • Android: 2.3.x, 3.x, 4.x • iOS: 4.3, 5.x, 6.x • Browser: IE, FF, Chrome …. 31
  17. FVT and SVT • FVT 假設功能都還沒Ready – 重點: 驗證功能的正確性是否符合CLD and

    FR – 功能都 Ready 可稱之 Beta Version • SVT 假設功能已經Ready – 重點: 環境對功能的影響 – SVT 在SLD/FR階段就要定義清楚 42
  18. FVT SVT/TVT/PT Smoke Test Prepare Test Environment FVT Test Plan

    SVT/TVT/PT RT SQA Time Test Spec Design, Coding, and Unit Test Test Spec Review SLD / FR Dev Code Freeze CLD Time We are here 45
  19. PT: Performance Test • FVT 沒過走 PT 表示你活膩了 • DCUT

    • FVT • Execution • Network Traffic • Configuration • Resource management 47
  20. FVT SVT/TVT/PT Smoke Test Prepare Test Environment FVT Test Plan

    SVT/TVT/PT RT SQA Time Test Spec Design, Coding, and Unit Test Test Spec Review SLD / FR Dev Code Freeze CLD Time • Full FVT, Automation, Zero bug • Code Freeze • Next Phase Preparation – SLD/FR ready SLD / FR CLD Current Phase Next Phase 48
  21. RT: Regression Test • Full FVT, 仰賴自動化 • 驗證曾經出現的Bug …..

    Mission impossible • Zero bug – Issue move to next phase • Code Freeze • Next Phase Preparation – SLD/FR ready – New branch – Maintenance team 50
  22. 52

  23. RT: Regression Test 另一個常出現的地方: Software Maintenance Process FVT RT Release

    loop 僅維護, 修Bug, 不加 Feature 像是M$ Win7 Hotfix IBM Fix Pack 53
  24. FVT SVT/TVT/PT Smoke Test Prepare Test Environment FVT Test Plan

    SVT/TVT/PT RT SQA Time Test Spec Design, Coding, and Unit Test Test Spec Review SLD / FR Dev Code Freeze CLD Time We are here GA (General Availability) 54
  25. FVT SVT/TVT/PT Smoke Test Prepare Test Environment FVT Test Plan

    SVT/TVT/PT RT SQA Time Test Spec Design, Coding, and Unit Test Test Spec Review SLD / FR Dev Code Freeze CLD Time GA (General Availability) Release: GA 56
  26. Smoke Test Prepare Test Environment FVT SLD / FR Test

    Plan Bug Fix SVT/TVT/PT RT Dev SQA Code Freeze Prototype (Alpha Release) Time Beta Release RC (Release Candidate) GA (General Availability) Software Development Process Build/CI Evaluate Schedule Prepare Build/CI Kickoff Test Spec High Level Requirement Boss Marketing Customer SDC CLD Evaluate Schedule Design, Coding, and Unit Test Test Spec Review Developer & SQA 以外的, 是啥鬼? Release Engineering: Build Process Release Process 58
  27. Release Engineering • Role: Release engineer (IT/System background) • Operation

    / Support – Report to PM or IT Manager • Mission and responsibility: – Maintain build process: regular, special, debug, configuration, scripts – Perform release Process 59
  28. Standard Build Process SVN Build scripts Build Site Notify result

    Check out Developer : provides procedure and toolchain & libraries Release engineer: complete build scripts and configuration ALWAYS check out full source tree. It’s for SW All members. 61
  29. Standard Build Process • BVT: Build Verification Test • BVT是測試的程序之一

    • BVT-Fail 要當天Fix, build script有問題亦是. • DCUT 階段build process有更動, Developer必 須告知Release Engineer • Build以 “天” 為單位, called ‘daily build’ or nightly build 62
  30. Software Release Process Process Build Bind Product Tag Sign Key

    Qualify and Ready 代號, 階段, 等識別, ex: RC, Beta, Gold, GM … etc Deployment Submit Apple Store / Google Play Deliver for MP Ship (CD, FTP) Fail SVN Branches  Maintenance Process SVN Tags  Backup SVN Trunk  Next Phase new feature Change Version 74
  31. 80

  32. Development and Testing RD dept Sales / IT Release Time

    Software Product Operation IT: Deployment Sales / RMA FR Development and Testing Release FR Maintain Release Maintain Release Phase 1 Phase 2 Maintenance Team 82