การทดสอบปริมาตรคืออะไร? เรียนรู้ด้วยตัวอย่าง
⚡ สรุปอย่างชาญฉลาด
การทดสอบปริมาณ (Volume Testing) คือการทดสอบแอปพลิเคชันด้วยข้อมูลจำนวนมหาศาล เพื่อดูว่าการจัดเก็บข้อมูล การสืบค้นข้อมูล และเวลาตอบสนองทำงานอย่างไรเมื่อฐานข้อมูลมีขนาดใหญ่ขึ้น เรียกอีกอย่างว่าการทดสอบน้ำท่วม (Flood Testing) และเป็นการปรับขนาดตามปริมาณข้อมูล ไม่ใช่จำนวนผู้ใช้งาน
การทดสอบปริมาตรคืออะไร?
การทดสอบปริมาตร เป็นการทดสอบซอฟต์แวร์ประเภทหนึ่งโดยที่ซอฟต์แวร์อยู่ภายใต้ข้อมูลจำนวนมหาศาล มันก็เรียกอีกอย่างว่า การทดสอบน้ำท่วม การทดสอบปริมาณจะทำเพื่อวิเคราะห์ประสิทธิภาพของระบบโดยการเพิ่มปริมาณข้อมูลในฐานข้อมูล
ด้วยความช่วยเหลือของการทดสอบปริมาณ คุณสามารถศึกษาผลกระทบต่อเวลาตอบสนองและพฤติกรรมของระบบได้เมื่อสัมผัสกับข้อมูลปริมาณมาก
ตัวอย่างเช่น บริการสตรีมมิ่งเพลงอาจได้รับการทดสอบด้วยแคตตาล็อกที่มีเพลงมากถึง 50 ล้านเพลง tracใช้ ks และตารางประวัติการฟังที่มีข้อมูลหลายพันล้านแถว เพื่อตรวจสอบว่าการค้นหาและการแนะนำยังคงให้ผลลัพธ์ภายในเวลาที่ยอมรับได้หรือไม่
โปรดสังเกตความแตกต่าง: การทดสอบปริมาตรช่วยเพิ่มปริมาณ ปริมาณข้อมูล ระบบยังคงอยู่ การเพิ่มขึ้นของ จำนวนผู้ใช้งานพร้อมกัน คือการทดสอบโหลด ซึ่งเป็นการทดสอบที่แตกต่างออกไป โดยมีวัตถุประสงค์ที่แตกต่างกัน
ประโยชน์ของการทดสอบปริมาตร
- การระบุปัญหาด้านกำลังการผลิตตั้งแต่เนิ่นๆ จะช่วยหลีกเลี่ยงค่าใช้จ่ายที่สูงกว่ามากในการแก้ไขปัญหาเหล่านั้นในระหว่างการผลิต
- ช่วยในการเริ่มต้นแผนการขยายขนาดได้รวดเร็วยิ่งขึ้น
- การระบุปัญหาคอขวดตั้งแต่เนิ่นๆ
- ช่วยให้มั่นใจได้ว่าระบบของคุณสามารถใช้งานในโลกแห่งความเป็นจริงได้แล้ว
เหตุใดจึงต้องทำการทดสอบปริมาณ (Volume Testing)?
วัตถุประสงค์ของการดำเนินการทดสอบปริมาตรคือ
- ตรวจสอบประสิทธิภาพของระบบด้วยปริมาณข้อมูลที่เพิ่มขึ้นในฐานข้อมูล
- ระบุปัญหาที่อาจเกิดขึ้นเมื่อชุดข้อมูลมีขนาดใหญ่ขึ้น
- เพื่อหาจุดที่ความเสถียรของระบบลดลง
- การทดสอบปริมาตรจะช่วยระบุความจุของระบบหรือแอปพลิเคชัน - ปริมาตรปกติและปริมาณมาก
วิธีทำการทดสอบปริมาตร
ในการทดสอบปริมาตร จำเป็นต้องทดสอบสิ่งต่อไปนี้
- ทดสอบเพื่อดูว่าข้อมูลสูญหายหรือไม่
- ตรวจสอบเวลาตอบสนองของระบบ
- ตรวจสอบว่าข้อมูลถูกจัดเก็บอย่างถูกต้องหรือไม่
- ตรวจสอบว่าข้อมูลถูกเขียนทับโดยไม่มีการแจ้งเตือนใดๆ หรือไม่
- ตรวจสอบว่าคำเตือนและข้อความแสดงข้อผิดพลาดปรากฏขึ้นจริงเมื่อถึงขีดจำกัดปริมาณข้อมูล
- ตรวจสอบว่าข้อมูลที่มีปริมาณมากส่งผลต่อความเร็วในการประมวลผลหรือไม่
- ตรวจสอบให้แน่ใจว่าระบบมีหน่วยความจำและพื้นที่จัดเก็บข้อมูลเพียงพอตามที่ไดรฟ์ต้องการ
- ตรวจสอบให้แน่ใจว่าการทดสอบปริมาตรครอบคลุมทั้งระบบ ไม่ใช่แค่ส่วนประกอบใดส่วนประกอบหนึ่ง
- มีความเสี่ยงหรือไม่หากปริมาณข้อมูลมากกว่าที่กำหนด
- ตรวจสอบว่ามีหลักประกันใดบ้างที่ระบุว่าปริมาณข้อมูลจะไม่เกินปริมาณสูงสุดที่กำหนดไว้หรือไม่
แนวปฏิบัติที่ดีที่สุดสำหรับการทดสอบปริมาณมาก
แนวทางปฏิบัติหลายอย่างด้านล่างนี้คล้ายคลึงกับการทดสอบโหลด เนื่องจากทั้งสองมักดำเนินการในสภาพแวดล้อมเดียวกัน ส่วนแนวทางปฏิบัติที่เฉพาะเจาะจงกับปริมาณข้อมูลนั้นเกี่ยวข้องกับชุดข้อมูลเอง:
- หยุดเซิร์ฟเวอร์ทั้งหมดและตรวจสอบบันทึกทั้งหมด
- ก่อนการทดสอบโหลดจะรันสถานการณ์จำลองของแอปพลิเคชันด้วยตนเอง
- เพื่อผลลัพธ์ที่มีประโยชน์ที่สุดให้แบ่งจำนวนผู้ใช้ออก
- เพื่อเอาชนะข้อจำกัดด้านใบอนุญาต ให้สร้างสมดุลเวลาคิด
- ระมัดระวังกับการสร้างใหม่
- วิเคราะห์กรณีการใช้งานเพื่อการปรับปรุงเมื่อมีการสร้างพื้นฐานแล้ว
- การทดสอบปริมาตรซ้ำๆ บางส่วนจะเป็นสิ่งที่หลีกเลี่ยงไม่ได้ ในกรณีที่เกิดปัญหาคอขวดด้านประสิทธิภาพ
การทดสอบปริมาตรเทียบกับการทดสอบโหลด
| การทดสอบปริมาตร | โหลดการทดสอบ |
|---|---|
|
|
|
|
ความท้าทายในการทดสอบปริมาตร
- การกระจายตัวของหน่วยความจำสร้างได้ยาก
- การสร้างคีย์แบบไดนามิก
- เชิงสัมพันธ์ Integrity ของข้อมูลที่สร้างขึ้น
การทดสอบนี้แตกต่างจากการทดสอบประสิทธิภาพอื่นๆ อย่างไร
การทดสอบประสิทธิภาพเป็นกลุ่มของการทดสอบที่แตกต่างกันในรูปแบบของแรงที่ใช้ ซึ่งเป็นเหตุผลที่ทำให้การทดสอบเหล่านี้มักสับสนกันได้ง่าย
| ประเภทการทดสอบ | สิ่งที่เพิ่มขึ้น | คำถามมันตอบ |
|---|---|---|
| โหลดการทดสอบ | จำนวนผู้ใช้งานพร้อมกัน ตามจำนวนสูงสุดที่คาดการณ์ไว้ | สามารถบรรลุเป้าหมายภายใต้ปริมาณการจราจรสูงสุดปกติได้หรือไม่? |
| การทดสอบปริมาตร | ข้อมูลที่จัดเก็บอยู่ในฐานข้อมูล | ระบบสามารถรับมือกับการเพิ่มขนาดของชุดข้อมูลได้หรือไม่? |
| การทดสอบความเครียด | รับน้ำหนักเกินความจุจนเกิดความเสียหาย | มันพังตรงไหน และพังอย่างไร? |
| การทดสอบขัดขวาง | โหลดได้ทันทีและรวดเร็วมาก | มันสามารถเอาชีวิตรอดและฟื้นตัวจากแรงกระแทกได้หรือไม่? |
| การทดสอบความทนทาน | ระยะเวลาการใช้งาน ภายใต้ภาระปกติ | ประสิทธิภาพจะลดลงเมื่อเวลาผ่านไปหรือไม่? |
| การทดสอบการแช่ | ระยะเวลา, แหล่งข้อมูลการรับชม | มีการรั่วไหลของหน่วยความจำหรือแฮนด์เดิลหรือไม่? |
| การทดสอบความเสถียร | เงื่อนไขที่แตกต่างกัน | มันยังคงเชื่อถือได้อยู่หรือไม่เมื่อสภาพแวดล้อมเปลี่ยนแปลงไป? |
ความแตกต่างที่สำคัญที่สุดในที่นี้คือ: การทดสอบปริมาณข้อมูลจะปรับขนาดข้อมูล ในขณะที่การทดสอบโหลดจะปรับขนาดผู้ใช้งาน รายงานที่ใช้เวลาสองวินาทีในการประมวลผลข้อมูลหมื่นแถว แต่ใช้เวลาสองนาทีในการประมวลผลข้อมูลหมื่นแถว แสดงว่าปัญหาอยู่ที่ปริมาณข้อมูล ไม่ใช่ปัญหาเรื่องภาระงาน และการเพิ่มความจุของเซิร์ฟเวอร์ก็ไม่สามารถแก้ไขปัญหานี้ได้
วิธีการสร้างข้อมูลทดสอบสำหรับการทดสอบปริมาณ (Volume Testing)
ในส่วนของความท้าทายนั้นระบุว่า การสร้างข้อมูลที่สมจริงเป็นส่วนที่ยากที่สุดของการทดสอบปริมาณมาก ในทางปฏิบัติมีการใช้แนวทางอยู่สี่วิธี และแต่ละวิธีก็มีข้อดีข้อเสียแตกต่างกันไป
| เข้าใกล้ | สัจนิยม | ข้อเสียหลัก |
|---|---|---|
| สำเนาข้อมูลการผลิต | สูงสุด | การเปิดเผยข้อมูลด้านความเป็นส่วนตัวและการปฏิบัติตามกฎระเบียบ |
| สำเนาการผลิตที่ถูกปิดบัง | จุดสูง | การปิดบังข้อมูลอาจทำให้ความสมบูรณ์ของการอ้างอิงเสียหายได้ |
| การสร้างสังเคราะห์ | กลาง | การกระจายตัวอาจไม่ตรงกับความเป็นจริง |
| การจราจรการผลิตที่เล่นซ้ำ | จุดสูง | ต้องใช้โครงสร้างพื้นฐานในการบันทึกข้อมูล |
ไม่ว่าคุณจะเลือกเส้นทางใดก็ตาม คุณสมบัติสามประการต้องเป็นจริง มิฉะนั้นการทดสอบจะไม่สามารถวัดผลได้อย่างมีประโยชน์
- ความสมบูรณ์ของการอ้างอิง คีย์ต่างประเทศทุกตัวต้องได้รับการแก้ไข แถวที่ไม่มีเจ้าของนับล้านแถวจะทดสอบระบบจัดเก็บข้อมูล แต่จะไม่ทดสอบเส้นทางการเชื่อมต่อที่แอปพลิเคชันใช้งานจริง
- ความสัมพันธ์เชิงความเป็นจริง หากตารางข้อมูลการผลิตมีสิบล้านแถวสำหรับลูกค้าสองร้อยราย การสร้างข้อมูลสิบล้านแถวสำหรับลูกค้าสิบล้านรายจะทำให้แผนการค้นหาข้อมูลแตกต่างกันอย่างสิ้นเชิง
- การกระจายที่สมจริง ข้อมูลจริงมักไม่สมดุล ข้อมูลแบบสุ่มสม่ำเสมอจะซ่อนพาร์ติชันที่มีการใช้งานสูงและการแย่งชิงดัชนีที่ทำให้เกิดปัญหาในระบบการผลิต
คำเตือนเชิงปฏิบัติเกี่ยวกับการรักษาความเป็นส่วนตัว การคัดลอกข้อมูลจากระบบการผลิตไปยังสภาพแวดล้อมทดสอบเป็นสาเหตุที่พบบ่อยที่สุดของการรั่วไหลของข้อมูลในการทดสอบ ควรปิดบังข้อมูลส่วนบุคคลก่อนที่สำเนาจะออกจากระบบการผลิต ไม่ใช่หลังจากนั้น

