การทดสอบ STRESS ในการทดสอบซอฟต์แวร์คืออะไร

การทดสอบความเครียด

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

ภาพการทดสอบความเครียด

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

แอปพลิเคชันที่อยู่ระหว่างการทดสอบจะเน้นย้ำเมื่อมีการคัดลอกข้อมูล 5GB จากเว็บไซต์และวางลงในแผ่นจดบันทึก แผ่นจดบันทึกอยู่ภายใต้ความเครียดและให้ข้อความแสดงข้อผิดพลาด 'ไม่ตอบสนอง'

การทดสอบ STRESS ในการทดสอบซอฟต์แวร์คืออะไร: เครื่องมือ ความต้องการ และประเภท

ความจำเป็นในการทดสอบความเครียด

พิจารณาตัวอย่างแบบเรียลไทม์ต่อไปนี้ซึ่งเราสามารถค้นพบการใช้งานการทดสอบความเครียดได้

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

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

การทดสอบความเครียดยังมีคุณค่าอย่างยิ่งด้วยเหตุผลดังต่อไปนี้:

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

เป้าหมายของการทดสอบความเครียด

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

ในการดำเนินการทดสอบความเครียด บางครั้งอาจมีการใช้ชุดข้อมูลขนาดใหญ่ซึ่งอาจสูญหายระหว่างการทดสอบความเครียด ผู้ทดสอบไม่ควรสูญเสียข้อมูลที่เกี่ยวข้องกับความปลอดภัยขณะทำการทดสอบภาวะวิกฤต

วัตถุประสงค์หลักของการทดสอบภาวะวิกฤตคือเพื่อให้แน่ใจว่าระบบจะฟื้นตัวหลังจากเกิดความล้มเหลว ซึ่งเรียกว่าเป็น ความสามารถในการฟื้นตัว.

การทดสอบโหลดเทียบกับการทดสอบความเครียด

การทดสอบโหลดเทียบกับรูปภาพการทดสอบความเครียด

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

ประเภทของการทดสอบความเครียด

ประเภทของการทดสอบความเครียดมีดังต่อไปนี้ และอธิบายไว้ดังต่อไปนี้:

การทดสอบความเครียดแบบกระจาย:

ประเภทของการทดสอบความเครียด

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

ในขณะเดียวกัน เครื่องไคลเอนต์จะส่งสัญญาณหรือฮาร์ทบีทว่าเชื่อมต่อกับเซิร์ฟเวอร์ หากเซิร์ฟเวอร์ไม่ได้รับสัญญาณใดๆ จากเครื่องไคลเอนต์ จะต้องมีการตรวจสอบเพิ่มเติมสำหรับการดีบัก จากรูป เซิร์ฟเวอร์สามารถเชื่อมต่อกับไคลเอนต์ 2 ตัว (Client1 และ Client2) แต่ไม่สามารถส่งหรือรับสัญญาณจาก Client 3 และ 4 ได้

การวิ่งกลางคืนเป็นตัวเลือกที่ดีที่สุดในการดำเนินสถานการณ์การทดสอบภาวะวิกฤตเหล่านี้ เซิร์ฟเวอร์ฟาร์มขนาดใหญ่ต้องการวิธีการที่มีประสิทธิภาพมากขึ้นในการพิจารณาว่าคอมพิวเตอร์เครื่องใดมีข้อผิดพลาดด้านความเครียดซึ่งจำเป็นต้องได้รับการตรวจสอบ

การทดสอบความเครียดของแอปพลิเคชัน:

การทดสอบนี้มุ่งเน้นไปที่การค้นหาข้อบกพร่องที่เกี่ยวข้องกับการล็อคและการบล็อกข้อมูล ปัญหาเครือข่าย และคอขวดของประสิทธิภาพในแอปพลิเคชัน

การทดสอบความเครียดในการทำธุรกรรม:

ทำการทดสอบความเครียดในธุรกรรมหนึ่งรายการขึ้นไประหว่างแอปพลิเคชันสองรายการขึ้นไป ใช้สำหรับการปรับแต่งและเพิ่มประสิทธิภาพระบบ

การทดสอบความเครียดอย่างเป็นระบบ:

นี่คือการทดสอบความเครียดแบบบูรณาการซึ่งสามารถทดสอบได้ในหลายระบบที่ทำงานบนเซิร์ฟเวอร์เดียวกัน ใช้เพื่อค้นหาข้อบกพร่องที่ข้อมูลแอปพลิเคชันหนึ่งบล็อกแอปพลิเคชันอื่น

การทดสอบความเครียดเชิงสำรวจ:

นี่เป็นหนึ่งในประเภทของการทดสอบภาวะวิกฤตที่ใช้ในการทดสอบระบบด้วยพารามิเตอร์หรือสภาวะที่ผิดปกติซึ่งไม่น่าจะเกิดขึ้นในสถานการณ์จริง ใช้เพื่อค้นหาข้อบกพร่องในสถานการณ์ที่ไม่คาดคิดเช่น

  1. ผู้ใช้จำนวนมากเข้าสู่ระบบในเวลาเดียวกัน
  2. หากเครื่องสแกนไวรัสเริ่มทำงานในทุกเครื่องพร้อมกัน
  3. หากฐานข้อมูลออฟไลน์เมื่อเข้าถึงจากเว็บไซต์
  4. เมื่อข้อมูลจำนวนมากถูกแทรกเข้าในฐานข้อมูลพร้อมกัน

การทดสอบความเครียดทำอย่างไร?

กระบวนการทดสอบความเครียดสามารถทำได้ใน 5 ขั้นตอนหลัก:

ขั้นตอนที่ 1) การวางแผนการทดสอบความเครียด: ที่นี่คุณรวบรวมข้อมูลระบบ วิเคราะห์ระบบ กำหนดเป้าหมายการทดสอบภาวะวิกฤต

ขั้นตอนที่ 2) สร้างสคริปต์การทำงานอัตโนมัติ: ในขั้นตอนนี้ คุณจะสร้างสคริปต์อัตโนมัติของการทดสอบความเครียด สร้างข้อมูลการทดสอบสำหรับสถานการณ์ความเครียด

ขั้นตอนที่ 3) การดำเนินการสคริปต์: ในขั้นตอนนี้ คุณจะรันสคริปต์อัตโนมัติของการทดสอบความเครียด และจัดเก็บผลลัพธ์ของความเครียด

ขั้นตอนที่ 4) การวิเคราะห์ผลลัพธ์: ในขั้นตอนนี้ คุณจะวิเคราะห์ผลการทดสอบความเครียดและระบุจุดคอขวด

ขั้นตอนที่ 5) การปรับแต่งและการเพิ่มประสิทธิภาพ: ในขั้นตอนนี้ คุณจะต้องปรับแต่งระบบ เปลี่ยนการกำหนดค่า เพิ่มประสิทธิภาพโค้ดโดยมีเป้าหมายเพื่อให้บรรลุเกณฑ์มาตรฐานที่ต้องการ

สุดท้ายนี้ คุณจะรันวงจรทั้งหมดอีกครั้งเพื่อดูว่าการปรับแต่งนั้นให้ผลลัพธ์ที่ต้องการหรือไม่ ตัวอย่างเช่น ไม่ใช่เรื่องแปลกที่จะต้องมีกระบวนการทดสอบความเครียด 3 ถึง 4 รอบเพื่อให้บรรลุเป้าหมายการปฏิบัติงาน

เครื่องมือที่แนะนำสำหรับการทดสอบความเครียด

โหลดรันเนอร์

LoadRunner จาก HP เป็นเครื่องมือทดสอบโหลดที่ใช้กันอย่างแพร่หลาย ผลการทดสอบโหลดที่จัดทำโดย Loadrunner ถือเป็นเกณฑ์มาตรฐาน

เจมิเตอร์

Jmeter เป็นเครื่องมือทดสอบโอเพ่นซอร์ส เป็นเครื่องมือที่บริสุทธิ์ Java การประยุกต์ใช้ความเครียดและ การทดสอบประสิทธิภาพJmeter มีวัตถุประสงค์เพื่อครอบคลุมประเภทการทดสอบ เช่น โหลด ฟังก์ชัน ความเครียด ฯลฯ ต้องใช้ JDK 5 ขึ้นไปจึงจะทำงานได้

เครื่องทดสอบความเครียด

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

Neo โหลด

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

ตัวชี้วัดสำหรับการทดสอบความเครียด

ตัวชี้วัดช่วยในการประเมินประสิทธิภาพของระบบและโดยทั่วไปจะมีการศึกษาเมื่อสิ้นสุดการทดสอบความเครียด ตัวชี้วัดที่ใช้กันทั่วไปคือ –

การวัดความสามารถในการปรับขนาดและประสิทธิภาพ

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

การตอบสนองของแอปพลิเคชัน

  • Hit time: เวลาเฉลี่ยในการดึงรูปภาพหรือเพจ
  • เวลาเป็นไบต์แรก: เวลาในการส่งคืนข้อมูลหรือข้อมูลไบต์แรก
  • เวลาเพจ: ใช้เวลาในการดึงข้อมูลทั้งหมดในเพจ

ความล้มเหลว

  • การเชื่อมต่อที่ล้มเหลว: จำนวนการเชื่อมต่อที่ล้มเหลวที่ถูกปฏิเสธโดยไคลเอนต์ (Weak Signal)
  • รอบที่ล้มเหลว: จำนวนรอบที่ล้มเหลว
  • การเข้าชมที่ล้มเหลว: จำนวนความพยายามที่ล้มเหลวโดยระบบ (ลิงก์เสียหรือภาพที่มองไม่เห็น)

สรุป

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

ตัวอย่างการทดสอบความเครียด

  1. เว็บไซต์อีคอมเมิร์ซประกาศลดราคาช่วงเทศกาล
  2. เว็บไซต์ข่าวในช่วงเวลาที่มีเหตุการณ์สำคัญบางอย่าง
  3. เว็บไซต์ผลการศึกษาของคณะกรรมการการศึกษา
  4. เว็บไซต์โซเชียลเน็ตเวิร์กหรือบล็อก แอพ ฯลฯ