เมื่อนักพัฒนาได้พัฒนาซอฟต์แวร์ขึ้นมาแล้วนั้น เราต้องมีการทดสอบว่าซอฟต์แวร์ที่ถูกพัฒนานั้น มีความถูกต้องหรือไม่ เรียกได้ว่า เป็นการทดสอบแบบ Functional testing แต่เมื่อเรามีการทดสอบความถูกต้องของการทำงานแล้วนั้น เราก็จำเป็นจะต้องมีการทดสอบที่นอกเหนือจากการทดสอบความถูกต้องของซอฟต์แวร์นั้น เป็นการทดสอบแบบ non-functional testing
Performance testing เป็นการทดสอบอย่างหนึ่งใน non-functional testing คือเป็นการทดสอบประสิทธิภาพของซอฟต์แวร์ที่ถูกพัฒนาขึ้นมา เช่น ทดสอบว่า ระบบที่ถูกพัฒนาขึ้นมานั้นสามารถรองรับการทำงานหนักได้ดีมากน้อยเท่าใด เมื่อมีผู้ใช้งานจำนวนมาก ซอฟต์แวร์นั้นมีการตอบสนองเป็นอย่างไร
Performance testing สามารถแบ่งออกได้หลายอย่างตาม scenario
- Load testing คือการทดสอบซอฟต์แวร์หรือระบบว่า ระบบจะมีความเร็วมากน้อยแค่ไหน ภายใต้สภาวะและขนาดของภาระที่คาดว่าจะเกิดขึ้นจริง เช่น หากมีผู้ใช้งานเข้ามาใช้ระบบพร้อมกัน 100 คน ระบบจะตอบสนองเร็วหรือช้าแค่ไหน
- Stress testing คิอ การทดสอบระบบที่นอกเหนือจากการทำงานปกติ เพื่อทดสอบความเสถียร ในความพร้อมและการจัดการข้อผิดพลาด เมื่อระบบมีการทำงานหนัก
- Spike testing คือ การทดสอบระบบเมื่อมีการเพิ่มจำนวนผู้ใช้งานอย่างรวดเร็ว
- Soak testing หรือ Endurance testing คือ การทดสอบระบบว่า ระบบยังสามารถทำงานได้ดีหรือไม่ เมื่อมีการใช้ทำงานในเวลานาน throughput and/or response times ยังดีเหมือนกับตอนเริ่มต้นหรือไม่
- Capacity testing คือ การทดสอบเพื่อกำหนดหาว่า จะมีผู้ใช้กี่คนที่ระบบสามารถรองรับได้ โดยที่ระบบสามารถยังทำงานได้
- Recovery testing คือ การทดสอบระบบว่า ระบบสามารถฟื้นตัวจากการล่มได้เร็วหรือดีแค่ไหน
- Smoke testing คือ การเริมต้นทดสอบระบบในการทดสอบประสิทธิภาพ เพื่อดูว่า การระบบสามารถทำงานได้ปกติในสภาวะปกติ
- Volume testing คือ การทดสอบระบบโดยการใช้จำนวนข้อมูล เพื่อแสดงให้เห็นว่า จำนวนข้อมูลเท่าไหร่ที่ระบบไม่สามารถรองรับได้
- Network Sensitivity testing คือ การทดสอบขีดจำกัดของ WAN และ การทำงานของ network สามารถที่จะคาดการณ์ผลกระทบในส่วนของ WAN และ การสื่อสารบน bandwidth
- Scalability testing คือ การทดสอบเพื่อวัดความสามารถในการประยุกต์ใช้เมื่อนำไปใช้กับระบบที่ใหญ่ขึ้น หรือ ระบบอื่นๆที่จะทำไปใช้
If would be interested in Aware Testing Services, you can view our Testing Solutions Page.