การทดสอบ STRESS ในการทดสอบซอฟต์แวร์คืออะไร
การทดสอบความเครียด
การทดสอบความเครียด เป็นประเภทหนึ่งของการทดสอบซอฟต์แวร์ที่ยืนยันความเสถียรและความน่าเชื่อถือของแอปพลิเคชันซอฟต์แวร์ เป้าหมายของการทดสอบความเครียดคือการวัดซอฟต์แวร์จากความทนทานและความสามารถในการจัดการข้อผิดพลาดภายใต้สภาวะโหลดหนักมาก และเพื่อให้แน่ใจว่าซอฟต์แวร์จะไม่หยุดทำงานภายใต้สถานการณ์ที่กดดัน การทดสอบนี้ยังทดสอบเกินจุดทำงานปกติและประเมินว่าซอฟต์แวร์ทำงานอย่างไรภายใต้สภาวะที่รุนแรง
ในวิศวกรรมซอฟต์แวร์ การทดสอบความเครียดมีอีกชื่อหนึ่งว่า การทดสอบความทนทาน- ภายใต้การทดสอบความเครียด AUT จะถูกเน้นในช่วงเวลาสั้นๆ เพื่อทราบความสามารถในการทนทานของมัน การใช้งานที่โดดเด่นที่สุด ของการทดสอบภาวะวิกฤตคือการกำหนดขีดจำกัดที่ระบบหรือซอฟต์แวร์หรือฮาร์ดแวร์จะเสียหาย- นอกจากนี้ยังตรวจสอบว่าระบบแสดงให้เห็นถึงการจัดการข้อผิดพลาดที่มีประสิทธิภาพภายใต้สภาวะที่รุนแรงหรือไม่
แอปพลิเคชันที่อยู่ระหว่างการทดสอบจะเน้นย้ำเมื่อมีการคัดลอกข้อมูล 5GB จากเว็บไซต์และวางลงในแผ่นจดบันทึก แผ่นจดบันทึกอยู่ภายใต้ความเครียดและให้ข้อความแสดงข้อผิดพลาด 'ไม่ตอบสนอง'
ความจำเป็นในการทดสอบความเครียด
พิจารณาตัวอย่างแบบเรียลไทม์ต่อไปนี้ซึ่งเราสามารถค้นพบการใช้งานการทดสอบความเครียดได้
- ในช่วงเทศกาล เว็บไซต์ช้อปปิ้งออนไลน์อาจมีการเข้าชมเพิ่มขึ้นอย่างรวดเร็วหรือเมื่อมีการประกาศลดราคา
- เมื่อมีการกล่าวถึงบล็อกในหนังสือพิมพ์ชั้นนำ จะมีการเข้าชมเพิ่มขึ้นอย่างกะทันหัน
จำเป็นต้องทำการทดสอบความเครียดเพื่อรองรับการจราจรที่เพิ่มขึ้นอย่างผิดปกติดังกล่าว การไม่รองรับการรับส่งข้อมูลกะทันหันนี้อาจส่งผลให้สูญเสียรายได้และชื่อเสียง
การทดสอบความเครียดยังมีคุณค่าอย่างยิ่งด้วยเหตุผลดังต่อไปนี้:
- เพื่อตรวจสอบว่าระบบทำงานภายใต้สภาวะที่ผิดปกติหรือไม่
- การแสดงข้อความแสดงข้อผิดพลาดที่เหมาะสมเมื่อระบบอยู่ภายใต้ความเครียด
- ความล้มเหลวของระบบภายใต้สภาวะที่รุนแรงอาจส่งผลให้สูญเสียรายได้มหาศาล
- เป็นการดีกว่าที่จะเตรียมพร้อมสำหรับสภาวะที่รุนแรงโดยดำเนินการทดสอบความเครียด
เป้าหมายของการทดสอบความเครียด
เป้าหมายของการทดสอบภาวะวิกฤตคือการวิเคราะห์พฤติกรรมของระบบหลังจากเกิดความล้มเหลว เพื่อให้การทดสอบภาวะวิกฤตประสบผลสำเร็จ ระบบควรแสดงข้อความแสดงข้อผิดพลาดที่เหมาะสมในขณะที่อยู่ภายใต้สภาวะที่รุนแรง
ในการดำเนินการทดสอบความเครียด บางครั้งอาจมีการใช้ชุดข้อมูลขนาดใหญ่ซึ่งอาจสูญหายระหว่างการทดสอบความเครียด ผู้ทดสอบไม่ควรสูญเสียข้อมูลที่เกี่ยวข้องกับความปลอดภัยขณะทำการทดสอบภาวะวิกฤต
วัตถุประสงค์หลักของการทดสอบภาวะวิกฤตคือเพื่อให้แน่ใจว่าระบบจะฟื้นตัวหลังจากเกิดความล้มเหลว ซึ่งเรียกว่าเป็น ความสามารถในการฟื้นตัว.
การทดสอบโหลดเทียบกับการทดสอบความเครียด
โหลดการทดสอบ | การทดสอบความเครียด |
---|---|
โหลดการทดสอบ คือการทดสอบพฤติกรรมของระบบภายใต้สภาวะเวิร์กโหลดปกติ และเป็นเพียงการทดสอบหรือจำลองกับเวิร์กโหลดจริงเท่านั้น | การทดสอบความเครียดคือการทดสอบพฤติกรรมของระบบภายใต้สภาวะที่รุนแรงและดำเนินการจนกว่าระบบจะล้มเหลว |
การทดสอบโหลดไม่ทำให้ระบบเสียหาย | การทดสอบภาวะวิกฤตจะพยายามทำลายระบบโดยการทดสอบด้วยข้อมูลหรือทรัพยากรที่ล้นหลาม |
ประเภทของการทดสอบความเครียด
ประเภทของการทดสอบความเครียดมีดังต่อไปนี้ และอธิบายไว้ดังต่อไปนี้:
การทดสอบความเครียดแบบกระจาย:
ในระบบไคลเอนต์-เซิร์ฟเวอร์แบบกระจาย การทดสอบจะดำเนินการกับไคลเอนต์ทั้งหมดจากเซิร์ฟเวอร์ บทบาทของเซิร์ฟเวอร์ความเครียดคือการกระจายชุดการทดสอบความเครียดให้กับลูกค้าความเครียดทั้งหมด และติดตามสถานะของลูกค้า หลังจากที่ไคลเอนต์ติดต่อกับเซิร์ฟเวอร์ เซิร์ฟเวอร์จะเพิ่มชื่อไคลเอนต์และเริ่มส่งข้อมูลสำหรับการทดสอบ
ในขณะเดียวกัน เครื่องไคลเอนต์จะส่งสัญญาณหรือฮาร์ทบีทว่าเชื่อมต่อกับเซิร์ฟเวอร์ หากเซิร์ฟเวอร์ไม่ได้รับสัญญาณใดๆ จากเครื่องไคลเอนต์ จะต้องมีการตรวจสอบเพิ่มเติมสำหรับการดีบัก จากรูป เซิร์ฟเวอร์สามารถเชื่อมต่อกับไคลเอนต์ 2 ตัว (Client1 และ Client2) แต่ไม่สามารถส่งหรือรับสัญญาณจาก Client 3 และ 4 ได้
การวิ่งกลางคืนเป็นตัวเลือกที่ดีที่สุดในการดำเนินสถานการณ์การทดสอบภาวะวิกฤตเหล่านี้ เซิร์ฟเวอร์ฟาร์มขนาดใหญ่ต้องการวิธีการที่มีประสิทธิภาพมากขึ้นในการพิจารณาว่าคอมพิวเตอร์เครื่องใดมีข้อผิดพลาดด้านความเครียดซึ่งจำเป็นต้องได้รับการตรวจสอบ
การทดสอบความเครียดของแอปพลิเคชัน:
การทดสอบนี้มุ่งเน้นไปที่การค้นหาข้อบกพร่องที่เกี่ยวข้องกับการล็อคและการบล็อกข้อมูล ปัญหาเครือข่าย และคอขวดของประสิทธิภาพในแอปพลิเคชัน
การทดสอบความเครียดในการทำธุรกรรม:
ทำการทดสอบความเครียดในธุรกรรมหนึ่งรายการขึ้นไประหว่างแอปพลิเคชันสองรายการขึ้นไป ใช้สำหรับการปรับแต่งและเพิ่มประสิทธิภาพระบบ
การทดสอบความเครียดอย่างเป็นระบบ:
นี่คือการทดสอบความเครียดแบบบูรณาการซึ่งสามารถทดสอบได้ในหลายระบบที่ทำงานบนเซิร์ฟเวอร์เดียวกัน ใช้เพื่อค้นหาข้อบกพร่องที่ข้อมูลแอปพลิเคชันหนึ่งบล็อกแอปพลิเคชันอื่น
การทดสอบความเครียดเชิงสำรวจ:
นี่เป็นหนึ่งในประเภทของการทดสอบภาวะวิกฤตที่ใช้ในการทดสอบระบบด้วยพารามิเตอร์หรือสภาวะที่ผิดปกติซึ่งไม่น่าจะเกิดขึ้นในสถานการณ์จริง ใช้เพื่อค้นหาข้อบกพร่องในสถานการณ์ที่ไม่คาดคิดเช่น
- ผู้ใช้จำนวนมากเข้าสู่ระบบในเวลาเดียวกัน
- หากเครื่องสแกนไวรัสเริ่มทำงานในทุกเครื่องพร้อมกัน
- หากฐานข้อมูลออฟไลน์เมื่อเข้าถึงจากเว็บไซต์
- เมื่อข้อมูลจำนวนมากถูกแทรกเข้าในฐานข้อมูลพร้อมกัน
การทดสอบความเครียดทำอย่างไร?
กระบวนการทดสอบความเครียดสามารถทำได้ใน 5 ขั้นตอนหลัก:
ขั้นตอนที่ 1) การวางแผนการทดสอบความเครียด: ที่นี่คุณรวบรวมข้อมูลระบบ วิเคราะห์ระบบ กำหนดเป้าหมายการทดสอบภาวะวิกฤต
ขั้นตอนที่ 2) สร้างสคริปต์การทำงานอัตโนมัติ: ในขั้นตอนนี้ คุณจะสร้างสคริปต์อัตโนมัติของการทดสอบความเครียด สร้างข้อมูลการทดสอบสำหรับสถานการณ์ความเครียด
ขั้นตอนที่ 3) การดำเนินการสคริปต์: ในขั้นตอนนี้ คุณจะรันสคริปต์อัตโนมัติของการทดสอบความเครียด และจัดเก็บผลลัพธ์ของความเครียด
ขั้นตอนที่ 4) การวิเคราะห์ผลลัพธ์: ในขั้นตอนนี้ คุณจะวิเคราะห์ผลการทดสอบความเครียดและระบุจุดคอขวด
ขั้นตอนที่ 5) การปรับแต่งและการเพิ่มประสิทธิภาพ: ในขั้นตอนนี้ คุณจะต้องปรับแต่งระบบ เปลี่ยนการกำหนดค่า เพิ่มประสิทธิภาพโค้ดโดยมีเป้าหมายเพื่อให้บรรลุเกณฑ์มาตรฐานที่ต้องการ
สุดท้ายนี้ คุณจะรันวงจรทั้งหมดอีกครั้งเพื่อดูว่าการปรับแต่งนั้นให้ผลลัพธ์ที่ต้องการหรือไม่ ตัวอย่างเช่น ไม่ใช่เรื่องแปลกที่จะต้องมีกระบวนการทดสอบความเครียด 3 ถึง 4 รอบเพื่อให้บรรลุเป้าหมายการปฏิบัติงาน
เครื่องมือที่แนะนำสำหรับการทดสอบความเครียด
โหลดรันเนอร์
LoadRunner จาก HP เป็นเครื่องมือทดสอบโหลดที่ใช้กันอย่างแพร่หลาย ผลการทดสอบโหลดที่จัดทำโดย Loadrunner ถือเป็นเกณฑ์มาตรฐาน
เจมิเตอร์
Jmeter เป็นเครื่องมือทดสอบโอเพ่นซอร์ส เป็นเครื่องมือที่บริสุทธิ์ Java การประยุกต์ใช้ความเครียดและ การทดสอบประสิทธิภาพJmeter มีวัตถุประสงค์เพื่อครอบคลุมประเภทการทดสอบ เช่น โหลด ฟังก์ชัน ความเครียด ฯลฯ ต้องใช้ JDK 5 ขึ้นไปจึงจะทำงานได้
เครื่องทดสอบความเครียด
เครื่องมือนี้ให้การวิเคราะห์ประสิทธิภาพของเว็บแอปพลิเคชันอย่างครอบคลุม ให้ผลลัพธ์ในรูปแบบกราฟิก และใช้งานง่ายมาก ไม่จำเป็นต้องมีสคริปต์ระดับสูงและให้ผลตอบแทนจากการลงทุนที่ดี
Neo โหลด
นี่เป็นเครื่องมือยอดนิยมที่มีอยู่ในตลาดเพื่อทดสอบเว็บและ โทรศัพท์มือถือ การใช้งาน เครื่องมือนี้สามารถจำลองผู้ใช้หลายพันคนเพื่อประเมินประสิทธิภาพของแอปพลิเคชันภายใต้การโหลดและวิเคราะห์เวลาตอบสนอง นอกจากนี้ยังรองรับการทดสอบประสิทธิภาพ โหลด และความเครียดแบบผสานรวมบนคลาวด์ ใช้งานง่าย คุ้มค่า และให้ความสามารถในการขยายขนาดที่ดี
ตัวชี้วัดสำหรับการทดสอบความเครียด
ตัวชี้วัดช่วยในการประเมินประสิทธิภาพของระบบและโดยทั่วไปจะมีการศึกษาเมื่อสิ้นสุดการทดสอบความเครียด ตัวชี้วัดที่ใช้กันทั่วไปคือ –
การวัดความสามารถในการปรับขนาดและประสิทธิภาพ
- จำนวนหน้าต่อวินาที: วัดจำนวนหน้าที่ถูกร้องขอ / วินาที
- ปริมาณงาน: เมตริกพื้นฐาน – ขนาดข้อมูลการตอบสนอง/วินาที
- รอบ: จำนวนครั้งที่มีการวางแผนสถานการณ์การทดสอบเทียบกับจำนวนครั้งที่ไคลเอ็นต์ดำเนินการ
การตอบสนองของแอปพลิเคชัน
- Hit time: เวลาเฉลี่ยในการดึงรูปภาพหรือเพจ
- เวลาเป็นไบต์แรก: เวลาในการส่งคืนข้อมูลหรือข้อมูลไบต์แรก
- เวลาเพจ: ใช้เวลาในการดึงข้อมูลทั้งหมดในเพจ
ความล้มเหลว
- การเชื่อมต่อที่ล้มเหลว: จำนวนการเชื่อมต่อที่ล้มเหลวที่ถูกปฏิเสธโดยไคลเอนต์ (Weak Signal)
- รอบที่ล้มเหลว: จำนวนรอบที่ล้มเหลว
- การเข้าชมที่ล้มเหลว: จำนวนความพยายามที่ล้มเหลวโดยระบบ (ลิงก์เสียหรือภาพที่มองไม่เห็น)
สรุป
วัตถุประสงค์ของการทดสอบภาวะวิกฤตคือการตรวจสอบระบบภายใต้สภาวะที่รุนแรง โดยจะตรวจสอบทรัพยากรระบบ เช่น หน่วยความจำ โปรเซสเซอร์ เครือข่าย ฯลฯ และตรวจสอบความสามารถของระบบในการกู้คืนกลับสู่สถานะปกติ จะตรวจสอบว่าระบบแสดงข้อความแสดงข้อผิดพลาดที่เหมาะสมในขณะที่อยู่ภายใต้ความเครียดหรือไม่
ตัวอย่างการทดสอบความเครียด
- เว็บไซต์อีคอมเมิร์ซประกาศลดราคาช่วงเทศกาล
- เว็บไซต์ข่าวในช่วงเวลาที่มีเหตุการณ์สำคัญบางอย่าง
- เว็บไซต์ผลการศึกษาของคณะกรรมการการศึกษา
- เว็บไซต์โซเชียลเน็ตเวิร์กหรือบล็อก แอพ ฯลฯ