ฉันชอบคำตอบของ @ RevBingo เพราะเขาแนะนำว่าการดิ้นรนเพื่อ 100% สามารถทำให้คุณล้างหรือลบรหัสที่ไม่ได้ใช้ สิ่งที่ฉันไม่ได้เห็นในคำตอบอื่นคือความรู้สึกเมื่อคุณต้องการความครอบคลุมสูงและเมื่อคุณไม่ต้องการ ฉันเริ่มแทงนี่สิ ฉันคิดว่าการเพิ่มรายละเอียดลงในแผนภูมิเช่นนี้จะเป็นประโยชน์มากกว่าการค้นหาหมายเลขการครอบคลุมการทดสอบหนึ่งหมายเลขที่เหมาะสมกับรหัสทั้งหมด
100%
สำหรับ API สาธารณะเช่น java.util Collections นั้นไม่ได้เชื่อมโยงกับฐานข้อมูลและไม่ส่งคืน HTML ฉันคิดว่าการครอบคลุม 100% นั้นเป็นเป้าหมายเริ่มต้นที่สูงส่งแม้ว่าคุณจะชำระ 90-95% เนื่องจากเวลาหรืออื่น ๆ ข้อ จำกัด การครอบคลุมการทดสอบที่เพิ่มขึ้นหลังจากที่คุณมีคุณสมบัติที่สมบูรณ์นั้นทำให้ระดับการตรวจสอบโดยละเอียดมีความละเอียดมากกว่าการทบทวนรหัสประเภทอื่น ๆ หาก API ของคุณเป็นที่นิยมผู้คนก็จะใช้, ซับคลาสนั้น, เลิกทำการซีเรียล ฯลฯ ในวิธีที่คุณคาดไม่ถึง คุณไม่ต้องการประสบการณ์ครั้งแรกในการค้นหาข้อบกพร่องหรือออกแบบการกำกับดูแล!
90%
สำหรับรหัสโครงสร้างพื้นฐานทางธุรกิจที่ใช้ในโครงสร้างข้อมูลและส่งคืนโครงสร้างข้อมูล 100% อาจเป็นเป้าหมายเริ่มต้นที่ดี แต่ถ้ารหัสนี้ไม่สาธารณะพอที่จะเชิญใช้งานในทางที่ผิดอาจเป็น 85% ที่ยอมรับได้?
75%
สำหรับรหัสที่รับและส่งคืนสตริงฉันคิดว่าการทดสอบหน่วยนั้นเปราะบางกว่า แต่ก็ยังมีประโยชน์ในหลาย ๆ สถานการณ์
50% หรือน้อยกว่า
ฉันเกลียดการเขียนแบบทดสอบสำหรับฟังก์ชั่นที่ส่งคืน HTML เพราะมันเปราะมาก จะเกิดอะไรขึ้นถ้ามีคนเปลี่ยน CSS, JavaScript หรือ Blob ทั้งหมดของ HTML และภาษาอังกฤษที่คุณกลับมาทำให้ผู้ใช้ปลายทางไม่มีความรู้สึก หากคุณสามารถหาฟังก์ชั่นที่ใช้ตรรกะทางธุรกิจจำนวนมากเพื่อสร้าง HTML เล็กน้อยนี่อาจคุ้มค่าการทดสอบ แต่สถานการณ์กลับอาจไม่คุ้มค่าการทดสอบเลย
ใกล้ 0%
สำหรับรหัสบางคำจำกัดความของ "ถูกต้อง" คือ "เหมาะสมกับผู้ใช้" มีการทดสอบที่ไม่ใช่แบบดั้งเดิมที่คุณสามารถทำได้กับรหัสนี้เช่นการตรวจสอบไวยากรณ์อัตโนมัติหรือ HTML ที่ตรวจสอบความถูกต้องของผลลัพธ์ ฉันได้ตั้งงบ grep สำหรับความไม่สอดคล้องกันเล็กน้อยที่เรามักตกเป็นเหยื่อของการทำงานเช่นพูดว่า "เข้าสู่ระบบ" เมื่อระบบที่เหลือเรียกว่า "ลงชื่อเข้าใช้" ผู้ชายคนนี้ไม่ได้เป็นการทดสอบหน่วย แต่เป็นวิธีที่มีประโยชน์ในการตรวจจับปัญหาโดยไม่คาดหวังผลลัพธ์เฉพาะ
แม้ว่าในท้ายที่สุดมีเพียงมนุษย์เท่านั้นที่สามารถตัดสินได้ว่าอะไรเหมาะสมกับมนุษย์ การทดสอบหน่วยไม่สามารถช่วยคุณได้ บางครั้งมนุษย์หลายคนอาจตัดสินได้อย่างแม่นยำ
0% แน่นอน
นี่เป็นหมวดหมู่ที่น่าเศร้าและฉันรู้สึกว่ามีคนน้อยที่จะเขียนมัน แต่ในโครงการขนาดใหญ่ที่เพียงพอมีหลุมกระต่ายที่สามารถดูดเวลา - สัปดาห์โดยไม่ให้ผลประโยชน์ทางธุรกิจ
ฉันซื้อหนังสือเพราะมันอ้างว่าแสดงวิธีจำลองข้อมูลโดยอัตโนมัติสำหรับการทดสอบไฮเบอร์เนต แต่จะทดสอบการสอบถาม Hibernate HQL และ SQL เท่านั้น หากคุณต้องทำ HQL และ SQL จำนวนมากคุณจะไม่ได้รับประโยชน์จากการไฮเบอร์เนต มีรูปแบบของฐานข้อมูลในหน่วยความจำไฮเบอร์เนต แต่ฉันไม่ได้ลงทุนเวลาเพื่อหาวิธีใช้อย่างมีประสิทธิภาพในการทดสอบ หากฉันมีการทำงานแบบนั้นฉันต้องการความครอบคลุมการทดสอบสูง (50% -100%) สำหรับตรรกะทางธุรกิจใด ๆ ที่คำนวณสิ่งต่าง ๆ โดยการนำกราฟวัตถุมาใช้ ความสามารถของฉันในการทดสอบรหัสนี้อยู่ใกล้ 0% ในขณะนี้และเป็นปัญหา ดังนั้นฉันจึงปรับปรุงการครอบคลุมการทดสอบในพื้นที่อื่น ๆ ของโครงการและพยายามที่จะใช้ฟังก์ชั่นที่บริสุทธิ์มากกว่าฟังก์ชั่นที่เข้าถึงฐานข้อมูลส่วนใหญ่เพราะมันง่ายต่อการเขียนการทดสอบสำหรับฟังก์ชั่นเหล่านั้น แต่ถึงกระนั้น