Unit Test – test unit ของอะไร?

เมื่อผมถามว่า unit test คืออะไร คำตอบที่ได้มามักเป็นว่า “เทสที่ทำโดย developer” ซึ่งก็ไม่ผิดนัก แต่ถ้าถามต่อว่า unit ในชื่อของมันหมายถึงอะไร ก็มักจะได้รับคำตอบ เป็นความงงงวย แล้วตอบว่าไม่รู้ บ้างก็เดาไปว่า class บ้าง method บ้าง ซึ่งไม่ค่อยจะถูกต้องนัก และถ้ากลับไปดูนิยามเดิม ที่บอกว่า มันคือ module ซึ่งก็คือ ไฟล์ ในภาษาแบบ procedural แล้ว ก็ไปกันใหญ่

แล้ว unit ที่ว่านี้คือหน่วยของอะไร?

การจะหาคำตอบนั้นต้องตามไปยังที่มาของ unit test framework ที่เราใช้กันก่อน แรกเริ่มนั้น ตัวแรก น่าจะเป็น Junit ซึ่งถูกคิดโดย Kent Beck ผู้ร่วมก่อตั้ง eXtreme Programming ซึ่ง Junit นั้นถูกคิดขึ้นเพื่อ Test Driven Development (TDD) โดยเฉพาะ หรือกล่าวได้ว่า TDD และ unit testing framework เป็นของคู่กัน เริ่มเข้าเค้าละ

ถ้าหากมันเป็นของคู่กันแล้ว การที่ Kent เรียกมันว่า unit น่าจะมีความสัมพันธ์กับ TDD ด้วย และ TDD เป็นเรื่องของ Test Case ดังนั้น

Unit = Test Case นั่นเอง

Q.E.D.

Advertisements

ใส่ความเห็น

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s