การทดสอบความทนทานในการทดสอบซอฟต์แวร์คืออะไร? (พร้อมตัวอย่าง)

การทดสอบความทนทาน

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

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

ความอดทนหมายถึงความสามารถ กล่าวอีกนัยหนึ่ง คุณสามารถเรียกการทดสอบความทนทานว่าเป็นการทดสอบความจุได้

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

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

สิ่งที่ต้องตรวจสอบในการทดสอบความทนทาน

การทดสอบความทนทาน

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

วิธีการทดสอบความทนทาน

ด้านล่างนี้เป็นวิธีการทดสอบพื้นฐานสำหรับการทดสอบความทนทาน
  • สภาพแวดล้อมการทดสอบ – ระบุฮาร์ดแวร์ ซอฟต์แวร์ ระบบปฏิบัติการที่จำเป็นสำหรับการทดสอบความทนทาน การมอบหมายบทบาทและความรับผิดชอบภายในทีม เป็นต้น สภาพแวดล้อมควรพร้อมก่อนดำเนินการทดสอบ นอกจากนี้ คุณยังต้องประมาณขนาดการผลิตฐานข้อมูลทั่วไปและการเติบโตในแต่ละปี ซึ่งจำเป็นสำหรับการทดสอบว่าแอปพลิเคชันของคุณจะตอบสนองอย่างไรหลังจากผ่านไป 1, 2 หรือ 5 ปี
  • การสร้างแผนการทดสอบ สถานการณ์ – ขึ้นอยู่กับลักษณะของการทดสอบ - ด้วยตนเองหรืออัตโนมัติหรือทั้งสองอย่างรวมกัน กรณีทดสอบ การออกแบบ การทบทวน และการดำเนินการควรได้รับการวางแผน การทดสอบเพื่อเน้นย้ำระบบ การทดสอบจุดแตกหัก ฯลฯ ควรเป็นส่วนหนึ่งของแผนการทดสอบด้วย การทดสอบเพื่อเน้นย้ำระบบจะกำหนดจุดพักในแอปพลิเคชัน
  • การประมาณการทดสอบ – ให้การประมาณว่าต้องใช้เวลานานเท่าใดจึงจะเสร็จสิ้นขั้นตอนการทดสอบ ควรวิเคราะห์โดยพิจารณาจากผู้ทดสอบจำนวนหนึ่งที่เกี่ยวข้องและจำนวนรอบการทดสอบที่ต้องการ
  • การวิเคราะห์ความเสี่ยง - วิเคราะห์ความเสี่ยงและดำเนินการป้องกันอย่างเหมาะสม การจัดลำดับความสำคัญของกรณีทดสอบตามปัจจัยความเสี่ยง และระบุความเสี่ยงและปัญหาด้านล่าง ผู้ทดสอบอาจค่อยๆ ในระหว่างการทดสอบความทนทาน
  • ประสิทธิภาพจะยังคงสม่ำเสมอเมื่อเวลาผ่านไปหรือไม่
  • มีปัญหาเล็กๆ น้อยๆ อื่น ๆ ที่ยังไม่ถูกตรวจพบหรือไม่?
  • มีการรบกวนจากภายนอกที่ไม่ได้รับการแก้ไขหรือไม่?
  • ตารางการทดสอบ – กำหนดงบประมาณ การส่งมอบภายในกรอบเวลา เช่น การทดสอบความทนทาน ใช้การจัดเรียงธุรกรรมจำนวนมากแต่เป็นธรรมชาติกับระบบ/แอปพลิเคชันเป็นระยะเวลาต่อเนื่องกัน

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

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

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

ข้อดีของการทดสอบความทนทาน

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

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

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

สรุป

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