การทดสอบการแช่คืออะไร? ความหมาย ความหมาย ตัวอย่าง

การทดสอบการแช่

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

ภาพด้านล่างแสดงรอบการทดสอบที่แสดงการทดสอบการแช่ในขั้นตอนใด (ประเภทของการทดสอบประสิทธิภาพ) ดำเนินการบนแอปพลิเคชัน

การทดสอบการแช่

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

ทำไมต้อง Soak Test?

ระบบอาจทำงานได้ตามปกติเมื่อใช้เป็นเวลา 2 ชั่วโมง แต่เมื่อใช้งานระบบเดียวกันอย่างต่อเนื่องเป็นเวลา 10 ชั่วโมงหรือมากกว่านั้น ระบบอาจล้มเหลวหรือทำงานผิดปกติ/สุ่ม/อาจหยุดทำงาน การทดสอบ Soak Testing จะดำเนินการเพื่อคาดการณ์ความล้มเหลวดังกล่าว

ควรทำ Soak Test เมื่อใด?

การทดสอบแบบแช่ควรดำเนินการในสถานการณ์ต่อไปนี้: –

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

กลยุทธ์การทดสอบการแช่

Long Session Soak Testing เป็นกลยุทธ์ที่ระบบอยู่ภายใต้โหลดเป็นเวลานาน

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

ภายใต้การทดสอบแช่เซสชันระยะยาว กิจกรรมหลายวัน (เช่น 30 วัน) จะดำเนินการในกรอบเวลาที่จำกัด (เช่น 2 วัน) จำนวนธุรกรรมในกรอบเวลาที่จำกัดนี้ควรตรงกันหรือเกินกว่ามูลค่าธุรกรรมหลายวัน ควรเน้นที่จำนวนธุรกรรมที่ประมวลผล ส่วนที่สำคัญที่สุดของ Soak Testing คือการตรวจสอบหน่วยความจำที่มีอยู่ใน CPU และจำนวนหน่วยความจำที่จะใช้งาน เราจำเป็นต้องบันทึกการใช้หน่วยความจำเมื่อเริ่มต้นและสิ้นสุดการทดสอบการแช่ หากจำเป็นให้ใช้หน่วยความจำของสิ่งอำนวยความสะดวกต่างๆ เช่น Java Virtual Machines ก็มีความสำคัญและจำเป็นต้องได้รับการตรวจสอบเช่นกัน

ด้านล่างนี้คือการตรวจสอบเพิ่มเติมบางประการที่ผู้ใช้/ผู้ทดสอบจำเป็นต้องทำก่อนที่จะเริ่มการทดสอบ Soak:

ก) ตรวจสอบการใช้ทรัพยากรฐานข้อมูล

b) ตรวจสอบการใช้ทรัพยากรเซิร์ฟเวอร์ (ยกเว้นการใช้งาน CPU)

c) การทดสอบ Soak ควรรันโดยผู้ใช้เห็นพ้องต้องกันตามความเป็นจริง

ลักษณะของการทดสอบการแช่

วิธีทดสอบแบบแช่มาตรฐานควรมีลักษณะดังต่อไปนี้: –

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

ตัวอย่างการทดสอบการแช่

  • ในกรณีโดเมนธนาคารเมื่อมีข้อมูลจากผู้ขายจำนวนมาก ผู้ทดสอบจะทำให้ระบบโหลดอย่างต่อเนื่องเป็นเวลา 70 ชั่วโมงถึง 150 ชั่วโมง เพื่อตรวจสอบว่าแอปพลิเคชันทำงานอย่างไรในช่วงโหลดนี้
  • สมมติว่ามีการเข้าสู่ระบบ 33,000 ครั้ง ซึ่งหมายถึงกิจกรรมที่กินเวลาเจ็ดวันครึ่ง ในกรณีนี้ การทดสอบ Soak Test เป็นเวลา 60-70 ชั่วโมงสามารถเริ่มได้ภายในเย็นวันศุกร์ เวลาประมาณ 6 น. ซึ่งสามารถทำได้เสร็จสิ้นภายใน Monday เช้าเวลา 6 น. เฉพาะการทดสอบดังกล่าวเท่านั้นจึงจะสามารถสังเกตการเสื่อมประสิทธิภาพภายใต้สภาวะควบคุมได้
  • ในกรณีของวิดีโอเกม โทรศัพท์มือถือ แอปพลิเคชัน ฯลฯ เกี่ยวข้องกับการออกจากเกมหรือแอปพลิเคชันในสถานะการทำงานเป็นเวลานาน ในโหมดการทำงานต่างๆ เช่น การทำงานเฉยๆ หยุดชั่วคราวที่หน้าจอชื่อเรื่อง และอื่นๆ เพื่อดูว่าแอปพลิเคชันนั้นสามารถรองรับโหลดที่คาดว่าจะเกิดขึ้นต่อเนื่องกันได้หรือไม่

ปัญหาทั่วไปที่พบในระหว่างการทดสอบ Soak

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

สรุป

  • In วิศวกรรมซอฟต์แวร์, การทดสอบการแช่จะดำเนินการเพื่อตรวจสอบว่าแอปพลิเคชันที่ทดสอบสามารถรองรับโหลดต่อเนื่องได้หรือไม่
  • เป็นการทดสอบประสิทธิภาพประเภทหนึ่ง
  • ช่วยให้ระบบพิจารณาว่าจะสามารถรองรับปริมาณการใช้งานที่สูงมากได้หรือไม่
  • ในการทดสอบประเภทนี้ สิ่งที่ได้รับการตรวจสอบโดยทั่วไปคือการใช้หน่วยความจำโดยแอปพลิเคชันในระบบ
  • การตรวจสอบที่ผู้ใช้/ผู้ทดสอบต้องทำก่อนที่จะเริ่ม Soak Testing
  • ตรวจสอบการใช้ทรัพยากรฐานข้อมูล
  • ตรวจสอบการใช้ทรัพยากรเซิร์ฟเวอร์ (เช่น การใช้งาน CPU)
  • การทดสอบ Soak ควรทำงานโดยผู้ใช้เห็นพ้องต้องกันตามความเป็นจริง