Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

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

  • Login to see the comments

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

  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

×