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.

Bdd atdd sbe_tdd_ddd_published

1 757 vues

Publié le

SBE(Specification By Example)、BDD(Behavior Driven Development)、ATDD(Acceptance Test Driven Development)、TDD(Test Driven Development)和DDD(Domain Driven Development)是敏捷開發方法中經常聽到的幾個相關概念。在本次活動中Teddy將在公堂之上大膽假設一下這些概念彼此之間的關係,並以實際例子簡單驗證之。

Publié dans : Logiciels
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici

Bdd atdd sbe_tdd_ddd_published

  1. 1. Teddy Chen teddy@teddysoft.tw http://teddy-chen-tw.blogspot.tw/ March 23 2017
  2. 2. Copyright@2012-2017 Teddysoft
  3. 3. Copyright@2012-2017 Teddysoft 《威龍闖天關》
  4. 4. Copyright@2012-2017 Teddysoft SBE ATDD BDDTDD 2002 2002/ 2004 2003/ 2009 2009 20142009 20122011 Gojko Adzic Kent Beck Dan North 2003 Eric Evans 2002 2007 SBE vs. DBC
  5. 5. Copyright@2012-2017 Teddysoft Write a failing unit test Make the test pass Refactor (Classic) TDD Write a failing acceptance test (Modern) TDD = BDD = SBE = ATDD 1 2 3 0 (Classic) BDD/ATDD/SBE
  6. 6. v Copyright@2012-2017 Teddysoft TDD BDD SBE ATDD xUnit/RSpec/Spock JBehave/Cucumber/SpecFlow Mouth Fit/Fitness/Robot Framework TDD BDD SBE ATDD xUnit JBehave/Cucumber/SpecFlow Mouth Fit/Fitness/Robot Framework ToolsModern Classic Tools
  7. 7. Copyright@2012-2017 Teddysoft ATDD BDD SBETDD 給我一個A 我不喜歡T 我不喜歡D
  8. 8. Copyright@2012-2017 Teddysoft
  9. 9. • 隨著時間演進: –TDD=ATDD=BDD=SBE 能力向上提升 • 類似現象在生活中也很常見: –國x黨=民x黨=共x黨=金光黨 口袋越來越深 Copyright@2012-2017 Teddysoft
  10. 10. Copyright@2012-2017 Teddysoft 《威龍闖天關》
  11. 11. Copyright@2012-2017 Teddysoft
  12. 12. 為了 創造宇宙繼起之生命 尋找男女朋友, 身為大學生, 我想要參加校際聯誼活動 Copyright@2012-2017 Teddysoft
  13. 13. • 參加資格: – 18~25歲的未婚男女 – 在學學生 • 找誰: – 慈濟大學護理系? – 銘傳大學企管系? – 台大電機系? – 25歲又13個月? – 正在辦離婚手續? – 未婚有小孩? – 40歲美魔女但看起來像20歲? – … Copyright@2012-2017 Teddysoft Specifications Examples
  14. 14. • Specifications are rules – 抽象 • Examples are concrete instances of specifications – 具體 • Specifications + Examples = ? Copyright@2012-2017 Teddysoft acceptance tests
  15. 15. Copyright@2012-2017 Teddysoft 法官內心獨白: 有教化的可能
  16. 16. Copyright@2012-2017 Teddysoft 警察內心獨白: 我們以前都這樣啊
  17. 17. Copyright@2012-2017 Teddysoft acceptance tests
  18. 18. Copyright@2012-2017 Teddysoft Specification Example 1. Deriving scope from goals 2. Specifying collaboratively 3. Illustrating using examples 4. Refining the specification 5. Automating validating without changing specifications 6. Validating frequently 7. Evolving a documentation system 《SBE》 Goal 1 2 3 4 AT automation (executable specification) 5 6 Living Doc 7
  19. 19. • 價值來自於 – 產品做對: Do the right thing (what) – 品質做好: Do the thing right (how) • SBE可協助交付價值 – 套用在需求面 (business facing) • Define specifications for requirements (do the right thing) – 套用在實作面 (technology facing) • Define specifications for implementation (do the thing right) Copyright@2012-2017 Teddysoft
  20. 20. Copyright@2017 Teddysoft Write a failing unit test Make the test pass Refactor (Classic) TDD Write a failing acceptance test 1 2 3 0 《BDD in Action》
  21. 21. Copyright@2017 Teddysoft 《BDD in Action》 從敏捷需求看BDD 1 2 3 4 BDD 敏捷需求
  22. 22. Copyright@2017 Teddysoft 《BDD in Action》 3 4 5 從 實 作 看 BDD
  23. 23. Copyright@2017 Teddysoft 《BDD in Action》 從工具看BDD 1 2 3 4 5
  24. 24. Copyright@2017 Teddysoft 《BDD in Action》 從活的文件看BDD
  25. 25. Copyright@2012-2017 Teddysoft TODO: 從目標 推導出功能
  26. 26. Copyright@2017 Teddysoft FOR 泰迪軟體員工 WHO 想要減少開課流程的行政作業手續、時間與錯誤 THE lazyTS 是一個課程管理系統 THAT 讓員工簡單且快速的瀏覽與管理課程和學員,並 協助員工在課前、課中與課後提供學員服務 UNLIKE 其他的課程管理系統, OUR PRODUCT 儘量各自獨立,讓員工可以單獨使用他 所需要的特定功能 減少作業時間與錯誤 增加滿意度 增加回購率 Vision Goals
  27. 27. Copyright@2017 Teddysoft 減少作業時間 與錯誤 泰迪軟 體員工 Why (Value) 學員 助教 Who How (Capability, Impact) What (Feature, Deliverable) 減少手動錯誤 增加自動化 自動產生結業證書 無腦開發票 自動產生上課簽到表 自動寄發通知 報名成功通知 開課成功通知 繳費成功通知 催繳通知 課前通知 課後通知 三聯發票 二聯發票 統編帶出公司 公司帶出統編 自動產生發票簽收單 2017/4/15開課,招生中XD
  28. 28. Copyright@2017 Teddysoft
  29. 29. Copyright@2017 Teddysoft
  30. 30. Copyright@2017 Teddysoft
  31. 31. Copyright@2012-2017 Teddysoft ✔ ✔ TODO: 探索實例
  32. 32. Copyright@2012-2017 Teddysoft Feature: Issuing invoices for companies In order to avoid errors As a Teddysoft employee I want to brainlessly issue an company invoice with tax included price Scenario: Issuing invoices with one item for companies by providing tax included prices Given The VAT rate is 0.05 And the tax included price is 17000 When I issue a company invoice Then I should see the VAT is 810 And the tax excluded price is 16190
  33. 33. Copyright@2012-2017 Teddysoft # language: zh-TW 功能: 產生課程結業證書 劇本大綱: 成功產生證書 假如 學員 <name> 在 <year> 年 <month> 月 <day> 日參加 <course> 而且 課程時數為 <hour> 小時 當 我產生一張結業證書 那麼 我應該看到結業證書pdf檔案 例子: | name | year | month | day | course | hour | | 宮成思 | 2017 | 05 | 6,7 | Scrum敏捷方法實作班 | 12 | | 歐歐皮 | 2017 | 03 | 18,19,25 | Design Pattern入門實作班 | 18 | | 思光 | 2017 | 04 | 15 | 使用者故事對照工作坊 | 18 |
  34. 34. Copyright@2012-2017 Teddysoft ✔ ✔ TODO: 定義與實作 Step Definition ✔
  35. 35. Copyright@2012-2017 Teddysoft
  36. 36. Copyright@2012-2017 Teddysoft 已定義 尚未實作
  37. 37. Copyright@2012-2017 Teddysoft
  38. 38. Copyright@2012-2017 Teddysoft ✔ ✔ TODO: 用單元測試 定義技術規格 ✔ ✔
  39. 39. Copyright@2012-2017 Teddysoft
  40. 40. Copyright@2012-2017 Teddysoft ✔ ✔ TODO: 完成實作讓單 元測試通過 ✔ ✔ ✔
  41. 41. Copyright@2012-2017 Teddysoft
  42. 42. Copyright@2012-2017 Teddysoft
  43. 43. Copyright@2012-2017 Teddysoft
  44. 44. Copyright@2012-2017 Teddysoft
  45. 45. Copyright@2012-2017 Teddysoft ✔ ✔ ✔ ✔ ✔ ✔
  46. 46. • 重構 (6) • 探索下一個Scenario 或 Feature – Go to (4) or (3) Copyright@2012-2017 Teddysoft
  47. 47. Copyright@2012-2017 Teddysoft 《Domain-Driven Design》
  48. 48. Design Model Copyright@2012-2017 Teddysoft Implementation Model After Implementation Refactoring Test & Code OOAD BDD Test cases as specification Domain Model Use Case Model Domain Model DDD and OOAD skills can help Refactoring
  49. 49. • BDD is a – second-generation – outside-in – pull-based – multiple-stakeholder – multiple-scale – high-automation • agile methodology. Copyright@2012-2017 Teddysoft Dan North
  50. 50. • Explore examples through collaboration – Do the right thing and do the thing right – 沒有合作(僅由Stakeholders/PO提供)的user story實際上是一種設計,並非需求 • Create living documentation – 讓軟體變軟 Copyright@2012-2017 Teddysoft Gojko Adzic
  51. 51. • 好技術不死,只是換個名字、換個說法,再 來一次。 • Quality over Names Copyright@2012-2017 Teddysoft Q & A
  52. 52. • 搞笑談軟工部落格 – http://teddy-chen-tw.blogspot.com • 搞笑談軟工Facebook – https://www.facebook.com/groups/teddy.tw • 泰迪軟體官方網站 – http://teddysoft.tw Copyright@2012-2017 Teddysoft

×