การวิเคราะห์ค่าขอบเขตและการแบ่งส่วนความเท่าเทียมกัน

⚡ สรุปอย่างชาญฉลาด

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

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

แบบจำลองห้าจุดของการวิเคราะห์ค่าขอบเขต

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

การแบ่งส่วนความเท่าเทียมกันคืออะไร?

การแบ่งส่วนความเท่าเทียมกัน การแบ่งกลุ่มตามค่าเทียบเท่า (หรือเรียกอีกอย่างว่า Equivalence Class Partitioning หรือ ECP) ​​เป็นเทคนิคแบบกล่องดำที่แบ่งข้อมูลอินพุตออกเป็นกลุ่มที่มีค่าเทียบเท่ากัน ผู้ทดสอบจะเลือกตัวแทนหนึ่งตัวต่อกลุ่ม โดยสมมติว่าซอฟต์แวร์ทำงานเหมือนกันสำหรับทุกสมาชิกในกลุ่ม

  • แบ่งโดเมนอินพุตออกเป็นกลุ่มความเท่าเทียมกันที่ถูกต้องและไม่ถูกต้อง
  • ใช้ได้กับทุกกรณี ระดับการทดสอบ—หน่วย การบูรณาการ ระบบ และการยอมรับ

การวิเคราะห์ค่าขอบเขตคืออะไร?

การวิเคราะห์มูลค่าขอบเขต (BVA)หรือที่เรียกว่าการตรวจสอบช่วงค่า จะตรวจสอบความถูกต้องของค่าสุดขั้วแต่ละระดับความเท่าเทียมกัน เนื่องจากข้อบกพร่องมักกระจุกตัวอยู่ที่ขอบเขตของช่วงค่า BVA จึงมุ่งเป้าไปที่ประเด็นสำคัญ 5 ประการ:

  1. วางหลักประกันขั้นต่ำ
  2. เกินกว่าขั้นต่ำเท่านั้น
  3. ค่าเล็กน้อย
  4. ต่ำกว่าค่าสูงสุดเพียงเล็กน้อย
  5. สูงสุด

แบบจำลองห้าจุดของการวิเคราะห์ค่าขอบเขต

BVA เป็นส่วนเสริมของการแบ่งกลุ่มตามความเท่าเทียมกัน: เมื่อกำหนดคลาสแล้ว ค่าขอบเขตของคลาสจะปรากฏขึ้นพร้อมกับค่าที่คลาดเคลื่อนไปหนึ่งค่าและข้อผิดพลาดที่ขอบ

เหตุใดจึงต้องใช้การแบ่งส่วนสมมูลและการวิเคราะห์ค่าขอบเขต?

การเลือกชุดทดสอบอย่างชาญฉลาดเป็นสิ่งสำคัญเมื่อจำนวนชุดทดสอบมีมากเกินกว่าที่จะทดสอบได้อย่างครบถ้วน เทคนิคเหล่านี้มีข้อดีสามประการ:

  1. บีบอัดข้อมูลชุดทดสอบขนาดใหญ่ให้เป็นส่วนย่อยที่จัดการได้ง่ายขึ้น
  2. กำหนดหลักเกณฑ์ที่ชัดเจนสำหรับการเลือกข้อมูลทดสอบโดยไม่ลดทอนประสิทธิภาพ
  3. เหมาะสำหรับแอปพลิเคชันที่ต้องใช้การคำนวณอย่างหนักและมีตัวแปรเชิงตัวเลขจำนวนมาก

วิธีการดำเนินการแบ่งกลุ่มความเท่าเทียมกัน (ตัวอย่าง)

  • พิจารณาช่องข้อความสั่งพิซซ่าด้านล่างนี้
  • จำนวน 1–10 ถูกต้อง และจะแสดงข้อความแจ้งว่าสำเร็จ
  • จำนวนสินค้าตั้งแต่ 11–99 ไม่ถูกต้อง ทำให้เกิดข้อผิดพลาด “สั่งพิซซ่าได้เพียง 10 ชิ้นเท่านั้น”.
สั่งพิซซ่า:

เงื่อนไขการทดสอบ:

  1. ตัวเลขใดๆ ที่มากกว่า 10 ถือว่าไม่ถูกต้อง
  2. ตัวเลขใดๆ ที่ต่ำกว่า 1 ถือว่าไม่ถูกต้อง
  3. Numbers ข้อ 1–10 ถือว่าถูกต้อง
  4. ตัวเลขสามหลักใดๆ เช่น -100 ถือว่าไม่ถูกต้อง

การทดสอบทุกค่าทำให้เกิดกรณีมากกว่า 100 กรณี การแบ่งกลุ่มตามความเท่าเทียมกันจะจัดกลุ่มโดเมนออกเป็นกลุ่มที่มีพฤติกรรมเหมือนกัน

กลุ่มการแบ่งพาร์ติชันที่เท่าเทียมกันสำหรับข้อมูลป้อนเข้าพิซซ่า

กลุ่มเหล่านี้เรียกว่า คลาสเทียบเท่าเลือกค่าหนึ่งค่าต่อคลาส หากค่านี้ผ่าน ค่าอื่นๆ ก็จะผ่านทั้งหมด หากค่านี้ไม่ผ่าน ค่าทั้งหมดในคลาสนั้นก็จะล้มเหลว

ค่าตัวแทนชั้นเทียบเท่า

วิธีดำเนินการวิเคราะห์ค่าขอบเขต (ตัวอย่าง)

โดยใช้ฟิลด์ Pizza เดียวกัน BVA จะตรวจสอบขอบของพาร์ติชันแทนที่จะตรวจสอบค่าที่กำหนดไว้ ผู้ทดสอบจะประเมินค่า 0, 1, 10 และ 11 ซึ่งครอบคลุมขอบเขตที่ถูกต้องและไม่ถูกต้อง

การวิเคราะห์ค่าขอบเขตบนข้อมูลป้อนเข้าพิซซ่า

สำหรับอินพุตที่ยอมรับค่า 1 ถึง 10 กรณีทดสอบขอบเขตมีดังนี้:

สถานการณ์ทดสอบ Descriptไอออน ผลลัพธ์ที่คาดหวัง
ค่าขอบเขต = 0 ระบบไม่ควรยอมรับ
ค่าขอบเขต = 1 ระบบควรยอมรับ
ค่าขอบเขต = 2 ระบบควรยอมรับ
ค่าขอบเขต = 9 ระบบควรยอมรับ
ค่าขอบเขต = 10 ระบบควรยอมรับ
ค่าขอบเขต = 11 ระบบไม่ควรยอมรับ

การแบ่งส่วนสมมูลเทียบกับการวิเคราะห์ค่าขอบเขต

ทั้งสองวิธีช่วยลดปริมาณการทดสอบ แต่แตกต่างกันที่จุดเน้นและระยะเวลา

แง่มุม การแบ่งส่วนความเท่าเทียมกัน การวิเคราะห์มูลค่าขอบเขต
โฟกัส กลุ่มของปัจจัยนำเข้าที่เทียบเท่ากัน ขอบของแต่ละกลุ่ม
การเลือกข้อมูล หนึ่งค่าต่อคลาส ค่าต่ำสุด, ค่าใกล้เคียงค่าต่ำสุด, ค่าปกติ, ค่าใกล้เคียงค่าสูงสุด, ค่าสูงสุด
เหมาะสำหรับ ลดจำนวนเคสที่ซ้ำซ้อน การตรวจจับข้อบกพร่องที่คลาดเคลื่อนไปหนึ่งตำแหน่ง
สั่งซื้อ นำไปใช้ก่อน นำไปใช้ถัดไป

ตัวอย่าง: การตรวจสอบความถูกต้องของช่องรหัสผ่าน

ช่องป้อนรหัสผ่านที่รับอักขระได้ 6 ถึง 10 ตัว จะแบ่งออกเป็นสามส่วน ได้แก่ 0-5, 6-10 และ 11-14 โดยแต่ละส่วนจะให้ผลลัพธ์ที่เท่ากัน

ใส่รหัสผ่าน:
# สถานการณ์ทดสอบ ผลลัพธ์ที่คาดหวัง
1 ป้อนอักขระ 0 ถึง 5 ตัว ระบบไม่ควรยอมรับ
2 ป้อนอักขระ 6 ถึง 10 ตัว ระบบควรยอมรับ
3 ป้อนอักขระ 11 ถึง 14 ตัว ระบบไม่ควรยอมรับ

แนวปฏิบัติที่ดีที่สุดสำหรับการแบ่งส่วนความเท่าเทียมกันและ BVA

ปฏิบัติตามแนวทางเหล่านี้เพื่อรักษาระดับความครอบคลุมให้แข็งแกร่งในขณะที่ควบคุมจำนวนการตรวจ:

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

ประเด็นที่สำคัญ

  • การแบ่งกลุ่มตามความเท่าเทียมกันจะจัดกลุ่มข้อมูลป้อนเข้าที่คล้ายคลึงกัน โดยให้ค่าเดียวต่อกลุ่มก็เพียงพอแล้ว
  • การวิเคราะห์ค่าขอบเขต (Boundary Value Analysis) ตรวจสอบความถูกต้องของขอบเขตการแบ่งส่วนและขอบที่ถูกต้อง/ไม่ถูกต้อง
  • ทั้งสองเป็นเทคนิคแบบกล่องดำสำหรับฟิลด์ตัวเลขหรือฟิลด์ที่อิงตามช่วงค่า
  • การรวมวิธีการเหล่านี้เข้าด้วยกันจะช่วยลดปริมาณการทดสอบโดยไม่ลดคุณภาพการตรวจจับข้อบกพร่อง

วิดีโอการวิเคราะห์ค่าขอบเขตและการแบ่งพาร์ติชันที่เท่ากัน

คลิก Good Farm Animal Welfare Awards หากไม่สามารถเข้าถึงวิดีโอได้

คำถามที่พบบ่อย

การแบ่งกลุ่มตามความเท่าเทียมกันจะเลือกตัวแทนหนึ่งตัวต่อแต่ละคลาส ในขณะที่การวิเคราะห์ค่าขอบเขตจะมุ่งเป้าไปที่ค่าสุดขั้วที่แต่ละขอบ การแบ่งกลุ่มจะลดปริมาณลง และการวิเคราะห์ค่าขอบเขตจะตรวจจับข้อบกพร่องที่จำกัด

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

ใช่ ทั้งสองอย่างใช้ได้กับ การทดสอบ APIโดยที่พารามิเตอร์และฟิลด์ข้อมูลมักมีช่วงตัวเลขหรือข้อจำกัดด้านความยาว ผู้ทดสอบจะกำหนดพาร์ติชันสำหรับข้อมูลที่ถูกต้อง ไม่ถูกต้อง และข้อมูลขอบ

ควรหลีกเลี่ยงการใช้ BVA เมื่อข้อมูลนำเข้าไม่ใช่ช่วงตัวเลข เช่น ชุดข้อมูลที่ไม่มีลำดับ ค่าบ่งชี้แบบบูลีน หรือค่าเชิงหมวดหมู่ ตารางการตัดสินใจหรือการทดสอบการเปลี่ยนสถานะจะทำงานได้ดีกว่า เนื่องจากขอบเขตไม่มีความหมายในกรณีเหล่านั้น

BVA ที่มีความทนทานสูง (Robust BVA) ขยายวิธีการมาตรฐานโดยการเพิ่มค่าที่อยู่นอกช่วงที่ถูกต้องเล็กน้อย ได้แก่ ค่าที่ต่ำกว่าค่าต่ำสุดและค่าที่สูงกว่าค่าสูงสุด เพื่อตรวจสอบว่าระบบปฏิเสธข้อมูลป้อนเข้าที่ไม่ถูกต้องอย่างชัดเจนได้อย่างไร

ใช่แล้ว เครื่องมือสร้าง AI จะวิเคราะห์ข้อกำหนดและโครงสร้างข้อมูลเพื่อแนะนำคลาสที่เทียบเท่าและค่าขอบเขต เครื่องมือต่างๆ เช่น Testim และ มาบล เรียนรู้จากประวัติข้อบกพร่องและกรณีพิเศษที่เกิดขึ้นบนพื้นผิวได้อย่างรวดเร็ว

AI ตรวจจับการทับซ้อนping พาร์ทิชัน กรณีที่ซ้ำซ้อน และขอบเขตที่ผู้ทดสอบมองข้ามไป การเรียนรู้ของเครื่องจะจัดอันดับขอบเขตที่มีความเสี่ยงสูงจากประวัติข้อบกพร่อง ทำให้สามารถเลือกการทดสอบได้อย่างชาญฉลาดขึ้นและตรวจจับปัญหาเล็กน้อยได้เร็วขึ้น

ใช่. JUnit, TestNGและ pytest รองรับการทดสอบแบบกำหนดพารามิเตอร์ ทำให้ผู้ทดสอบสามารถกำหนดพาร์ติชันและค่าขอบเขตเป็นชุดข้อมูลอินพุตได้ ซึ่งช่วยให้สามารถดำเนินการทดสอบความเท่าเทียมกันและกรณีขอบเขตอย่างเป็นระบบในไปป์ไลน์ CI ได้

สรุปโพสต์นี้ด้วย: