Voice in the Gentle Wind

ตุลาคม 9, 2007

Crap4j : ตัววัดโค้ดห่วย

Filed under: Testing/TDD/BDD — deans4j @ 12:27 am

วันนี้ไปเจอมา สะดุดก็ตรงชื่อมันนี่แหละ คอนเซปต์อ้างว่าโค้ดห่วยดูแลยากมักสอดคล้องกับโค้ดที่ผ่านการทดสอบมาไม่เพียงพอ crap4j (Change Risk Analysis and Prediction for Java) [ยังอุตสาห์หาชื่อมาจับได้] เป็นเครื่องมือวัดความห่วยของโค้ดโดยพิจารณาจากความซับซ้อนของเมธอดและค่าการครอบคลุมของบททดสอบ (test coverage) ในเมธอด โดยมีสูตร v.0.1 ว่า

 

CRAP(m) = comp(m)^2 * (1 – cov(m)/100)^3 + comp(m)

comp(m) เป็นผลการวัดความซับซ้อนของเมธอด m ส่วน cov(m) เป็นการวัดการทำ test coverage เมธอด ผลลัพธ์ที่ได้คือคะแนนความห่วยของเมธอดนั้น จากสูตรเพราะฉะนั้นถ้าเมธอดยิ่งซับซ้อนเท่าไหร่ การทำ test coverage ก็ต้องทำอย่างจริงใจมากขึ้นเท่านั้น ตารางข้างล่างบ่งบอกความสัมพันธ์วิกฤตก่อนจะพิจารณาว่าเมธอดนั้นห่วยหรือไม่

คะแนนความซับซ้อนของเมธอด         % test coverage วิกฤตเมธอดห่วย
------------------------------        --------------------------------
0 – 5                                   0%
10                                     42%
15                                     57%
20                                     71%
25                                     80%
30                                    100%
31+                                   ไม่มีทางที่ test coverage ใดๆ จะทำให้เมธอดที่ซับซ้อนขนาดนี้หลุดพ้นจากคำว่า ห่วย ไปได้

ผู้ประพันธ์ให้ความเห็นว่าที่ระดับโปรเจกต์หากมี crap เมธอดเกิน 5% ให้พิจารณาได้เลยว่าโปรเจกต์นั้น crap ตามไปด้วย 😉

ถ้าอยากเล่นกับ crap4j ตอนนี้มี Eclipse plug-in ให้ลอง prototype ดูได้

ที่มา – Artima

Advertisements

1 ความเห็น »

  1. ดูชื่อแล้วไม่กล้าใช้กับงานตัวเอง

    กลัว..

    ความเห็น โดย bact' — ตุลาคม 9, 2007 @ 6:57 pm


RSS feed for comments on this post. TrackBack URI

ใส่ความเห็น

Fill in your details below or click an icon to log in:

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

สร้างเว็บไซต์หรือบล็อกฟรีที่ WordPress.com.

%d bloggers like this: