ฉันทำงานกับแอพพลิเคชั่นหลายตัว ปัจจุบันการครอบคลุมโค้ดของพวกเขาค่อนข้างต่ำ: โดยทั่วไประหว่าง 10 และ 50%
ตั้งแต่หลายสัปดาห์เราได้พูดคุยกับทีมงานบังกาลอร์ (ส่วนหลักของการพัฒนาในต่างประเทศในอินเดีย) เกี่ยวกับการยกเว้นแพคเกจหรือคลาสสำหรับ Cobertura (เครื่องมือครอบคลุมรหัสของเราแม้ว่าเราจะย้ายไปที่ JaCoCo)
มุมมองของพวกเขามีดังต่อไปนี้เนื่องจากพวกเขาจะไม่เขียนการทดสอบหน่วยใด ๆ ในบางเลเยอร์ของแอปพลิเคชัน(1)เลเยอร์เหล่านี้ควรแยกออกจากการวัดความครอบคลุมของรหัส ในคำพูดของคนอื่น ๆ ที่พวกเขาต้องการที่จะ จำกัด การวัดความคุ้มครองรหัสเพื่อรหัสที่มีการทดสอบหรือควรจะทดสอบ
นอกจากนี้เมื่อพวกเขาทดสอบหน่วยการเรียนสำหรับคลาสที่ซับซ้อนประโยชน์ที่ได้รับซึ่งล้วน แต่ครอบคลุมในเรื่องการครอบคลุมโค้ดนั้นจะไม่ถูกสังเกตเห็นในแอปพลิเคชันขนาดใหญ่ การลดขอบเขตของการครอบคลุมโค้ดจะทำให้ความพยายามในลักษณะนี้ชัดเจนยิ่งขึ้น ...
ที่น่าสนใจของวิธีนี้คือการที่เราจะมีมาตรการคุ้มครองรหัสที่บ่งชี้ว่าสถานะปัจจุบันของส่วนหนึ่งของโปรแกรมที่เราพิจารณาเป็นทดสอบ
อย่างไรก็ตามมุมมองของฉันคือเรากำลังแกล้งทำตัวเลข โซลูชันนี้เป็นวิธีที่ง่ายในการเข้าถึงระดับการครอบคลุมโค้ดที่สูงขึ้นโดยไม่ต้องใช้ความพยายามใด ๆ อีกประเด็นหนึ่งที่ทำให้ฉันรำคาญใจคือ: ถ้าเราแสดงความครอบคลุมที่เพิ่มขึ้นจากหนึ่งสัปดาห์ไปอีกหนึ่งสัปดาห์เราจะบอกได้อย่างไรว่าข่าวดีนี้เกิดจากการทำงานที่ดีของนักพัฒนาหรือเกิดจากการยกเว้นใหม่
นอกจากนี้เราจะไม่สามารถทราบได้อย่างชัดเจนถึงสิ่งที่ถูกพิจารณาในการวัดความครอบคลุมโค้ด ตัวอย่างเช่นถ้าฉันมี 10,000 เส้นของการประยุกต์ใช้รหัสที่มี 40% ของความคุ้มครองรหัสผมสามารถหักค่าใช้จ่ายที่ 40% ของฐานรหัสของฉันมีการทดสอบ(2) แต่จะเกิดอะไรขึ้นถ้าเราตั้งค่าการยกเว้น หากรหัสครอบคลุมอยู่ในขณะนี้ 60% ฉันจะหักอะไรได้แน่ มีการทดสอบ 60% ของรหัสฐาน "สำคัญ" ของฉันหรือไม่ ฉันสามารถ
เท่าที่ฉันเป็นห่วงฉันชอบที่จะรักษาคุณค่าของรหัส "ของจริง" แม้ว่าเราจะไม่ร่าเริงกับมัน นอกจากนี้ด้วย Sonar เราสามารถนำทางไปยังฐานรหัสและรู้ได้อย่างง่ายดายสำหรับโมดูล / แพ็คเกจ / คลาสใด ๆ ครอบคลุมรหัสของตัวเอง แต่แน่นอนรหัสครอบคลุมทั่วโลกจะยังคงอยู่ในระดับต่ำ
ความคิดเห็นของคุณเกี่ยวกับเรื่องนี้คืออะไร? คุณทำโครงการของคุณอย่างไร
ขอบคุณ
(1)เลเยอร์เหล่านี้มักเกี่ยวข้องกับ UI / Java beans เป็นต้น
(2)ฉันรู้ว่าไม่เป็นความจริง ในความเป็นจริงมันหมายความว่า 40% ของฐานรหัสของฉันเท่านั้น