เกรย์คืออะไร Box การทดสอบ? เทคนิค ตัวอย่าง

สีเทา Box การทดสอบ

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

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

สีเทา Box การทดสอบเป็นวิธีการทดสอบซอฟต์แวร์ซึ่งเป็นการผสมผสานระหว่างทั้งสองวิธี สีขาว Box การทดสอบ และสีดำ Box วิธีการทดสอบ

  • ในสีขาว Box การทดสอบโครงสร้างภายใน (รหัส) เป็นที่รู้จักกัน
  • ในสีดำ Box ไม่ทราบการทดสอบโครงสร้างภายใน (รหัส)
  • ในสีเทา Box การทดสอบโครงสร้างภายใน (รหัส) เป็นที่รู้จักเพียงบางส่วน

สีเทา Box การทดสอบ

สาขาวิชาวิศวกรรมซอฟต์แวร์ เกรย์ Box การทดสอบช่วยให้สามารถทดสอบได้ทั้งสองด้านของแอปพลิเคชัน ชั้นการนำเสนอ และส่วนของโค้ด โดยส่วนใหญ่แล้วการทดสอบจะมีประโยชน์ใน การทดสอบการผสานรวม และ Penetration Testing.

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

ทำไมต้องเกรย์. Box การทดสอบ

สีเทา Box การทดสอบจะดำเนินการด้วยเหตุผลดังต่อไปนี้

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

สีเทา Box กลยุทธ์การทดสอบ

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

เพื่อทำการทดสอบ Gray box-

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

เทคนิคที่ใช้สำหรับการทดสอบ Grey box ได้แก่

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

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

ขั้นตอนในการดำเนินการทดสอบ Grey box มีดังนี้:

  • ขั้นตอนที่ 1: ระบุอินพุต
  • ขั้นตอนที่ 2: ระบุผลลัพธ์
  • ขั้นตอนที่ 3: ระบุเส้นทางหลัก
  • ขั้นตอนที่ 4: ระบุฟังก์ชันย่อย
  • ขั้นตอนที่ 5: พัฒนาอินพุตสำหรับฟังก์ชันย่อย
  • ขั้นตอนที่ 6: พัฒนาเอาต์พุตสำหรับฟังก์ชันย่อย
  • ขั้นตอนที่ 7: ดำเนินการกรณีทดสอบสำหรับฟังก์ชันย่อย
  • ขั้นตอนที่ 8: ตรวจสอบผลลัพธ์ที่ถูกต้องสำหรับฟังก์ชันย่อย
  • ขั้นตอนที่ 9: ทำซ้ำขั้นตอนที่ 4 และ 8 สำหรับฟังก์ชันย่อยอื่นๆ
  • ขั้นตอนที่ 10: ทำซ้ำขั้นตอนที่ 7 และ 8 สำหรับฟังก์ชันย่อยอื่นๆ

กรณีทดสอบสำหรับการทดสอบกล่องสีเทาอาจรวมถึงที่เกี่ยวข้องกับ GUI ที่เกี่ยวข้องกับความปลอดภัย ที่เกี่ยวข้องกับฐานข้อมูล ที่เกี่ยวข้องกับเบราว์เซอร์ Operaที่เกี่ยวข้องกับระบบ ฯลฯ

สีเทา Box ความท้าทายในการทดสอบ

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

สรุป

  • ต้นทุนโดยรวมของข้อบกพร่องของระบบสามารถลดลงและป้องกันไม่ให้ส่งต่อได้ด้วยการทดสอบ Grey box
  • การทดสอบกล่องสีเทาเหมาะกับ GUI มากกว่า การทดสอบสมรรถนะ, การประเมินความปลอดภัย, เว็บแอปพลิเคชัน, บริการบนเว็บ ฯลฯ
  • เทคนิคที่ใช้สำหรับการทดสอบ Grey Box
    • การทดสอบเมทริกซ์
    • การทดสอบการถดถอย
    • การทดสอบข้าวโอ๊ตหรืออาร์เรย์มุมฉาก
    • การทดสอบรูปแบบ