การทดสอบหน่วยของอัลกอริทึมแบบสุ่ม / ไม่กำหนด
โครงการปัจจุบันของฉันรวบรัดเกี่ยวข้องกับการสร้าง "เหตุการณ์แบบสุ่ม - จำกัด " ฉันกำลังสร้างตารางการตรวจสอบ บางคนขึ้นอยู่กับข้อ จำกัด ของตารางที่เข้มงวด คุณทำการตรวจสอบสัปดาห์ละครั้งในวันศุกร์เวลา 10:00 น. การตรวจสอบอื่น ๆ คือ "สุ่ม"; มีข้อกำหนดขั้นพื้นฐานที่กำหนดค่าได้เช่น "การตรวจสอบจะต้องเกิดขึ้น 3 ครั้งต่อสัปดาห์", "การตรวจสอบจะต้องเกิดขึ้นระหว่างเวลา 9.00 น. - 21.00 น." และ "ไม่ควรมีการตรวจสอบสองครั้งภายในระยะเวลา 8 ชั่วโมงเดียวกัน" แต่ ภายในข้อ จำกัด ใดก็ตามที่กำหนดค่าไว้สำหรับชุดการตรวจสอบเฉพาะวันที่และเวลาที่เกิดขึ้นไม่ควรคาดเดาได้ การทดสอบหน่วยและ TDD, IMO มีคุณค่าอย่างมากในระบบนี้เนื่องจากสามารถใช้ในการสร้างแบบเพิ่มหน่วยในขณะที่ข้อกำหนดทั้งหมดยังไม่สมบูรณ์และทำให้แน่ใจว่าฉันไม่ได้ "ทำวิศวกรรมมากเกินไป" เพื่อทำสิ่งที่ฉันทำ ตอนนี้ฉันรู้ว่าฉันต้องการ ตารางงานที่เข้มงวดเป็นงานชิ้นเอกสำหรับ TDD อย่างไรก็ตามฉันพบว่ามันยากที่จะกำหนดสิ่งที่ฉันกำลังทดสอบเมื่อฉันเขียนการทดสอบสำหรับส่วนที่สุ่มของระบบ ฉันสามารถยืนยันได้ว่าเวลาทั้งหมดที่ผลิตโดยตัวจัดตารางเวลาจะต้องตกอยู่ภายใต้ข้อ จำกัด แต่ฉันสามารถใช้อัลกอริทึมที่ผ่านการทดสอบดังกล่าวทั้งหมดโดยไม่มีเวลาที่แท้จริง "สุ่ม" มาก ในความเป็นจริงนั้นเป็นสิ่งที่เกิดขึ้นจริง …