เมื่อผมถามว่า 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.