ความครอบคลุม (coverage ) ของการทดสอบแบบอ้างอิงรหัสโปรแกรม (white box testing) เป็นการวัดสัดส่วนของส่วนของโปรแกรมที่ถูกทดสอบเทียบกับรหัสโปรแกรมทั้งหมดและให้ค่าออกมาเป็นเปอร์เซนต์ของส่วนของโปรแกรมที่ได้ทำการทดสอบไปแล้ว การวัดความครอบคลุมของการทดสอบแบ่งออกเป็นการการวัดแบบไม่อ้างอิงขั้นตอนการทำงานของโปรแกรม (flow independent) และการวัดแบบที่อ้างอิงขั้นตอนการทำงานของโปรแกรม (flow dependent) 

     การวัดความครอบคลุมแบบไม่อ้างอิงขั้นตอนการทำงานของโปรแกรมจะถูกใช้งานมากที่สุดเพราะเข้าใจง่ายและทำงานง่ายกว่า ตัวอย่างเช่น (1) การวัดตามจำนวนบล๊อคในโปรแกรมจะค่อนข้างง่ายในการแบ่งส่วนของโปรแกรมที่จะทดสอบ ถึงแม้บล๊อคจะครอบคลุมโปรแกรมหลายบรรทัดแต่ขนาดของบล๊อคก็ยังเล็กกว่าขนาดของเมธอด โดยจะดูว่าแต่ละบล๊อคถูกทดสอบแล้วหรือไม่ (2) การวัดตามจำนวนบรรทัดของโปรแกรม โดยจะดูว่าแต่ละบรรทัดถูกทดสอบแล้วหรือไม่ และ (3) การวัดตามจำนวนชุดคำสั่ง (statment )ในโปรแกรม ซึ่งจะคล้ายกับการวัดเป็นบรรทัดต่างกันที่ในบางบรรทัดอาจจะประกอบไปด้วยหลายชุดคำสั่ง เช่น บรรทัดที่เป็นคำสั่ง if หรือคำสั่งลูป ซึ่งเป็นคำสั่งที่ประกอบด้วยหลายชุดคำสั่ง (statment )ทำงานด้วยกัน โดยจะดูว่าแต่ละชุดคำสั่งถูกทดสอบแล้วหรือไม่ (ไม่ใช่แค่บรรทัดนั้นถูกทดสอบแล้ว)

     การวัดความครอบคลุมแบบอ้างอิงขั้นตอนการทำงานของโปรแกรม จะเป็นการวัดการทำงานร่วมกันของแต่ละส่วนของโปรแกรมซึ่งจะทำงานยากกว่าและทำความเข้าใจยากกว่า แต่ก็ช่วยให้เราเข้าใจว่าโปรแกรมทำงานอย่างไร ตัวอย่างเช่น (1) การวัดทุกๆเงื่อนไขของชุดคำสั่ง (branch statement ) โดยจะทดสอบทุกๆเงื่อนไขที่เป็นไปได้ เช่น ทดสอบทั้งในกรณีที่เป็นจริงและเป็นเท็จของเงื่อนไข if เป็นต้น (2) การวัดตามเส้นทางการทำงานของโปรแกรม (path) เพื่อให้แน่ใจว่าทุกเส้นทางการทำงานที่เป็นไปได้จะถูกทดสอบ เช่น ถ้าเรามีเงื่อนไขของชุดคำสั่ง if 2 ชุด เราจะไม่เพียงทดสอบแค่กรณีที่เป็นจริงและเป็นเท็จของแต่ละเงื่อนไข แต่จะทดสอบในภาพรวมทุกกรณีด้วยคือ จริง-จริง เท็จ-เท็จ จริง-เท็จ เท็จ-จริง เป็นต้น (3) การวัดแบบ MCC ซึ่งขยายมาจากการวัดตามเส้นทางการทำงานของโปรแกรม เพื่อให้แน่ใจว่าทุกชุดคำสั่งถูกประเมินอย่างเป็นอิสระโดยยึดผลลัพธ์ที่ได้เป็นหลัก การวัดแบบนี้ยากและซับซ้อนในการประยุกต์ใช้ มักจะใช้กับเฉพาะระบบที่เน้นเรื่องความปลอดภัยเป็นสำคัญ

     วิธีการวัดความครอบคลุมของการทดสอบมีมากกว่าที่กล่าวมา แต่วิธีที่กล่าวมาเป็นวิธีนิยมใช้กันมากที่สุด การวัดความครอบคลุมของการทดสอบเป็นกระบวนการที่ทำซ้ำไปซ้ำมา เริ่มจากระบุส่วนของโปรแกรมที่ยังไม่ถูกทดสอบ ออกแบบการทดสอบสำหรับโปรแกรมส่วนนั้นๆ สร้างเงื่อนไขการทดสอบและลงมือทดสอบ จากนั้นก็กลับไปทำซ้ำตามขั้นตอนที่กล่าวมาอีกจนกว่าจะทดสอบได้ครบตามเปอร์เซนต์ที่กำหนด เช่น ถ้าจะนำออกไปใช้จริงต้องทดสอบให้ครบ 100% ด้วยการวัดตามจำนวนบรรทัดของโปรแกรม หรือบางโครงการอาจจะต้องการแค่ 80% ของการวัดทุกๆเงื่อนไขของชุดคำสั่งที่เขียนขึ้นมาใหม่ เป็นต้น อย่างไรก็ตามวิธีการวัดเพียงวิธีการเดียวอาจจะไม่ได้ยืนยันว่าการทดสอบของเราสมบูรณ์ เช่น การวัดตามจำนวนบรรทัดของโปรแกรมอาจจะไม่ครอบคลุมบางเงื่อนไขของการทำงาน ดังนั้นอาจจะต้องนำแผนการทดสอบมาพิจารณาร่วมกับการวัดทุกๆเงื่อนไขของชุดคำสั่งหรือการวัดตามเส้นทางการทำงานของโปรแกรม ซึ่งอาจจะนำไปสู่การต้องเพิ่มเงื่อนไขการทดสอบเพิ่มเติมแต่จะช่วยให้เรามั่นใจว่าโปรแกรมของเราจะมีคุณภาพดีที่สุดเท่าที่จะทำได้

     ถึงแม้ว่าการที่เราสามารถดูโปรแกรมแกรมต้นฉบับได้จะทำให้การทดสอบของเราดูเป็นระบบ แต่การเห็นรายละเอียดของโปรแกรมทั้งหมดจะทำให้ยากต่อการออกแบบชุดทดสอบที่เหมาะสม ดังนั้นการทดสอบแบบอิงตามรหัสโปรแกรมจึงเหมาะกับทีมพัฒนามากกว่า แต่การทดสอบโดยทีมพัฒนาก็สามารถเกิดข้อผิดพลาดได้ เช่น ถ้าทีมพัฒนาไม่ได้ถอดความต้องการตามสเปกออกมาอย่างถูกต้อง การทดสอบก็จะเป็นไปในทิศทางที่ไม่ถูกต้องตามสเปกเช่นกัน