Friday, June 10, 2005

Jester-the JUnit test tester.

ในสภาพแวดล้อมแบบ extreme programming
testing คือ key สำคัญตัวหนึ่ง
แต่ปัญหาก็คือ เราจะมั่นใจในตัว test ได้อย่างไร

วิธีการหนึ่งก็คือใช้ coverage tool ในการ monitor
testing process เพื่อที่สรุปได้ว่า source code
ที่เรา test คิดเป็นกี่เปอร์เซนต์ของ source code
ทั้งหมด
ตัวอย่างของ coverage report ของ Tapestry project

ตัว Jester เสนออีก idea ในการ test tester
ก็คือ ตัวมันจะทำการแก้ไข source code
บางส่วน (source ของโปรแกรมที่จะ test)
ก่อนที่จะ run test program
จากนั้นก็ทำการ run test
ถ้า test ผ่าน แสดงว่า test case นั้นยังไม่ครอบคลุม
source code ในจุดที่ jester แก้ไข

จุดใน source code ที่ jester จะทำการแก้ไข
ประกอบด้วย
  • แก้ไขพวกตัวเลข เช่น จาก 0 เป็น 1
  • แก้ไข boolean จาก true->false, false -> true
  • เปลี่ยนจาก if ( เป็น if (true ||
  • เปลี่ยนจาก if ( เป้น if (false &&

จะเห็นว่าเป็นการแก้ไขแบบ simple มากๆ
แต่ก็มีโอกาสทำให้ logic ของโปรแกรมเปลี่ยนแปลงได้

Related link from Roti

No comments: