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
- เทคนิคและเครื่องต่าง ๆ ที่จำเป็นต่อการพัฒนา
เครื่องมือ
- JDK 1.8 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- IDE :: IntelliJ IDEA CE. or Eclipse IDE https://www.jetbrains.com/idea/download
- Git https://git-scm.com/
เนื้อหาการอบรม
- 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
- Test Double