บทความนี้เรามาเจาะลึกการทดสอบ Performance Test ประเภทต่างๆ โดยผมจะขอเน้นถึงความแตกต่างที่สำคัญๆ และเป็นรูปแบบที่เราใช้งานกันบ่อยๆนะครับ เช่น Load Testing, Stress Testing, Endurance / Soak Testing และ Spike Testing
ก่อนอื่นเลยเราต้องเข้าใจก่อนว่า Performance Testing จะเป็นการทดสอบที่จัดอยู่ในกลุ่ม non-functional testing หรือ การทดสอบที่ไม่เกี่ยวข้องกับฟังก์ชันการทำงานของระบบ (คนละแบบกับ functional testing) แต่เป็นการทดสอบที่มุ่งเน้นไปที่คุณสมบัติอื่น ๆ ที่ไม่เกี่ยวข้องกับการทำงานโดยตรงนั่นเอง
Load Testing
เพื่อวัดประสิทธิภาพและความเสถียรของระบบภายใต้การใช้งานปกติ และการใช้งานในปริมาณมากๆ
มาตรวัดหลักๆคือ Response Time, Throughput และ การใช้ทรัพยากร
หลักการการทดสอบ จะทำการจำลองการทำงานของผู้ใช้หลายคนพร้อมกันที่มีปริมาณงานตามที่คาดหวังว่าจะเจอในสภาวะปกติ ในช่วงเวลาที่เป็นระยะเวลาที่กำหนดอ้างอิงจากการใช้งานทั่วๆไปของผู้ใช้งานแต่ละคนนั่นเอง
Endurance / Soak Testing
เพื่อวัดประสิทธิภาพและความเสถียรของระบบภายใต้การใช้งานปกติ ในระยะเวลาที่ยาวนานภายใต้การใช้งานต่อเนื่อง
มาตรวัดหลักๆคือ ความเสถียรของระบบ, การลดลงของประสิทธิภาพ และ การใช้ทรัพยากร
หลักการการทดสอบ จะทำการจำลองการใช้งานที่โหลดปกติ เป็นระยะเวลาที่ยาวนานเพื่อดูว่ามีปัญหาที่เกิดขึ้นจากการใช้งานต่อเนื่องหรือไม่ เช่น Memory Leak หรือ ประสิทธิภาพการทำงานที่ลดลง
Stress Testing
เพื่อหาจุดที่ระบบเริ่มล้มเหลว หรือทำงานไม่เสถียรภายใต้การใช้งานที่หนักเกินกว่าปกติ
มาตรวัดหลักๆคือ จุดที่ระบบเริ่มล้มเหลว (Break Point) และการ Recovery
หลักการการทดสอบ จะทำการจำลองการด้วยการเพิ่มโหลดที่สูงขึ้นเรื่อย ๆ จนกว่าระบบจะล้มเหลวหรือทำงานไม่เสถียร เพื่อดูว่าระบบจะรองรับได้สูงสุดที่เท่าไร
Spike Testing
เพื่อประเมินความสามารถของระบบในการรองรับการเพิ่มขึ้นอย่างเฉียบพลัน เช่น การจัด Friday Sale, ลดราคาแค่ช่วงเที่ยงคืน ต่างๆ
มาตรวัดหลักๆคือ Response Time, Stability และการจัดการกับข้อผิดพลาดที่เกิดขึ้น
หลักการการทดสอบ จะทำการจำลองการเพิ่มขึ้นของการใช้งานอย่างรวดเร็วในระยะเวลาสั้น ๆ แล้วกลับสู่ภาวะปกติ
ซึ่งการทำ Performance Test ยังมีอีกหลากหลายแบบให้นำไปปรับใช้กันนะครับ แต่ก่อนที่จะเริ่มทำให้เราคิดถึงจุดประสงค์ก่อนว่า เราต้องการจะรู้ Performance อะไรของ Application ของเรา ร่วมกับการคาดการณ์การใช้งานจริงของผู้ใช้งานในระบบนั่นเอง
JMeter - Performance Test
เรียนรู้การทดสอบ Performance ทั้ง Web และ API ด้วย JMeter