ทดสอบและ V&V
UAT 494 โครงงานเทคโนโลยีระบบอากาศยานไร้คนขับและระบบอัตโนมัติ 2
บทเรียน
เมื่อเรียนจบโมดูลนี้ ผู้เรียนจะสามารถ
- แยก verification กับ validation และเลือกวิธีตรวจสอบ ทดสอบ วิเคราะห์ ตรวจพินิจ และสาธิต
- ประเมินผลการตรวจจับด้วยเมทริกซ์ความสับสนและช่วงความเชื่อมั่นแบบ Wilson
- ทดสอบข้อกำหนดเชิงตัวเลขด้วยค่าเฉลี่ยและขอบเขตบนแบบ t
- ตัดสินผ่านหรือไม่ผ่านอย่างซื่อตรงเมื่อข้อมูลมีความไม่แน่นอน
ทำไมต้องรู้
คณะกรรมการจะถามว่า “ระบบทำได้ตามข้อกำหนดจริงหรือไม่ และรู้ได้อย่างไร” คำตอบที่ดีต้องมาจากการทดสอบที่วางแผนไว้ในตารางตรวจสอบข้อกำหนด (RVM) จาก UAT 493 และต้องบอกความไม่แน่นอนของผลด้วย ไม่ใช่แค่ตัวเลขเดียว
Verification กับ Validation
คู่มือวิศวกรรมระบบของ NASA อธิบายว่า verification พิสูจน์ว่าผลิตภัณฑ์ตรงตามข้อกำหนด (“สร้างถูกวิธีหรือไม่”) ส่วน validation พิสูจน์ว่าได้สิ่งที่ผู้ใช้ต้องการเมื่อใช้ในสภาพแวดล้อมจริง (“สร้างสิ่งที่ถูกต้องหรือไม่”) วิธี verification มีสี่แบบ คือ ทดสอบ วัดข้อมูลจากการใช้งาน วิเคราะห์ ด้วยแบบจำลอง ตรวจพินิจ ด้วยการดู และ สาธิต ว่าใช้งานได้ มาตรฐาน IEEE 1012-2024 กำหนดกระบวนการ V&V ของระบบ ซอฟต์แวร์ และฮาร์ดแวร์
ผลการตรวจจับกับช่วงความเชื่อมั่น
ข้อกำหนด R1 จาก UAT 493 คือตรวจจับรอยร้าวกว้างตั้งแต่ 5 cm ด้วย recall อย่างน้อย 0.90 การนับได้ recall 0.92 จากชุดทดสอบเดียวยังไม่พอ เพราะชุดทดสอบใหม่อาจได้ต่ำกว่านี้ คู่มือสถิติของ NIST และ Agresti กับ Coull (1998) แนะนำช่วงความเชื่อมั่นแบบ Wilson (1927) สำหรับสัดส่วน
ตัวอย่างที่ 1 recall และ precision ของตัวตรวจจับ
ภาพทดสอบที่มีรอยร้าวติดป้ายไว้ 200 จุด ระบบตรวจพบ 184 จุด และแจ้งผิด 21 จุด (ข้อมูลสมมติ)
import math
TP, FN, FP = 184, 16, 21
REQ = 0.90
def wilson(k, n, z=1.96):
p = k / n
d = 1 + z * z / n
c = (p + z * z / (2 * n)) / d
h = z * math.sqrt(p * (1 - p) / n + z * z / (4 * n * n)) / d
return c - h, c + h
recall = TP / (TP + FN)
precision = TP / (TP + FP)
lo, hi = wilson(TP, TP + FN)
print(f"recall {recall:.3f}, 95% Wilson CI [{lo:.3f}, {hi:.3f}]; precision {precision:.3f}")
if lo >= REQ:
print("R1 verified with 95% confidence")
elif recall >= REQ:
print("R1 met on this sample but not with 95% confidence: report as 'met, not yet demonstrated'")
else:
print("R1 not met")
need = next(n for n in range(100, 5000, 10) if wilson(round(0.92 * n), n)[0] >= REQ)
print(f"if true recall stays near 0.92, about {need} labelled cracks are needed to show R1 with 95% confidence")
recall 0.920, 95% Wilson CI [0.874, 0.950]; precision 0.898
R1 met on this sample but not with 95% confidence: report as 'met, not yet demonstrated'
if true recall stays near 0.92, about 830 labelled cracks are needed to show R1 with 95% confidence
ค่าเฉลี่ยผ่านข้อกำหนด แต่ขอบล่างของช่วงความเชื่อมั่นต่ำกว่า 0.90 จึงยังยืนยันไม่ได้อย่างมั่นใจ รายงานที่ซื่อตรงต้องเขียนว่า “ผ่านบนชุดทดสอบนี้ แต่ยังพิสูจน์ด้วยความเชื่อมั่น 95% ไม่ได้” และบอกว่าต้องการข้อมูลเพิ่มเท่าใด
ข้อกำหนดเวลาบิน
ตัวอย่างที่ 2 R4: หนึ่งรอบ 2 km ไม่เกิน 15 นาที
บินจริง 10 รอบ ใช้ขอบเขตบนแบบด้านเดียว 95% ของค่าเฉลี่ย ค่า จากตารางของ NIST
import statistics as st
times = [13.2, 13.8, 12.9, 14.1, 13.5, 13.0, 14.4, 13.6, 13.3, 13.9] # นาที
LIMIT, T95_DF9 = 15.0, 1.833
n, mean, s = len(times), st.mean(times), st.stdev(times)
upper = mean + T95_DF9 * s / n ** 0.5
print(f"mean {mean:.2f} min, sd {s:.2f}, 95% upper bound of the mean {upper:.2f} min")
print("R4 verified (mean)" if upper <= LIMIT else "R4 not verified")
print(f"longest single round {max(times)} min; rounds over limit: {sum(t > LIMIT for t in times)}")
mean 13.57 min, sd 0.49, 95% upper bound of the mean 13.85 min
R4 verified (mean)
longest single round 14.4 min; rounds over limit: 0
ขอบบนของค่าเฉลี่ยต่ำกว่าเกณฑ์ชัดเจน และไม่มีรอบใดเกิน จึงยืนยัน R4 ได้ แต่ต้องบอกเงื่อนไขการทดสอบด้วย เช่น ความเร็วลมและน้ำหนักบรรทุก เพราะข้อกำหนดเวลาบินขึ้นกับสภาพเหล่านี้
ปฏิบัติการประจำโมดูล
ปฏิบัติการ: ดำเนินการตาม RVM
- ทบทวน RVM จาก UAT 493 ทุกข้อกำหนดต้องมีวิธี verification และเกณฑ์ผ่าน
- เตรียมชุดภาพทดสอบที่ไม่ได้ใช้ฝึกโมเดล ติดป้ายโดยผู้ที่ไม่ได้พัฒนาโมเดล
- คำนวณ recall และ precision พร้อมช่วง Wilson ด้วยตัวอย่างที่ 1
- บินทดสอบเวลาอย่างน้อย 10 รอบ บันทึกลมและน้ำหนัก วิเคราะห์ด้วยตัวอย่างที่ 2
- ทำ validation กับเจ้าหน้าที่ชลประทานจริงอย่างน้อยหนึ่งครั้ง บันทึกความเห็น
ข้อผิดพลาดที่พบบ่อย
ระวัง
- ทดสอบด้วยภาพที่ใช้ฝึกโมเดล
- รายงานค่าเดียว ไม่มีช่วงความเชื่อมั่น
- ตีความ “ผ่านบนตัวอย่าง” ว่า “พิสูจน์แล้ว”
- ไม่บันทึกเงื่อนไขการทดสอบ
- ข้าม validation กับผู้ใช้จริง
สรุป
- verification ตรวจว่าตรงข้อกำหนด validation ตรวจว่าตรงความต้องการผู้ใช้ในสภาพจริง
- สัดส่วนเช่น recall ต้องรายงานพร้อมช่วง Wilson และดูขอบล่างเทียบข้อกำหนด
- ข้อกำหนดเชิงตัวเลขใช้ขอบเขตแบบ t และค่าสุดโต่งประกอบ
- ตัดสินอย่างซื่อตรง และบอกข้อมูลที่ต้องเพิ่มเมื่อยังพิสูจน์ไม่ได้
แบบฝึกตรวจความเข้าใจ
- “เราสร้างสิ่งที่ถูกต้องหรือไม่” คือ verification หรือ validation
- TP 90 FN 10 FP 15 ได้ recall และ precision เท่าใด
- ถ้า recall 0.92 แต่ขอบล่าง 95% คือ 0.87 และข้อกำหนด 0.90 ควรรายงานอย่างไร
- วิธี verification สี่แบบมีอะไรบ้าง
- ค่าเฉลี่ย 14.0 นาที s = 0.8 n = 10 ขอบบน 95% เท่าใด (t = 1.833)
เฉลย
- Validation
- recall , precision
- ผ่านบนชุดทดสอบนี้ แต่ยังพิสูจน์ด้วยความเชื่อมั่น 95% ไม่ได้ ต้องทดสอบเพิ่ม
- ทดสอบ วิเคราะห์ ตรวจพินิจ และสาธิต
- นาที
สรุปสูตรสำคัญ
| ช่วงความเชื่อมั่นแบบ Wilson | |
| ขอบเขตบนแบบด้านเดียวของค่าเฉลี่ย |
แหล่งอ้างอิงหลัก
- National Aeronautics and Space Administration. (2016). NASA systems engineering handbook (NASA/SP-2016-6105 Rev 2). link
- IEEE. (2025). IEEE standard for system, software, and hardware verification and validation (IEEE Std 1012-2024). link
- Wilson, E. B. (1927). Probable inference, the law of succession, and statistical inference. Journal of the American Statistical Association, 22(158), 209–212. link
- Agresti, A., & Coull, B. A. (1998). Approximate is better than "exact" for interval estimation of binomial proportions. The American Statistician, 52(2), 119–126. link
- NIST/SEMATECH. Confidence intervals for proportions (section 7.2.4.1). e-Handbook of statistical methods. link
- NIST/SEMATECH. Critical values of the Student's t distribution (section 1.3.6.7.2). e-Handbook of statistical methods. link
อ่านเพิ่มเติม
ศึกษาหน่วยความรู้ที่กำหนดล่วงหน้า ดูสื่อประกอบ และทำ quiz ประจำโมดูล
ในชั้นเรียน / ภาคสนาม
พัฒนาโครงงานเป็นทีม ประชุมที่ปรึกษา และนำเสนอความก้าวหน้า
หลักฐานการเรียนรู้: ผลงานตามจุดตรวจของโครงงาน