การทดสอบโดเมนในการทดสอบซอฟต์แวร์คืออะไร? (พร้อมตัวอย่าง)

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

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

  • 🔘 แนวคิดหลัก: แบ่งโดเมนข้อมูลขาเข้าแต่ละโดเมนออกเป็นกลุ่มสมมูล และทดสอบค่าตัวแทนเพียงค่าเดียวต่อกลุ่ม ไม่ใช่ทดสอบข้อมูลขาเข้าที่เป็นไปได้ทั้งหมด
  • ☑️ จุดเน้นที่ขอบเขต: ค่าที่อยู่ใกล้ขอบเขตของคลาส และค่าที่อยู่นอกขอบเขตนั้นเล็กน้อย มักแสดงข้อผิดพลาดแบบ "ผิดไปหนึ่ง" บ่อยกว่าค่าในช่วงกลางของคลาสมาก
  • เทคนิคแบบจับคู่: การวิเคราะห์ชั้นสมมูลตัดสินกลุ่มpingการวิเคราะห์ค่าขอบเขตจะตัดสินว่าสมาชิกใดในแต่ละกลุ่มควรดำเนินการ
  • 🧪 ตัวอย่างการทำงาน: ระบบจำหน่ายตั๋วที่จัดสรรการแข่งขันตามอายุและเพศจะลดจำนวนกลุ่มอายุลงเหลือเพียงชุดทดสอบสั้นๆ ที่มีประสิทธิภาพสูง
  • 📈 การพึ่งพาความรู้: การตัดสินว่าผลลัพธ์ถูกต้องหรือไม่นั้นต้องอาศัยกฎทางธุรกิจ ดังนั้นเทคนิคนี้จึงเหมาะกับส่วนของตรรกะขนาดเล็กที่เข้าใจได้ง่าย

การทดสอบโดเมนในการทดสอบซอฟต์แวร์ด้วยคลาสสมมูลและค่าขอบเขต

การทดสอบโดเมนคืออะไร?

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

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

การทดสอบโดเมนแตกต่างกันไปตามแต่ละโดเมนเฉพาะ ดังนั้นคุณจึงจำเป็นต้องมีความรู้เฉพาะด้านเพื่อทดสอบระบบซอฟต์แวร์

แนวทางปฏิบัติที่ง่ายกว่าในการทดสอบโดเมน

ในการทดสอบโดเมน เราจะแบ่งโดเมนออกเป็นโดเมนย่อย (คลาสที่เทียบเท่า) จากนั้นทดสอบโดยใช้ค่าจากแต่ละโดเมนย่อย ตัวอย่างเช่น หากมีการกำหนดเว็บไซต์ (โดเมน) ไว้สำหรับการทดสอบ เราจะแบ่งเว็บไซต์ออกเป็นส่วนเล็กๆ (โดเมนย่อย) เพื่อความสะดวกในการทดสอบ

ขอบเขตงานอาจเกี่ยวข้องกับการทดสอบตัวแปรป้อนเข้าตัวใดตัวหนึ่ง หรือการทดสอบตัวแปรป้อนเข้าหลายตัวรวมกัน

ผู้ปฏิบัติงานมักศึกษากรณีที่ง่ายที่สุดของการทดสอบโดเมนภายใต้ชื่ออื่นอีกสองชื่อ ได้แก่ "การทดสอบขอบเขต" และ "การวิเคราะห์ชั้นสมมูล"

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

การทดสอบระดับความเท่าเทียมกัน – แนวคิดเบื้องหลังเทคนิคนี้คือการแบ่ง (เช่น การแบ่งส่วน) ชุดของเงื่อนไขการทดสอบออกเป็นกลุ่มหรือชุดที่สามารถพิจารณาได้ว่าเหมือนกัน (กล่าวคือ ระบบควรจัดการเงื่อนไขเหล่านั้นอย่างเท่าเทียมกัน) ดังนั้น 'การแบ่งพาร์ติชันที่เท่าเทียมกัน'

รูปแบบที่เรียบง่ายนั้นใช้ได้กับการทดสอบโดเมน –

  • เพื่อทดสอบตัวแปรอินพุตเท่านั้น
  • เฉพาะเมื่อทำการทดสอบที่ ระดับระบบ
  • เมื่อทดสอบทีละครั้งเท่านั้น
  • เมื่อทดสอบด้วยวิธีผิวเผินเท่านั้น

สามารถทำให้ง่ายขึ้นได้ดังนี้:

ตัวแปร คลาสเทียบเท่าคลาสที่ถูกต้อง คลาสเทียบเท่าคลาสไม่ถูกต้อง ขอบเขตและกรณีพิเศษ หมายเหตุ :
X 0-100 0
100
<0 -1
> 100 101

คำอธิบาย:

  • หากช่องข้อมูลยอมรับช่วงค่าตั้งแต่ 0-100 ช่องข้อมูลนั้นไม่ควรยอมรับค่า -1 และ 101 เนื่องจากเป็นค่าที่ไม่ถูกต้องและอยู่นอกช่วงค่าที่กำหนด
  • ช่องข้อมูลควรยอมรับค่าต่างๆ เช่น 0, 100 และตัวเลขใดๆ ระหว่างนั้น

การสร้างโต๊ะแบบนี้ (ในทางปฏิบัติ)

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

กลยุทธ์การทดสอบโดเมน

ในการทดสอบโดเมน คุณต้องพิจารณาสิ่งต่อไปนี้

  • เรากำลังทดสอบโดเมนใด
  • จะจัดกลุ่มค่าออกเป็นคลาสได้อย่างไร?
  • ค่าใดของคลาสที่จะทดสอบ?
  • จะตรวจสอบผลลัพธ์ได้อย่างไร?

เรากำลังทดสอบโดเมนใด

ทุกโดเมนที่เราทดสอบจะมีฟังก์ชันการป้อนข้อมูลและฟังก์ชันการส่งออกข้อมูล จะมีตัวแปรป้อนข้อมูลที่ต้องป้อน และต้องตรวจสอบผลลัพธ์ที่เหมาะสม แผนภาพด้านล่างแสดงความสัมพันธ์ระหว่างการป้อนข้อมูลและการส่งออกข้อมูลนั้น

กลยุทธ์การทดสอบโดเมนที่แสดงให้เห็นตัวแปรนำเข้าที่ไหลเข้าสู่โดเมนและสร้างผลลัพธ์

ตัวอย่างการทดสอบโดเมน

พิจารณาสถานการณ์การทดสอบอินพุตเดียว:

C = a+b โดยที่ a และ b เป็นตัวแปรอินพุต และ C คือตัวแปรเอาต์พุต

ในตัวอย่างข้างต้น ไม่จำเป็นต้องมีการจัดกลุ่ม หรือการรวมตัวแปรใดๆ ทั้งสิ้น

พิจารณาอินพุตหลายรายการด้านล่างและสถานการณ์เอาต์พุตที่เหมาะสม:

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

ตามสถานการณ์ เรามีหกสถานการณ์ตามอายุและการแข่งขัน:

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

ในกรณีนี้ ข้อมูลที่ป้อนจะเป็นอายุและเพศ และบัตรเข้าร่วมการแข่งขันจะถูกออกให้ นี่คือกรณีของการแบ่งกลุ่มข้อมูล หรือเรียกง่ายๆ ว่า การแบ่งกลุ่มping เรื่องของค่านิยมจึงเข้ามามีบทบาทในเรื่องนี้

จะจัดกลุ่มค่าออกเป็นคลาสได้อย่างไร?

การแบ่งค่าบางค่าหมายถึงการแยกค่าเหล่านั้นออกเป็นส่วนที่ไม่ทับซ้อนกันping ชุดย่อย

ดังที่เราได้กล่าวไว้ก่อนหน้านี้ การแบ่งพาร์ติชันมีสองประเภท:

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

จากตัวอย่างข้างต้น เรากำลังแบ่งค่าออกเป็นกลุ่มย่อย โดยเราแบ่งช่วงอายุออกเป็นกลุ่มต่างๆ ดังนี้:

  • ชั้นเรียนที่ 1: เด็กอายุ 5-10 ปี
  • ชั้นเรียนที่ 2: เด็กอายุต่ำกว่า 5 ปี
  • ชั้นเรียนที่ 3: เด็กอายุ 10-15 ปี
  • ชั้นเรียนที่ 4: เด็กที่มีอายุมากกว่า 15 ปี

ค่าใดของคลาสที่จะทดสอบ?

ค่าที่นำมาทดสอบควรเป็นค่าขอบเขต:

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

สำหรับตัวอย่างข้างต้น เรามีคลาสต่อไปนี้ที่จะได้รับการทดสอบ:

ตัวอย่างเช่น สำหรับสถานการณ์ที่ 1:

ชั้นเรียนที่ 1: เด็กอายุ 5 ถึง 10 ปี (อายุมากกว่า 5 ปี และน้อยกว่าหรือเท่ากับ 10 ปี)

ค่าขอบเขต:

  • ค่าต่างๆ ควรเท่ากับหรือน้อยกว่า 10 ดังนั้น อายุ 10 ปีจึงควรรวมอยู่ในกลุ่มนี้ด้วย
  • ค่าควรมากกว่า 5 ดังนั้น จึงไม่ควรรวมอายุ 5 ปีไว้ในชั้นเรียนนี้
  • ค่าต่างๆ ควรเท่ากับหรือน้อยกว่า 10 ดังนั้น อายุ 11 ปีจึงไม่ควรนับรวมในกลุ่มนี้
  • ค่าควรมากกว่า 5 ดังนั้น จึงควรรวมอายุ 6 ปีไว้ในชั้นเรียนนี้

ค่าการแบ่งส่วนความเท่าเทียมกัน:

การแบ่งส่วนสมมูล (Equivalence partition) หมายถึงกรณีที่ต้องทดสอบเพียงเงื่อนไขเดียวจากแต่ละส่วน ในกรณีนี้ เราจะถือว่าหากเงื่อนไขหนึ่งในส่วนนั้นใช้ได้ เงื่อนไขอื่นๆ ทั้งหมดก็จะใช้ได้เช่นกัน ในทำนองเดียวกัน หากเงื่อนไขหนึ่งในส่วนนั้นใช้ไม่ได้ เราก็จะถือว่าเงื่อนไขอื่นๆ ก็จะใช้ไม่ได้เช่นกัน ตัวอย่างเช่น

(อายุ >5 และ <=10)

เนื่องจากค่าตั้งแต่ 6 ถึง 10 เป็นค่าที่ถูกต้อง จึงต้องเลือกค่าใดค่าหนึ่งจาก 6, 7, 8, 9 และ 10 ดังนั้น อายุที่เลือกคือ “8” ซึ่งเป็นอายุที่ถูกต้องสำหรับกลุ่มอายุระหว่าง (อายุ >5 และ <=10) การแบ่งกลุ่มแบบนี้เรียกว่า การแบ่งกลุ่มตามความเท่าเทียมกัน

สถานการณ์ ค่าขอบเขตที่จะต้องดำเนินการ ค่าการแบ่งพาร์ติชันที่เท่ากัน
เด็กผู้ชาย – อายุ >5 และ <=10 อายุที่ป้อน = 6
อายุที่ป้อน = 5
อายุที่ป้อน = 11
อายุที่ป้อน = 10
อายุที่ป้อน = 8
เด็กผู้หญิง – อายุ >5 และ <=10 อายุที่ป้อน = 6
อายุที่ป้อน = 5
อายุที่ป้อน = 11
อายุที่ป้อน = 10
อายุที่ป้อน = 8
เด็กผู้ชาย – อายุ >10 และ <=15 อายุที่ป้อน = 11
อายุที่ป้อน = 10
อายุที่ป้อน = 15
อายุที่ป้อน = 16
อายุที่ป้อน = 13
เด็กผู้หญิง – อายุ >10 และ <=15 อายุที่ป้อน = 11
อายุที่ป้อน = 10
อายุที่ป้อน = 15
อายุที่ป้อน = 16
อายุที่ป้อน = 13
อายุ<=5 อายุที่ป้อน = 4
อายุที่ป้อน = 5
อายุที่ป้อน = 3
อายุ> 15 อายุที่ป้อน = 15
อายุที่ป้อน = 16
อายุที่ป้อน = 25

เราจะทราบได้อย่างไรว่าโปรแกรมผ่านหรือไม่ผ่านการทดสอบ?

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

การพิจารณาผลลัพธ์ของตัวอย่าง: หน้าจอด้านล่างแสดงผลลัพธ์การออกตั๋วสำหรับแต่ละกลุ่มอายุและเพศ

ผลลัพธ์การออกตั๋วสำหรับแต่ละกลุ่มอายุและเพศที่ใช้ในการกำหนดผลการทดสอบโดเมน

ดังนั้น หากกรณีทดสอบทั้งหมดข้างต้นผ่านหมด โดเมนการออกตั๋วในการแข่งขันก็จะผ่าน หากไม่ผ่าน โดเมนนั้นก็จะสอบไม่ผ่าน

โครงสร้างการทดสอบโดเมน

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

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

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

ในทางปฏิบัติ ป้ายกำกับทั้งสองแบบปรากฏให้เห็น คลาสที่ได้มาจากข้อกำหนดทำให้เป็นเช่นนั้น กล่องดำ เทคนิคนี้ใช้คลาสที่ได้มาจากโค้ด ทำให้มันเป็นกล่องขาว (white box) การวิเคราะห์นั้นเหมือนกันทุกประการ

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

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

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

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

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

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

ทดสอบเฉพาะคลาสที่ถูกต้องและข้ามไปping การทดสอบเชิงลบโดยใช้ขอบเขตแบบรวมในกรณีที่กฎเป็นแบบไม่รวม และไม่สนใจตัวแปรผลลัพธ์เลย

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