บทช่วยสอนการทดสอบประสิทธิภาพ
การทดสอบประสิทธิภาพคืออะไร?
การทดสอบประสิทธิภาพ เป็นกระบวนการทดสอบซอฟต์แวร์ที่ใช้สำหรับทดสอบความเร็ว เวลาตอบสนอง ความเสถียร ความน่าเชื่อถือ ความสามารถในการปรับขนาด และการใช้ทรัพยากรของแอปพลิเคชันซอฟต์แวร์ภายใต้ปริมาณงานเฉพาะ วัตถุประสงค์หลักของการทดสอบประสิทธิภาพคือเพื่อระบุและขจัดปัญหาคอขวดของประสิทธิภาพในแอปพลิเคชันซอฟต์แวร์ เป็นส่วนย่อยของวิศวกรรมประสิทธิภาพและยังเป็นที่รู้จักในชื่อ “การทดสอบที่สมบูรณ์แบบ”.
จุดเน้นของการทดสอบประสิทธิภาพคือการตรวจสอบโปรแกรมซอฟต์แวร์
- ความเร็ว – กำหนดว่าแอปพลิเคชันตอบสนองอย่างรวดเร็วหรือไม่
- scalability – กำหนดโหลดสูงสุดของผู้ใช้ที่แอปพลิเคชันซอฟต์แวร์สามารถรองรับได้
- Stability – พิจารณาว่าแอปพลิเคชันมีความเสถียรภายใต้โหลดที่แตกต่างกันหรือไม่
ทำไมต้องทำการทดสอบประสิทธิภาพ?
คุณสมบัติและฟังก์ชันการทำงานที่รองรับโดยระบบซอฟต์แวร์ไม่ได้เป็นเพียงข้อกังวลเท่านั้น ประสิทธิภาพของแอปพลิเคชันซอฟต์แวร์ เช่น เวลาตอบสนอง ความน่าเชื่อถือ การใช้ทรัพยากร และความสามารถในการปรับขนาด มีความสำคัญ เป้าหมายของการทดสอบประสิทธิภาพไม่ใช่การค้นหาจุดบกพร่อง แต่เพื่อขจัดปัญหาคอขวดของประสิทธิภาพ
การทดสอบประสิทธิภาพจะดำเนินการเพื่อให้ข้อมูลเกี่ยวกับแอปพลิเคชันของตนแก่ผู้มีส่วนได้ส่วนเสียในด้านความเร็ว ความเสถียร และความสามารถในการปรับขนาด ที่สำคัญกว่านั้น การทดสอบประสิทธิภาพจะเผยให้เห็นถึงสิ่งที่ต้องปรับปรุงก่อนที่ผลิตภัณฑ์จะออกสู่ตลาด หากไม่มีการทดสอบประสิทธิภาพ ซอฟต์แวร์อาจประสบปัญหาต่างๆ เช่น ทำงานช้าในขณะที่ผู้ใช้หลายคนใช้งานพร้อมกัน ความไม่สอดคล้องกันในระบบปฏิบัติการต่างๆ และการใช้งานที่ไม่ดี
การทดสอบประสิทธิภาพจะกำหนดว่าซอฟต์แวร์ของตนตรงตามข้อกำหนดด้านความเร็ว ความสามารถในการปรับขนาด และความเสถียรภายใต้เวิร์กโหลดที่คาดไว้หรือไม่ แอปพลิเคชันที่ส่งสู่ตลาดโดยมีตัววัดประสิทธิภาพต่ำเนื่องจากไม่มีหรือการทดสอบประสิทธิภาพต่ำมีแนวโน้มที่จะได้รับชื่อเสียงที่ไม่ดีและไม่บรรลุเป้าหมายการขายที่คาดหวัง
นอกจากนี้ แอปพลิเคชันที่มีภารกิจสำคัญ เช่น โครงการส่งยานอวกาศหรืออุปกรณ์ทางการแพทย์ช่วยชีวิต ควรได้รับการทดสอบประสิทธิภาพเพื่อให้แน่ใจว่าจะทำงานได้เป็นระยะเวลานานโดยไม่มีการเบี่ยงเบน
ตามข้อมูลของ Dunn & Bradstreet บริษัทในกลุ่ม Fortune 59 จำนวน 500% ประสบปัญหาระบบหยุดทำงานประมาณ 1.6 ชั่วโมงต่อสัปดาห์ หากพิจารณาว่าบริษัทในกลุ่ม Fortune 500 ที่มีพนักงานอย่างน้อย 10,000 คน จ่ายเงิน 56 ดอลลาร์ต่อชั่วโมง ค่าใช้จ่ายด้านแรงงานสำหรับระบบหยุดทำงานขององค์กรดังกล่าวจะอยู่ที่ 896,000 ดอลลาร์ต่อสัปดาห์ ซึ่งคิดเป็นเงินมากกว่า 46 ล้านดอลลาร์ต่อปี
เพียง การหยุดทำงาน 5 นาที ของ Google.com (19 ส.ค. 13) คาดว่าจะทำให้บริษัทค้นหายักษ์ใหญ่ต้องเสียค่าใช้จ่ายเท่ากับ $ 545,000
มีการประเมินว่าบริษัทต่างๆ สูญเสียมูลค่าการขาย $ 1100 ต่อวินาที เนื่องจากล่าสุด Amazon บริการเว็บหยุดทำงาน
ดังนั้นการทดสอบประสิทธิภาพจึงมีความสำคัญ เพื่อช่วยคุณในกระบวนการนี้ โปรดดูรายชื่อนี้ เครื่องมือทดสอบประสิทธิภาพ.
ประเภทของการทดสอบประสิทธิภาพ
การทดสอบประสิทธิภาพซอฟต์แวร์มีอยู่ 6 ประเภทหลักๆ ดังที่อธิบายไว้ด้านล่างนี้
- การทดสอบโหลด – ตรวจสอบความสามารถของแอปพลิเคชันในการทำงานภายใต้โหลดของผู้ใช้ที่คาดการณ์ไว้ วัตถุประสงค์คือเพื่อระบุปัญหาคอขวดของประสิทธิภาพก่อนที่แอปพลิเคชันซอฟต์แวร์จะเผยแพร่
- การทดสอบความเครียด - เกี่ยวข้องกับการทดสอบแอปพลิเคชันภายใต้ปริมาณงานที่รุนแรงเพื่อดูว่าแอปพลิเคชันจัดการกับปริมาณข้อมูลสูงหรือการประมวลผลข้อมูลอย่างไร วัตถุประสงค์คือเพื่อระบุจุดแตกหักของแอปพลิเคชัน
- การทดสอบความทนทาน – ทำเพื่อให้แน่ใจว่าซอฟต์แวร์สามารถรองรับโหลดที่คาดหวังได้ในระยะเวลานาน
- การทดสอบขัดขวาง – ทดสอบปฏิกิริยาของซอฟต์แวร์ต่อการโหลดที่เพิ่มขึ้นอย่างกะทันหันโดยผู้ใช้
- การทดสอบปริมาตร – อยู่ระหว่างการทดสอบ Volume ขนาดใหญ่ ของ. ข้อมูลจะถูกเติมลงในฐานข้อมูล และพฤติกรรมของระบบซอฟต์แวร์โดยรวมจะได้รับการตรวจสอบ มีวัตถุประสงค์เพื่อตรวจสอบประสิทธิภาพของแอพพลิเคชั่นซอฟต์แวร์ภายใต้ปริมาณฐานข้อมูลที่แตกต่างกัน
- การทดสอบความสามารถในการปรับขนาด – วัตถุประสงค์ของการทดสอบความสามารถในการปรับขนาดคือการกำหนดประสิทธิภาพของแอปพลิเคชันซอฟต์แวร์ในการ “ขยายขนาด” เพื่อรองรับการเพิ่มขึ้นของภาระของผู้ใช้ ช่วยวางแผนการเพิ่มความจุให้กับระบบซอฟต์แวร์ของคุณ
ปัญหาด้านประสิทธิภาพทั่วไป
ปัญหาประสิทธิภาพส่วนใหญ่เกี่ยวข้องกับความเร็ว เวลาตอบสนอง เวลาโหลด และความสามารถในการปรับขนาดที่ไม่ดี ความเร็วเป็นหนึ่งในคุณสมบัติที่สำคัญที่สุดของแอปพลิเคชัน แอปพลิเคชันที่ทำงานช้าจะสูญเสียผู้ใช้ที่มีศักยภาพ การทดสอบประสิทธิภาพช่วยให้มั่นใจได้ว่าแอปพลิเคชันจะทำงานได้เร็วเพียงพอที่จะดึงดูดความสนใจของผู้ใช้ ลองดูรายการปัญหาประสิทธิภาพทั่วไปต่อไปนี้และสังเกตว่าความเร็วเป็นปัจจัยทั่วไปในปัญหามากมาย:
- ใช้เวลาโหลดนาน – โดยปกติเวลาในการโหลดคือเวลาเริ่มต้นที่ใช้ในการเริ่มต้นแอปพลิเคชัน โดยทั่วไปควรเก็บไว้ให้น้อยที่สุด แม้ว่าบางแอปพลิเคชันจะไม่สามารถโหลดได้ภายในหนึ่งนาที แต่เวลาในการโหลดควรเก็บไว้ไม่เกินไม่กี่วินาทีหากเป็นไปได้
- เวลาตอบสนองไม่ดี - เวลาตอบสนองคือเวลาที่ใช้ตั้งแต่เมื่อผู้ใช้ป้อนข้อมูลลงในแอปพลิเคชันจนกระทั่งแอปพลิเคชันตอบกลับไปยังอินพุตนั้น โดยทั่วไปควรดำเนินการอย่างรวดเร็วมาก อีกครั้งหากผู้ใช้ต้องรอนานเกินไป พวกเขาก็จะหมดความสนใจ
- ความสามารถในการขยายขนาดไม่ดี – ผลิตภัณฑ์ซอฟต์แวร์ประสบปัญหาความสามารถในการขยายขนาดได้ไม่ดี เมื่อไม่สามารถรองรับจำนวนผู้ใช้ที่คาดหวังได้ หรือเมื่อไม่รองรับผู้ใช้ในวงกว้างที่เพียงพอ โหลดการทดสอบ ควรทำเพื่อให้แน่ใจว่าแอปพลิเคชันสามารถรองรับจำนวนผู้ใช้ที่คาดหวังได้
- คอขวด – คอขวดคืออุปสรรคในระบบที่ทำให้ประสิทธิภาพโดยรวมของระบบลดลง ปัญหาคอขวดเกิดขึ้นเมื่อข้อผิดพลาดในการเขียนโค้ดหรือปัญหาด้านฮาร์ดแวร์ทำให้ปริมาณงานลดลงภายใต้โหลดบางอย่าง ปัญหาคอขวดมักเกิดจากส่วนหนึ่งของโค้ดที่ผิดพลาด กุญแจสำคัญในการแก้ไขปัญหาคอขวดคือการค้นหาส่วนของโค้ดที่ทำให้ช้าลงและพยายามแก้ไขที่นั่น โดยทั่วไปปัญหาคอขวดจะได้รับการแก้ไขโดยการแก้ไขกระบวนการทำงานที่ไม่ดีหรือเพิ่มฮาร์ดแวร์เพิ่มเติม บาง คอขวดประสิทธิภาพทั่วไป เป็น
- การใช้งาน CPU
- การใช้หน่วยความจำ
- การใช้เครือข่าย
- Operaข้อจำกัดของระบบ
- การใช้ดิสก์
วิธีทำการทดสอบประสิทธิภาพ
วิธีการที่นำมาใช้สำหรับการทดสอบประสิทธิภาพอาจแตกต่างกันอย่างมาก แต่วัตถุประสงค์ของการทดสอบประสิทธิภาพยังคงเหมือนเดิม สามารถช่วยแสดงให้เห็นว่าระบบซอฟต์แวร์ของคุณตรงตามเกณฑ์ประสิทธิภาพที่กำหนดไว้ล่วงหน้า หรือสามารถช่วยเปรียบเทียบประสิทธิภาพของซอฟต์แวร์ทั้งสองระบบได้ นอกจากนี้ยังสามารถช่วยระบุส่วนต่างๆ ของระบบซอฟต์แวร์ของคุณที่ทำให้ประสิทธิภาพลดลง
ด้านล่างนี้เป็นกระบวนการทั่วไปเกี่ยวกับวิธีการทดสอบประสิทธิภาพ
ขั้นตอนที่ 1) ระบุสภาพแวดล้อมการทดสอบของคุณ
ทำความรู้จักกับสภาพแวดล้อมการทดสอบทางกายภาพ สภาพแวดล้อมการผลิต และเครื่องมือทดสอบที่มีอยู่ ทำความเข้าใจรายละเอียดของฮาร์ดแวร์ ซอฟต์แวร์ และการกำหนดค่าเครือข่ายที่ใช้ระหว่างการทดสอบก่อนจะเริ่มกระบวนการทดสอบ ซึ่งจะช่วยให้ผู้ทดสอบสร้างการทดสอบที่มีประสิทธิภาพมากขึ้น และยังช่วยระบุความท้าทายที่อาจเกิดขึ้นซึ่งผู้ทดสอบอาจพบระหว่างขั้นตอนการทดสอบประสิทธิภาพได้อีกด้วย
ขั้นตอนที่ 2) ระบุเกณฑ์การยอมรับผลการปฏิบัติงาน
ซึ่งรวมถึงเป้าหมายและข้อจำกัดสำหรับปริมาณงาน เวลาตอบสนอง และการจัดสรรทรัพยากร นอกจากนี้ยังจำเป็นต้องระบุเกณฑ์ความสำเร็จของโครงการที่อยู่นอกเป้าหมายและข้อจำกัดเหล่านี้ ผู้ทดสอบควรได้รับมอบอำนาจให้กำหนดเกณฑ์และเป้าหมายด้านประสิทธิภาพ เนื่องจากบ่อยครั้งข้อกำหนดของโครงการจะไม่รวมเกณฑ์มาตรฐานประสิทธิภาพที่หลากหลายเพียงพอ บางทีมันอาจจะไม่มีเลยก็ได้ เมื่อเป็นไปได้ การค้นหาแอปพลิเคชันที่คล้ายกันเพื่อเปรียบเทียบเป็นวิธีที่ดีในการกำหนดเป้าหมายประสิทธิภาพ
ขั้นตอนที่ 3) การทดสอบประสิทธิภาพการวางแผนและการออกแบบ
พิจารณาว่าการใช้งานมีแนวโน้มที่จะแตกต่างกันอย่างไรในหมู่ผู้ใช้ปลายทาง และระบุสถานการณ์หลักเพื่อทดสอบกรณีการใช้งานที่เป็นไปได้ทั้งหมด จำเป็นต้องจำลองผู้ใช้ปลายทางที่หลากหลาย วางแผนข้อมูลการทดสอบประสิทธิภาพ และสรุปตัวชี้วัดที่จะรวบรวม
ขั้นตอนที่ 4) การกำหนดค่าสภาพแวดล้อมการทดสอบ
เตรียมสภาพแวดล้อมการทดสอบก่อนดำเนินการ รวมทั้งจัดเตรียมเครื่องมือและทรัพยากรอื่นๆ
ขั้นตอนที่ 5) ใช้การออกแบบการทดสอบ
สร้างการทดสอบประสิทธิภาพตามการออกแบบการทดสอบของคุณ
ขั้นตอนที่ 6) เรียกใช้การทดสอบ
ดำเนินการและติดตามการทดสอบ
ขั้นตอนที่ 7) วิเคราะห์ ปรับแต่ง และทดสอบซ้ำ
รวบรวม วิเคราะห์ และแบ่งปันผลการทดสอบ จากนั้นปรับแต่งและทดสอบอีกครั้งเพื่อดูว่าประสิทธิภาพมีการปรับปรุงหรือลดลงหรือไม่ เนื่องจากโดยทั่วไปการปรับปรุงจะมีขนาดเล็กลงในแต่ละการทดสอบซ้ำ ให้หยุดเมื่อปัญหาคอขวดเกิดจาก CPU จากนั้นคุณอาจมีตัวเลือกในการพิจารณาเพิ่มพลัง CPU
ตัวชี้วัดการทดสอบประสิทธิภาพ: พารามิเตอร์ที่ได้รับการตรวจสอบ
พารามิเตอร์พื้นฐานที่ได้รับการตรวจสอบระหว่างการทดสอบประสิทธิภาพ ได้แก่:
- การใช้งานโปรเซสเซอร์ – จำนวนเวลาที่โปรเซสเซอร์ใช้ในการดำเนินการเธรดที่ไม่ทำงาน
- การใช้หน่วยความจำ – จำนวนหน่วยความจำกายภาพที่สามารถประมวลผลบนคอมพิวเตอร์ได้
- เวลาดิสก์ – ระยะเวลาที่ดิสก์ไม่ว่างในการดำเนินการคำขออ่านหรือเขียน
- แบนด์วิดธ์ – แสดงบิตต่อวินาทีที่ใช้โดยอินเทอร์เฟซเครือข่าย
- ไบต์ส่วนตัว – จำนวนไบต์ที่กระบวนการจัดสรรซึ่งไม่สามารถแชร์ระหว่างกระบวนการอื่นได้ สิ่งเหล่านี้ใช้เพื่อวัดการรั่วไหลของหน่วยความจำและการใช้งาน
- หน่วยความจำที่มุ่งมั่น – จำนวนหน่วยความจำเสมือนที่ใช้
- หน้าหน่วยความจำ/วินาที – จำนวนหน้าที่เขียนหรืออ่านจากดิสก์เพื่อแก้ไขข้อผิดพลาดของฮาร์ดเพจ ข้อบกพร่องของฮาร์ดเพจคือเมื่อโค้ดที่ไม่ได้มาจากชุดการทำงานปัจจุบันถูกเรียกจากที่อื่นและดึงข้อมูลจากดิสก์
- หน้าผิดพลาด/วินาที – อัตราโดยรวมที่ตัวประมวลผลประมวลผลหน้าข้อบกพร่อง สิ่งนี้จะเกิดขึ้นอีกครั้งเมื่อกระบวนการต้องการโค้ดจากภายนอกชุดการทำงาน
- CPU ขัดจังหวะต่อวินาที – คือจำนวนเฉลี่ยของการขัดจังหวะฮาร์ดแวร์ที่โปรเซสเซอร์ได้รับและประมวลผลในแต่ละวินาที
- ความยาวคิวดิสก์ – คือค่าเฉลี่ยของจำนวนคำขออ่านและเขียนที่เข้าคิวสำหรับดิสก์ที่เลือกในระหว่างช่วงการสุ่มตัวอย่าง
- ความยาวคิวเอาต์พุตเครือข่าย – ความยาวของคิวแพ็คเก็ตเอาต์พุตในแพ็คเก็ต อะไรก็ตามที่มากกว่าสองหมายถึงความล่าช้าและปัญหาคอขวดจะต้องหยุดลง
- จำนวนไบต์เครือข่ายทั้งหมดต่อวินาที – อัตราไบต์ที่ส่งและรับบนอินเทอร์เฟซรวมถึงอักขระเฟรม
- เวลาตอบสนอง - เวลานับจากที่ผู้ใช้ป้อนคำขอจนกระทั่งได้รับอักขระตัวแรกของการตอบกลับ
- ปริมาณงาน – ให้คะแนนคอมพิวเตอร์หรือเครือข่ายรับคำขอต่อวินาที
- ปริมาณการรวมการเชื่อมต่อ – จำนวนคำขอของผู้ใช้ที่ตรงตามการเชื่อมต่อแบบพูล ยิ่งคำขอพบโดยการเชื่อมต่อในพูลมากเท่าใด ประสิทธิภาพก็จะยิ่งดีขึ้นเท่านั้น
- เซสชันที่ใช้งานสูงสุด – จำนวนเซสชันสูงสุดที่สามารถใช้งานได้พร้อมกัน
- อัตราส่วนการเข้าชม – เรื่องนี้เกี่ยวข้องกับจำนวน SQL คำสั่งที่จัดการโดยข้อมูลแคชแทนการดำเนินการ I/O ที่มีค่าใช้จ่ายสูง นี่เป็นจุดเริ่มต้นที่ดีในการแก้ไขปัญหาคอขวด
- จำนวนการเข้าชมต่อวินาที – ไม่ ของการเข้าชมบนเว็บเซิร์ฟเวอร์ในแต่ละวินาทีของการทดสอบโหลด
- ส่วนการย้อนกลับ – จำนวนข้อมูลที่สามารถย้อนกลับได้ตลอดเวลา
- ล็อคฐานข้อมูล – การล็อคตารางและฐานข้อมูลจำเป็นต้องได้รับการตรวจสอบและปรับแต่งอย่างระมัดระวัง
- การรอคอยสูงสุด – ได้รับการตรวจสอบเพื่อกำหนดเวลารอที่สามารถลดได้เมื่อต้องรับมือกับความรวดเร็วในการดึงข้อมูลจากหน่วยความจำ
- จำนวนเธรด – ความสมบูรณ์ของแอปพลิเคชันสามารถวัดได้ด้วยหมายเลข ของเธรดที่กำลังทำงานและใช้งานอยู่ในปัจจุบัน
- เก็บขยะ – มันเกี่ยวข้องกับการคืนหน่วยความจำที่ไม่ได้ใช้กลับคืนสู่ระบบ การรวบรวมขยะจำเป็นต้องได้รับการตรวจสอบเพื่อประสิทธิภาพ
ตัวอย่างกรณีทดสอบการทดสอบประสิทธิภาพ
- กรณีทดสอบ 01: ตรวจสอบว่าเวลาตอบสนองไม่เกิน 4 วินาทีเมื่อมีผู้ใช้เข้าถึงเว็บไซต์พร้อมกัน 1000 ราย
- กรณีทดสอบ 02: ตรวจสอบเวลาตอบสนองของแอปพลิเคชันภายใต้โหลดอยู่ภายในช่วงที่ยอมรับได้เมื่อการเชื่อมต่อเครือข่ายช้า
- กรณีทดสอบ 03: ตรวจสอบจำนวนผู้ใช้สูงสุดที่แอปพลิเคชันสามารถรองรับได้ก่อนที่จะล่ม
- กรณีทดสอบ 04: ตรวจสอบเวลาการทำงานของฐานข้อมูลเมื่อมีการอ่าน/เขียน 500 รายการพร้อมกัน
- กรณีทดสอบ 05: ตรวจสอบการใช้งาน CPU และหน่วยความจำของแอปพลิเคชันและเซิร์ฟเวอร์ฐานข้อมูลภายใต้สภาวะโหลดสูงสุด
- กรณีทดสอบ 06: ตรวจสอบเวลาตอบสนองของการใช้งานภายใต้สภาวะโหลดต่ำ ปกติ ปานกลาง และหนัก
ในระหว่างการทดสอบประสิทธิภาพจริง ข้อกำหนดคลุมเครือ เช่น ระยะที่ยอมรับได้ ภาระหนัก ฯลฯ จะถูกแทนที่ด้วยตัวเลขที่ชัดเจน วิศวกรด้านประสิทธิภาพจะกำหนดตัวเลขเหล่านี้ตามข้อกำหนดทางธุรกิจและภูมิทัศน์ทางเทคนิคของแอปพลิเคชัน
เครื่องมือทดสอบประสิทธิภาพ
มีเครื่องมือทดสอบประสิทธิภาพมากมายในตลาด เครื่องมือที่คุณเลือกสำหรับการทดสอบจะขึ้นอยู่กับหลายปัจจัย เช่น ประเภทของโปรโตคอลที่รองรับ ต้นทุนใบอนุญาต ข้อกำหนดด้านฮาร์ดแวร์ การสนับสนุนแพลตฟอร์ม ฯลฯ ด้านล่างนี้คือรายการเครื่องมือทดสอบที่ใช้กันอย่างแพร่หลาย
- HP LoadRunner - เป็นเครื่องมือทดสอบประสิทธิภาพที่ได้รับความนิยมมากที่สุดในตลาดปัจจุบัน เครื่องมือนี้สามารถจำลองผู้ใช้นับแสนราย โดยวางแอปพลิเคชันภายใต้โหลดในชีวิตจริงเพื่อระบุพฤติกรรมของพวกเขาภายใต้โหลดที่คาดหวัง รถตัก มีเครื่องสร้างผู้ใช้เสมือนจริงซึ่งจำลองการกระทำของผู้ใช้ที่เป็นมนุษย์จริงๆ
- เจมิเตอร์ – หนึ่งในเครื่องมือชั้นนำที่ใช้สำหรับการทดสอบโหลดของเว็บและเซิร์ฟเวอร์แอปพลิเคชัน
คำถามที่พบบ่อย
สรุป
In วิศวกรรมซอฟต์แวร์จำเป็นต้องมีการทดสอบประสิทธิภาพก่อนทำการตลาดผลิตภัณฑ์ซอฟต์แวร์ใดๆ ช่วยให้มั่นใจถึงความพึงพอใจของลูกค้าและปกป้องการลงทุนของนักลงทุนจากความล้มเหลวของผลิตภัณฑ์ ค่าใช้จ่ายในการทดสอบประสิทธิภาพมักจะมากกว่าการชดเชยด้วยความพึงพอใจ ความภักดี และการรักษาลูกค้าที่ดีขึ้น