Screen Shot 2558-02-16 at 8.29.30 PM
ในปัจจุบันคำว่า Unit testing มันมีความสำคัญมากถึงมากที่สุด
เป็นสิ่งที่นักพัฒนา software ควรจะเรียนรู้ และ นำมาประยุกต์ใช้งาน
โดยมันใช้เป็นตัวชี้วัดด้วยว่า
คุณคือนักพัฒนาที่ดี หรือ เป็นนักพัฒนามืออาชีพกันเลยนะ

ดังนั้น Unit testing จึงเป็นทั้งความสามารถ และ วินัย
ที่นักพัฒนา software จะขาดไปเสียมิได้เลย

ดังนั้น ผมจึงขอแนะนำหนังสือเกี่ยวกับ Unit testing
ที่ผมเคยอ่าน และ นำมาใช้ในงานจริงๆ
เพื่อใช้ฝึก และ ฝน ฝีมือกันนะครับ
แต่ส่วนใหญ่จะเน้นไปทางภาษา Java หน่อยนะครับ

1. Pragmatic Unit Testing in Java with jUnit

เป็นหนังสือที่สั้นๆ ซึ่งแนะนำให้รู้จัก เข้าใจ ขั้นตอนของ unit testing
ทำให้รู้ว่าการเรียนรู้แบบเล็กๆ step-by-step เป็นอย่างไร
ในหนังสือมีตัวอย่างเล็กๆ อธิบายแบบเข้าใจง่าย
สิ่งหนึ่งที่จะได้รู้จากหนังสือเล่มนี้ และ มีความสำคัญมากๆ คือ คำว่า CORRECT ย่อมาจาก

  • C = Conformance
  • O = Ordering
  • R = Range
  • R = Reference
  • E = Existence
  • C = Cardinality
  • T = Time

และคำว่า A-TRIP คือคุณสมบัติที่ดีของ unit test ซึ่งย่อมาจาก

  • A = Automatic
  • T = Thorough
  • R = Repeatable
  • I = Independent
  • P = Professional

ถ้าอยากรุ้และเข้าใจ แนะนำให้อ่านเลยครับ
ยิ่งเป็น Java developer แล้วยิ่งไม่น่าพลาด

2. Test Driven :: TDD and Acceptance TDD for Java developer

สำหรับ Java developer ห้ามพลาดเล่มนี้โดยเด็ดขาด
อาจจะพูดได้เลยว่าดีสุดๆ เลยทีเดียว
ในหนังสือทำการอธิบายการพัฒนาด้วยแนวคิด TDD (Test-Driven Development)
ด้วยเทคนิคง่าย เข้าใจได้ง่าย
โดยเน้นให้สนใจที่ unit test เขียนให้มันเรียบง่าย
และคุณจะรู้ว่าทำไมต้อง Anti-Singleton pattern ด้วย

3. The Art of Unit Testing with Example in C#

เล่มนี้เป็นเล่มโปรดของผมเลย เนื่องจากเนื้อหาในหนังสืออธิบายเป็นขั้นเป็นตอน
ตั้งแต่การเขียน unit test แบบง่ายๆ
ไปจนถึงแนวคิดของ Test double กันเลย
ซึ่งจะมี code ตัวอย่างให้ลองทำแบบ step-by-step

4. Effective JUnit testing : A Guide for Java Developers

น่าจะเป็นหนังสือที่ developer ทุกๆ คนต้องมีไว้เสมอ
เหมาะสำหรับคนที่ต้องการปรับปรุงทักษะ ความสามารถ
ในการพัฒนา software ให้มีคุณภาพ
โดยหนังสือจะสอนคุณว่า การเขียน test ที่ดีเป็นอย่างไร
code ที่สามารถดูแลรักษาได้ง่ายเป็นอย่างไร
ยังไม่พอนะ หนังสือยังมีเนื้อหาไปถึง BDD และ Specification by Example อีกด้วย

5. Test Driven Development by Example

ถ้าจะบอกว่าหนังสือเล่มแรกที่ควรคู่ต่อการสะสม
หนึ่งในนั้นคือ หนังสือเล่มนี้ เขียนโดยบิดาของ TDD กันเลยทีเดียว
โดยเริ่มจากตัวอย่างระบบงาน เพื่อพัฒนาตามแนวคิด TDD ว่าเป็นอย่างไร
ซึ่งจะทำให้เราเห็นภาพ TDD อย่างชัดเจน แต่ต้องอดทนอ่าน และ ทำตามหน่อยนะครับ
เนื่องจากหนังสือมันนานมาก แต่ยังคงคุณค่าอยู่เสมอ

ทั้ง 5 เล่ม ถือว่าเป็นหนังสือเกี่ยวกับ unit testing ที่นักพัฒนา software ไม่ควรพลาด

ถ้าคุณต้องเป็นเป็นนักพัฒนาที่ดีกว่าเดิม
ถ้าคุณต้องการพัฒนาทักษะและความสามารถ

เรื่องตลกร้ายก็คือ
ในนักพัฒนา software 10 คนจะรู้จัก unit test ประมาณ 5 คน
และใน 5 คนนั้นมีเพียง 2 คนที่สามารถ
เขียน code ให้อ่านง่าย
เขียน code ให้ดูแลรักษาง่าย
เขียน code ที่มีคุณภาพ
ดังนั้นมาเรียนรู้ และ ฝึกฝน กันครับ

ใครมีหนังสือเล่มอื่นๆ ที่น่าสนใจแนะนำกันมาได้นะ