Screen Shot 2558-07-23 at 4.21.12 PM
มีคำถามว่า

ถ้าเขียน unit test แล้ว มันดีอย่างไร ?

ดังนั้นมาดูกันหน่อยว่า มีเหตุผลดีๆ อะไรบ้าง

1. ไม่ให้ให้ลูกค้า หรือ ผู้ใช้งาน เป็นคนเจอข้อผิดพลาดก่อนเรา
ข้อนี้คือ เราพยายามลดข้อผิดพลาดต่างๆ ที่จะเกิดขึ้น
ดังนั้น เราจะต้องเจอข้อผิดพลาดให้เร็วที่สุด
ก่อนที่ระบบจะออกไปสู่มือของลูกค้า และ ผู้ใช้งาน

ดังนั้น
ถ้าเราเขียน unit test ที่มันมีคุณภาพ
ถ้าเราเขียน unit test ที่มันมีครอบคลุม
ก็จะลดปัญหาต่างๆ ลงไปได้เยอะ

2. ทำให้การทดสอบที่ซับซ้อน มันรวดเร็วขึ้น
ยิ่งระบบงานมันใหญ่ขึ้น
ยิ่งระบบงานมันมี feature ต่างๆ มากขึ้น
ดังนั้น ระบบมันก็ยิ่งซับซ้อนขึ้น

ส่งผลให้การทดสอบแบบ manual มันมากขึ้น ยากขึ้น ซับซ้อนขึ้น
นั่นคือ เวลาการทดสอบมันนานขึ้น
ทำให้ feedback ที่ได้จากการทดสอบนานขึ้น
การแก้ไขก็นานตามไปด้วย

ดังนั้น สามารถลดเวลาการทดสอบซ้ำๆ หรือ regression test
ด้วยการเขียน unit test ซะ ก็จะทดสอบได้เร็วขึ้น

3. สามารถทำการทดสอบได้บ่อยเท่าที่ต้องการ
ทำให้เราสามารถรู้ได้ว่า ระบบที่เรากำลังสร้างเป็นอย่างไร
code ที่เราเพิ่มเข้าไป ทำให้ระบบทั้งหมดมันยังทำงานได้ถูกต้องหรือไม่

4. ลด code หรือสิ่งที่ไม่จำเป็นออกไป
เมื่อเราทำการทดสอบตั้งแต่เนิ่นๆ
มันจะทำให้เราสร้างเฉพาะสิ่งที่จำเป็นเท่านั้นขึ้นมา
ทำให้ code ที่ได้มันเล็ก และ ดูแลรักษาได้ง่ายขึ้น
นั่นคือ สามารถลดเวลาในการพัฒนาลงไป

5. ไม่ต้องทำการ Debug !!
เมื่อเกิดปัญหาขึ้นมา unit test มันช่วยบอกเราว่า ผิดตรงไหน
ทำให้เราสามารถรู้ปัญหา และ แก้ไขได้อย่างรวดเร็ว

สุดท้ายแล้วทำให้เรามีความมั่นใจต่อระบบ
เนื่องจากมันทำให้เรามั่นใจใน code ของระบบมากขึ้น
ทั้งมั่นใจในการแก้ไข และ เพิ่ม feature ใหม่ๆ เข้าไป

ข้อดีเยอะขนาดนี้ ก็มาเขียน unit test กันเถอะครับ !!

Reference Websites
http://blog.typemock.com/2011/11/10-reasons-to-write-unit-tests.html
http://blog.typemock.com/2009/03/the-cost-of-test-driven-development.html