Black Box Testing เป็นเทคนิคการทดสอบซอฟต์แวร์ที่ใช้วัดฟังก์ชันของระบบโดยไม่ต้องรู้โครงสร้างภายในของซอฟต์แวร์ หรือไม่ต้องดูโค้ด สามารถนำไปใช้ได้โดยไม่ต้องมีความรู้เกี่ยวกับโครงสร้างหรือโค้ดภายใน โดยมองระบบที่เกี่ยวข้องเป็นกล่องดำ (black box) โดยเป้าหมายของการทดสอบแบบ Black Box คือต้องวัดว่าระบบสามารถให้ผลลัพธ์ตามที่ต้องการหรือไม่ โดยจะต้องทดสอบผลลัพธ์ที่ไม่ได้คาดหวังด้วย เช่นกันกับผลลัพธ์ที่คาดหวังจากระบบ
เทคนิคการออกแบบทดสอบแบบ Black Box เป็นอีกหนึ่งเทคนิคที่ Tester ใช้บ่อยๆ สามารถนำไปใช้ทดสอบทุกระดับเช่น Unit, Integration, System และ User Acceptance Testing โดย Black Box Testing มีข้อดีและข้อเสีย มาดูกันด้านล่าง
ข้อดีของ Black Box Tests:
- ไม่จำเป็นต้องมีความรู้ในโค้ดเนื่องจากการสร้างทดสอบเป็นงานของ Tester เอง
- เนื่องจากการพัฒนาและการทดสอบโค้ดโดย Developer และ Tester ต่างกัน การทดสอบจะสามารถดำเนินได้จากมุมมองต่างๆ และจะสามารถตรวจหาข้อผิดพลาดที่ไม่ได้รับการสังเกตได้อย่างง่ายดาย
- สามารถทดสอบได้อย่างรวดเร็วและมีประสิทธิภาพ
- สามารถสร้างสถานการณ์การทดสอบได้เร็วทันทีหลังจากกำหนดความต้องการ
- เมื่อใช้วิธีการนี้ในระบบขนาดใหญ่ จะได้ผลลัพธ์ที่มีประสิทธิภาพสูง
ข้อเสียของ Black Box Tests:
- เนื่องจากไม่รู้โครงสร้างภายในของระบบ จึงเป็นไปได้ที่จะยากต่อการค้นหาข้อผิดพลาดที่เกิดขึ้นในโค้ด
- บางกรณีการทดสอบโดย Developer อาจทำซ้ำกับการทดสอบแบบ Black Box อยู่แล้ว
- ไม่สามารถใช้กับซอฟต์แวร์ที่มีโค้ดที่ซับซ้อน
- ไม่สามารถตรวจสอบทุกๆ กรณีได้ ซึ่งอาจเป็นไปได้ว่ามีฟังก์ชันที่ยังไม่ได้รับการทดสอบ
7 เทคนิคการทดสอบแบบ Black Box
- Equivalence Division Design (การออกแบบแบ่งส่วนเท่าเทียม) เทคนิคนี้เรียกได้ว่าเป็นเทคนิคการทดสอบแบ่งส่วนเท่าเทียม โดยคือการแบ่งกลุ่มของเงื่อนไขการทดสอบที่มีลักษณะและการใช้งานเหมือนกัน และเลือกชุดข้อมูลจำกัดจำนวนจากแต่ละกลุ่มที่กำหนดเพื่อใช้ในการทดสอบ
- Boundary Value Technique Design (การออกแบบเทคนิคค่าขอบเขต) เป็นเทคนิคการทดสอบโดยการตรวจสอบค่าต่ำสุดและค่าสูงสุดของตัวแปรแทนที่จะมุ่งเน้นไปที่จุดเดียวในซอฟต์แวร์เพื่อหาข้อผิดพลาดในซอฟต์แวร์ นอกจากนี้ เทคนิคนี้ยังใช้เพราะความน่าจะเป็นของข้อผิดพลาดในค่าขอบเขตของซอฟต์แวร์สูงกว่า
- Decision Table Test Design (การออกแบบการทดสอบตารางการตัดสินใจ) เป็นเทคนิคการทดสอบที่ใช้กับซอฟต์แวร์ที่มีเงื่อนไขธุรกิจหลายอย่าง กฎการทำธุรกิจถูกเขียนไว้บนตารางและค่าที่สามารถใช้สำหรับอินพุทและเอาต์พุทจะแสดงในตารางนี้ และสร้างสถานการณ์การทดสอบที่เป็นไปได้ทั้งหมดในตาราง
- Classification Tree Test Design (การออกแบบการทดสอบต้นไม้ประเภท) เป็นเทคนิคการออกแบบการทดสอบ โดยที่เทคนิคนี้จะจำแนกเงื่อนไขการทดสอบไว้ในรูปแบบต้นไม้ ที่มีลักษณะเป็นส่วนประกอบที่สามารถเทียบเท่ากันได้และสร้างสถานการณ์การทดสอบโดยอิงความสัมพันธ์ของส่วนประกอบเหล่านั้นกับกัน
- Paired Test Design Technique (การออกแบบเทคนิคทดสอบแบบคู่) เป็นเทคนิคการออกแบบทดสอบที่ลดจำนวนสถานการณ์การทดสอบลงอย่างมีนัยสำคัญในกรณีที่ฟังก์ชันของซอฟต์แวร์ที่กำลังทดสอบมีมากกว่าหนึ่งชุด แทนที่จะทดสอบกับสถานการณ์ที่มีเพียงหนึ่งอินพุทและเอาต์พุท เทคนิคนี้จะใช้สถานการณ์ทดสอบที่มีสองอินพุทเพื่อเพิ่มการตรวจสอบข้อผิดพลาด และช่วยประหยัดเวลาการทดสอบได้อย่างมาก
- State Transition Test Design Technique (การออกแบบการทดสอบการเปลี่ยนสถานะ) เป็นเทคนิคการออกแบบการทดสอบโดยการประเมินเงื่อนไขที่ผ่านมาและสภาพปัจจุบันของซอฟต์แวร์ การทดสอบการเปลี่ยนสถานะจะถูกทดสอบ โดยที่การเปลี่ยนสถานะที่ประสบความสำเร็จและไม่ประสบความสำเร็จจะถูกพล็อตลงในแผนภูมิ นี่เป็นเทคนิคที่ถูกนำมาใช้บ่อยในระบบฝังตัวหรือระบบอิเล็กโทรนิกส์
- Use Case Test Design Technique (การออกแบบการทดสอบ Use Case) ในเทคนิคนี้ สถานการณ์ทดสอบถูกสร้างขึ้นโดยใช้ข้อกำหนดที่เป็นฟังก์ชันและไม่ใช่ฟังก์ชัน คุณสมบัติที่สำคัญที่สุดของเทคนิคนี้คือว่าสถานการณ์ทดสอบเป็นชัดเจนและละเอียดถี่ถ้วน โดยพื้นฐานแล้ววิธีการทดสอบจะวัดผู้ใช้งานและว่าสถานการณ์ที่ผู้ใช้คาดหวังจากระบบเกิดขึ้นหรือไม่