Test Driven Development (TDD) และ Refactoring workshop with Java - up1/training-courses GitHub Wiki

จำนวน 2 วัน

Test-Driven Development (TDD) และ Refactoring workshop มีเนื้อหาครอบคลุม ตั้งแต่เรื่องพื้นฐานแนวคิด TDD, BDD การเขียน code ที่ดี (clean code) การออกแบบที่ดี ตลอดจนการเขียนชุดการทดสอบแบบอัตโนมัติ เพื่อช่วยทำให้ทีมพัฒนามีความมั่นใจต่อการพัฒนาระบบงานมากยิ่งขึ้น

โดยจะมี workshop ต่าง ๆ ตามแนวคิดของ TDD ดังนี้

  • Unit testing
  • Refactoring
  • ปรับปรุงโครงสร้างของ Legacy code
  • เทคนิคและเครื่องต่าง ๆ ที่จำเป็นต่อการพัฒนา

เครื่องมือ

เนื้อหาการอบรม

  • Unit testing
    • แนวคิดพื้นฐานของ Unit testing
    • Unit testing framework
    • Unit testing ที่ดี
    • ทำความรู้จักกับ xUnit
    • Level ของการทดสอบ
      • Unit testing
      • Integration testing
      • Component testing
      • Contract testing
      • End-to-End testing
  • Code Smell
    • ความรู้พื้นฐานของ Code Smell
    • รูปแบบของ Code Smell
      • Bloaters
      • Object-Oriented Abusers
      • Change Preventers
      • Dispensables
      • Couplers
    • การค้นหาและจัดการ Code Smell
  • Refactoring
    • ความรู้พื้นฐานของ Refactoring
    • เป้าหมายของ Refactoring
    • Refactoring pattern
    • Automated Refactoring
    • Refactoring และ Code Smell
  • Test-Driven Development (TDD)
    • การทดสอบแบบ Inside-out :: Test First
    • ความรู้พื้นฐานของ TDD
    • Test First vs. Test Last
    • TDD Lefe cycle
      • Red-Greed-Refactor
    • Rules of TDD
    • โครงสร้างของชุดการทดสอบที่ดี
    • Design principle ที่จำเป็นต่อการพัฒนา
      • SOLID
      • DRY (Don’t Repeat Yourself)
      • Boy Scout Rule
    • Workshop with TDD
  • Behaviour-Driven Development (BDD)
    • การทดสอบแบบ Outside-in :: Behaviour First
    • การออกแบบและวางแผนการทดสอบ
      • การแบ่ง feature ออกเป็น flow ย่อย ๆ
      • Feature -> Flow/Scenario/Story -> Task
    • รูปแบบการทำงานแบบอัตโนมัติที่ดีและไม่ดี
    • รูปแบบการเขียน BDD ในรูปแบบต่าง ๆ
      • Plain text
      • Gherkin style
      • Markdown style
    • Demo BDD framework
      • Cucumber
      • Robotframwork
      • Fitnesse
    • Workshop with BDD
  • Working with real world application
    • Test Double
      • Dummy
      • Stub
      • Spy
      • Mock object
      • Fake
    • TDD with Legacy code
    • การจัดการ dependency ต่าง ๆ
    • รูปแบบต่าง ๆ ในการเขียน test ที่ดี
    • Workshop with Legacy code
      • Code Smell
      • Refactoring
      • TDD/BDD