(ฉันคิดว่านี่จะเป็นคำถามสัมภาษณ์ที่ดีแต่ในกรณีของฉันมันเป็นประโยชน์มากกว่านั้น)
เรามีแอปพลิเคชั่นขนาดใหญ่และซับซ้อนที่จำลองกระบวนการปฏิกิริยาเคมีที่ยาวและซับซ้อนระหว่างส่วนประกอบทางเคมีหลายสิบชนิด เราอยู่ในขั้นตอนของการออกแบบการทดสอบการยอมรับสำหรับแอปพลิเคชัน แต่เราค่อนข้างหวาดกลัวด้วยจำนวนเส้นทางที่เป็นไปได้ในการทดสอบ มันเกิดขึ้นกับฉันว่าสถานการณ์ของเราเป็นเหมือนสิ่งที่ทีมงาน Google แผนที่ต้องเผชิญเมื่อถึงเวลาต้องทดสอบอัลกอริทึมการวางแผนเส้นทางในคุณลักษณะ "ขอเส้นทาง" เห็นได้ชัดว่าพวกเขาไม่สามารถทดสอบ (ตรวจสอบและตรวจสอบ) ทุกเส้นทางที่เป็นไปได้ ดังนั้นพวกเขาจึงมั่นใจได้อย่างไรว่าแอปพลิเคชันของพวกเขาจะทำงานได้ในทุกสถานการณ์
และเนื่องจากฉันไม่ได้คาดหวังว่าพวกเขาจะทำมันได้อย่างไรให้ฉันถามคุณ: คุณจะออกแบบชุดทดสอบที่มีรหัสครอบคลุมเพียงพอได้อย่างไร สำรวจทุกเส้นทางที่อาจเกิดขึ้นผ่านระบบ
สิ่งที่ฉันกำลังมองหาคือหลักการที่คุณจะใช้ในการแยกแยะปัญหาที่ยากจะแยกออกเป็นชิ้นเล็ก ๆ ซึ่งหยั่งรู้ได้ผลรวมของการประเมินทั้งหมดเป็นที่น่าพอใจ: "ฉันไม่สามารถทดสอบทุกอย่างได้ แต่ฉันสามารถทดสอบสิ่งนี้ได้ นี่และนี่ - และก็เพียงพอแล้ว " ฉันไม่ได้มองหาวิธีการที่ "ถูกต้อง" แต่เป็นวิธีที่รอบคอบให้ข้อ จำกัด ด้านงบประมาณ / เวลาในโลกแห่งความเป็นจริง
(ฉันใช้ตัวอย่าง Google maps เป็นฟอยล์เพื่อขอคำตอบเฉพาะเจาะจงที่สุดเท่าที่จะทำได้)