Screen Shot 2558-06-28 at 10.32.30 PM
มีโอกาสได้ไปแบ่งปันใน Course Test-Driven Development (TDD) with Java จัดโดย IMC Institute 
ซึ่งเป็นครั้งแรกสำหรับการแบ่งปัน 2 วันกันแบบเต็มๆ
และมีคนเข้ามาเรียนจำนวน 18 คน
มาดูว่าได้แบ่งปันอะไรไปบ้าง ?

เนื้อหาในวันแรก

ใน course นี้เน้นเรื่องของการทำ workshop
เพื่อให้ผู้เรียนได้รู้และเข้าใจของที่มาที่ไปของ code
รวมทั้งเพื่อให้เข้าใจปัญหาที่นักพัฒนาต้องแบกรับ และ สร้างมันขึ้นมา
นั่นก็คือ code ที่ยุ่งเหยิง และ พวก Legacy code
โดยหนึ่งในแนวทางการแก้ปัญหาคือ Test-Driven Development (TDD)

และเป้าหมายหลักของ course นี้คือ เรื่อง Small Step
ดังนั้นจึงลงมือทำ Workshop เยอะ เพื่อฝึกฝน

จากนั้นทำการอธิบายถึงคุณสมบัติของ Unit test ที่ดี คือ FIRST

  • F = Fast
  • I = Independent
  • R = Repeatable
  • S = Self-validate
  • T = Timely

ในการทำ workshop จะใช้ JUnit สำหรับการเขียน unit test ด้วยภาษา Java
ดังนั้นจึงทำการแนะนำการใช้งานเบื้องต้น
รวมทั้งโครงสร้างของ unit test ที่ดี นั่นก็คือ A-A-A (Arrange-Act-Assert)

เนื้อหาในวันที่สอง

ทำการสรุปความสามารถต่างๆ ของ jUnit เช่น

  • Life cycle ของการทำงานพวก @BeforeClass, @Before, @AfterClass และ @After
  • การจัดการกับ Exception ใน test
  • การใช้งาน Parameterization สำหรับการทดสอบแบบ Data-Driven Development

จากนั้นจึงเริ่มทำการแนะนำเรื่อง การออกแบบที่ดีในโลกของ Object-Oriented
นั่นก็คือ SOLID

เรื่องที่เน้นมากๆ นั่นก็คือ S, O และ D
ซึ่งได้ลงมือทำ workshop ต่างๆ เพื่อทำให้เข้าใจ
จากนั้นเริ่มอธิบายเรื่องของ D
และทำการแนะนำให้รู้จักกับ Test Double
เพื่อทำการแยกส่วนการทำงานต่างๆ ออกจากกัน (Isolate)
ส่งผลให้ระบบสามารถทดสอบได้ง่าย (Testable)
ประกอบไปด้วย

  • Dummy
  • Stub
  • Spy
  • Mock
  • Fake

จากนั้นลงมือทำ Workshop เพื่อให้เข้าในเรื่องของ Stub, Spy และ Mock
น่าจะทำให้ผู้เรียนได้รับความรู้และเข้าใจ เกี่ยวกับ Test-Driven Development ด้วยภาษา Java มากขึ้น
รวมทั้งน่าจะเป็นแนวทางสำหรับการต่อยอดในการพัฒนานะครับ

เจอกันอีกครั้งช่วงปลายปีครับ
สามารถดูรายละเอียดของ course ได้ที่ IMC Institute :: Test-Driven Development with Java

Tags:,