Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

為了推動自動化測試,你付出了多少?

自動化測試的導入,其實也是工程文化中的一項變革
導入敏捷,總不可能與自動化測試脫勾。
讓團隊撰寫自動化測試並不是 Agile 的目的,但卻是把品質的主控權交回團隊手中的必要手段之一。
不過往往很多人的困擾卻是「在團隊裡面推不動」、「專案時間很趕沒時間寫測試」、「測試寫多了很難維護」等等
推動變革總會歷經波折,那麼從團隊裡面只有一兩人在寫測試,演變到全Team寫測試,其中又有哪些推力在作用呢?
這次想跟大家聊聊在推動自動化測試的各個階段中,可以為團隊所做的事。
How to promote auto test.

  • Soyez le premier à commenter

為了推動自動化測試,你付出了多少?

  1. 1. 為了了推動⾃自動化測試, 你付出了了多少? Zen@ AgileTour HsinChu 2019.12
  2. 2. Who is Zen ? ! I am from Macau ! Back-end Engineer/ TDD promoter/ Facilitator ! 擅長⾃自動化測試, TDD/BDD ! 現職 TenMax AdTech Lab 騰學廣告科技 ! 4yrs+ Scrum exp ! AgileTour Taipei speaker (2018,2019)
  3. 3. 團隊不寫 Test 該怎麼辦?
  4. 4. Agenda ● 如何看待「團隊不寫⾃自動化測試」 ● 推動⾃自動化測試,變⾰革的4個階段 ● 如何推動變⾰革 ● summary
  5. 5. 「為甚麼總是不寫 Test 呀?」
  6. 6. 臺北站
  7. 7. 臺北站
  8. 8. 當你問 「為甚麼⼤大家總是不寫呀」的時候 你是真的想知道為甚麼嗎?
  9. 9. 推論階梯
 (Ladder of Inference) 七個階段: 「觀察」 「過濾資訊」 「賦予意義」 「假設」 「作出結論」 「調整看法」 「作出⾏行行動」
  10. 10. 團隊裡的成員不寫 Test 我已經講過寫測試很重要了了 不寫是因為不重視品質 ⼤大家太懶懶惰了了 要定⼀一些KPI ⼤大家follow code coverage
 要達到80% 以上 ! 有沒有試著開始寫? 是否有遇到阻礙? 可能沒有寫出
 有效測試的經驗 先知道⼤大家寫 test 的程度 下個sprint安排 
 pair programming Their responsibility 【Blame】 My responsibility 【Help】
  11. 11. 「為甚麼不寫Test」 背後的原因
  12. 12. 變⾰革的4個階段 推動導入⾃自動化測試 -- 變⾰革
  13. 13. 否認期 抗拒期 探索期 承諾期
  14. 14. 否認期 不願⾯面對的真相
  15. 15. 否認期 - 「user 應該不會這樣使⽤用」 - 「我就改這個地⽅方⽽而已」=> 「應該不會影 響到別處」 - 「我是來來負責開發功能的,不是來來當 QA 的」 - 只要滿⾜足某些假設,就不是個問題 特徵: ⾃自欺欺⼈人、⾃自信 ⼼心存僥倖、對問題視⽽而不⾒見見
  16. 16. 抗拒期 跳出舒適圈前的掙扎
  17. 17. 抗拒期 - 「只有⼀一樣的時間,為甚麼要做更更多 事?」 - 「都是 legacy code 造成的,只能follow」 - 「已經有 QA 幫我們把關了了」 - 「寫測試⼜又不能賺錢 」 特徵: 恐懼與抗拒 安於現狀狀 ,陽奉陰違
  18. 18. 有寫就好 High Coverage, But no protection
  19. 19. ⾝身陷抗拒期的泥沼 我早說了了 ... - 寫測試不能賺錢 - 寫測試拖慢進度 - 產品不賣是因為: - Idea 不 work - QA 能⼒力力不⾜足 - User 不識貨 - Marketing 不給⼒力力
  20. 20. Agile doesn’t work
  21. 21. 探索期 暨期待⼜又害怕受傷害
  22. 22. 探索期 - 「怎樣寫比較好?有沒有更更好的寫法?」 - 「這段這樣寫 之後好像沒辦法寫測試」 - 「甚麼是 isolation ?」 - 「原來來還有這麼棒的寫法!」 - TDD 特徵: 試驗,探索未知 好奇、焦慮、撞牆
  23. 23. 承諾期 能⼒力力越⼤大 責任越⼤大
  24. 24. 承諾期 - 「這個 test 還有更更簡短的寫法」 - 「這樣寫其他⼈人應該能讀得懂」 - 「如何能讓其他⼈人也能⼀一起維護?」 - 「沒有寫 test,不敢 commit」 - 「Test fail 導致 build break,要先修好」 - 品質穩定度上升 特徵: 被認同,新挑戰 ⾃自主、分享成果、幫助他⼈人
  25. 25. 團隊讓⼈人信任 ⼈人緣變好
  26. 26. 否認期 抗拒期 探索期 承諾期 能量量曲線
  27. 27. 每個階段的 需要 / 不需要
  28. 28. 否認期 - 財務損益 - user 流失率 - 客訴內容 - 流量量、收益 需要:資訊 - 產品品質 - Bug/Exception reports - 長尾處理理時數,佔開發的總時數 XX% - 每⽉月hotfix次數 - Release 頻率 - 外⾯面的世界
  29. 29. Cost of test Sprints Sp1 Sp2 Sp3 Sp4 Sp5 Sp6 Sp7 Code changed Existing Refactor New Member
  30. 30. 90 => 250 cases 4h => 1.5 Day
  31. 31. 否認期 不需要:隱瞞 - 「我們很好」 - 「只要⽤用⼀一樣的⽅方式繼續努⼒力力下去就能成 功」
  32. 32. 抗拒期 - 吐露不想再⼿手動測試的⼼心聲 - 富「告別式意義」的 Retro - ⾯面對品質低落落,檢討現狀狀 - 肯定過去努⼒力力 - 擔負產品的主⼈人 - 「這是你的⼩小孩」 - 沒有廚師是不先⾃自⼰己試味道 需要:告別式 動之以情 對過去的依戀 對舒適圈的依賴
  33. 33. 抗拒期 不需要:被Push、被說教 - 跟情緒低落落的⼈人講道理理 - 「你不懂我的難處」 - 造成距離感、對立
  34. 34. 探索期 - ⽀支持 - 學習寫測試,對付出的過程給予肯定 - Feedback - 寫出來來的測試code,針對結果給予回饋 - 怎樣寫可以更更好、可以更更有可讀性 - 新知識 - 外部訓練 - workshop - 試錯空間 - Test-sensibility 需要時間累積 需要:
  35. 35. 探索期 不需要:被質疑 - 「你這麼利利害那都給你寫就好」 - 「改來來改去的,我⼿手動測還比較快」 - 找理理由合理理化⾃自⼰己「不適合寫test」 - 還沒有成果,感到吃⼒力力不討好
  36. 36. 技術⾯面: 建立共識 探索期 實務
  37. 37. Coding Convention - 精⼒力力花在測試的邏輯上,⽽而不是 花在命名跟讀code上
  38. 38. ⼀一致的 - Naming rule - Structure
  39. 39. from Clean Code Ch#9 是甚麼造就了了⼀一個整潔的測試? 三件事,可讀性、可讀性,還是可讀性。可讀性,在單元測試裡可能比在產品程式裡還要重要。 Readability
  40. 40. 技術⾯面: 降低⾨門檻 探索期 實務
  41. 41. 築起鷹架 - 簡化的 setup - 為 Business 封裝 好的 library - best_practice.md
  42. 42. 承諾期 需要: - 被需要 - 希望促成團隊⽂文化 - 成果被肯定 - service downtime 統計 - hotfix, 插單的減少 - 同儕間的肯定
  43. 43. 承諾期 不需要:被指導 - 已有 ⾃自組織意識
  44. 44. 刻意練習 承諾期 實務
  45. 45. 促成
 團隊⽂文化 Test Pair/Mob
 Code review Fix ASAP CI/CD Retro
  46. 46. Neil
  47. 47. 3 yrs 2015 2019 ⼿手動測試 2017 開 始 嘗 試 寫 測 試 2018 外 訓 Internal prom otion Agile M eetup
 sharing Pair/Mob
 Code review ⼤大量量重構 Test framework upgrade 否認期 抗拒期 探索期 承諾期 2016
  48. 48. Recap
  49. 49. 他⼈人責任 vs 我的責任
  50. 50. 否認期 抗拒期 探索期 承諾期 變⾰革的4個階段
  51. 51. 變⾰革中那些重要的事... 抗拒期 - 動之以情 - 告別式 否認期 - 事實與真相 探索期 - 降低⾨門檻 - 建立共識 承諾期 - 刻意練習 - 尋找新挑戰 - 促成團隊⽂文化
  52. 52. 我的團隊正處在哪個階段? 我可以怎樣幫助團隊做得更更好?
  53. 53. 如果你現在跑敏捷的⽅方式, 跟⼀一年年前差不多, 那麼你可能不是那麼敏捷 --- by ???
  54. 54. END.
  55. 55. Appendix - Email me: zen0106[at]gmail.com - My Medium: zen’s iteration - 淺談⾼高效撰寫單元測試 slide post - How to write a readable unit test - 學TDD、外訓 請找 91哥 - 91敏捷之路路 - 敏捷宮廷中的測試攻略略 slide - [DevOps meetup] 從研發團隊管理理及產品發展的⾓角度看DevOps - 想了了解 TenMax ⼯工程⽂文化,請找 Richard Hsiao

×