1. Performance Testing là gì?
Performance Testing
Performance Testing- Kiểm thử hiệu năng là kiểm tra về tốc độ, thời kì phản hồi, độ tin cậy, sử dụng tài nguyên, khả năng mở rộng của một Khóa học phần mềm. Mục tiêu của Kiểm tra hiệu năng không phải là tìm ra các lỗi chức năng mà là để loại bỏ các ùn tắc về hiệu suất trong phần mềm hoặc thiết bị.
Trọng tâm của Kiểm thử hiệu năng là kiểm tra các vấn đề của Khóa học phần mềm như:
- Tốc độ – Xác định xem ứng dụng có phản hồi nhanh không.
- Khả năng mở rộng – Xác định tải người dùng tối đa mà ứng dụng phần mềm có thể xử lý.
- Tính ổn định – Xác định xem ứng dụng có ổn định dưới các mức tải khác nhau không.
2. Vì sao cần sử dụng Performance Testing?
Why do Performance Testing?
-
Các tính năng và chức năng được tương trợ bởi một mạng lưới hệ thống phần mềm không phải là mối quan tâm duy nhất. Hiệu năng của một ứng dụng phần mềm như thời kì phản hồi, độ tin cậy, sử dụng tài nguyên và khả năng mở rộng của nó rất quan trọng. Mục tiêu của kiểm thử hiệu năng không phải là tìm lỗi mà là loại bỏ các ùn tắc về hiệu suất hoạt động.
-
Kiểm thử hiệu năng được thực hiện để cung cấp cho những bên liên quan thông tin ứng dụng về tốc độ, tính ổn định và khả năng mở rộng. Quan trọng hơn, kiểm thử hiệu năng phát hiện ra những gì cần được cải thiện trước lúc sản phẩm được tung ra thị trường. Nếu không có kiểm thử hiệu năng, phần mềm có thể gặp phải các vấn đề như: chạy chậm trong những khi một số lượng người dùng nhất định sử dụng song song, sự không nhất quán trên các hệ điều hành khác nhau và khả năng sử dụng kém.
-
Kiểm thử hiệu năng sẽ xác định xem phần mềm của họ có đáp ứng các yêu cầu về tốc độ, khả năng mở rộng và độ ổn định theo dự kiến hay là không. Các ứng dụng được đưa ra thị trường với số liệu hiệu suất kém có khả năng bị mang tiếng xấu và không đạt được mục tiêu lệch giá dự kiến.
-
Ngoài ra, các ứng dụng quan trọng như Khóa học chạy không gian hoặc thiết bị y tế cứu sinh phải được kiểm tra hiệu năng để đảm bảo chúng chạy trong một thời kì dài mà không bị sai lệch.
Theo Dunn & Bradstreet, 59% các tổ chức trong list Fortune 500 trải qua khoảng chừng 1,6 giờ ngừng hoạt động mỗi tuần. Xem xét tổ chức Fortune 500 trung bình có tối thiểu 10.000 viên chức đang trả 56 đô la mỗi giờ, phần lao động của ngân sách thời kì chết cho một tổ chức như vậy sẽ là 896.000 đô la mỗi tuần, chuyển thành hơn 46 triệu đô la mỗi năm.
Chỉ có thời kì ngừng hoạt động 5 phút của Google.com (19-ngày 13 tháng 8) được ước tính sẽ tiêu tốn của người khổng lồ tìm kiếm lên tới 545.000 đô la.
Người ta ước tính rằng các tổ chức bị mất lệch giá trị giá 1100 đô la mỗi giây do sự cố ngừng dịch vụ web gần đây của Amazon.
Do đó, kiểm thử hiệu năng là quan trọng.
3. Các loại Performance Testing
Types of Performance Testing
- Load testing: tìm ngưỡng capacity của server để xác định ngưỡng có thể chịu tải được của mạng lưới hệ thống.
- Stress testing: liên quan đến việc kiểm tra một ứng dụng trong một khối lượng công việc cực lớn để xem cách nó xử lý lưu lượng truy cập cao hoặc xử lý tài liệu thế nào. Mục tiêu là xác định “breaking point” của một ứng dụng ( làm cho mạng lưới hệ thống chết không phản hồi được nữa)
- Endurance testing: được thực hiện để đảm bảo phần mềm có thể xử lý tải dự kiến trong một khoảng chừng thời kì dài.
- Spike testing: kiểm tra phản ứng của phần mềm so với các đột biến do có một lượng tải lờn từ người dùng trong một khiangr thời kì ngắn.
- Volume testing: Kiểm tra khả năng chịu tải của phần mềm với một lượng tài liệu nhất định( thường là ngưỡng do spec mong muốn từ trên đầu).
- Scalability testing: Mục tiêu của kiểm tra khả năng mở rộng là xác định tính hiệu quả của ứng dụng phần mềm trong việc “nhân rộng” để tương trợ tăng tải người dùng. Nó giúp lập kế hoạch bổ sung khả năng đáp ứng của hệ thông với nhu cầu tăng dần.
4. Các tiêu chí thực hiện Performance Testing
- Trả lời thắc mắc mạng lưới hệ thống có thể xử lý các mức chịu tải trong những khi vẫn giữ được thời kì hồi đáp ở tại mức có thể chấp nhận được hay là không?
- Chỉ ra được vào thời khắc nào thì mạng lưới hệ thống khai mạc hư hỏng và những thành phần nào là nguyên nhân của việc suy thoái và phá sản đó.
- Khối hệ thống ngày nay có thể nâng cấp được k? để phù phù hợp với sự phát triển trong tương lai?
- Khi mà mạng lưới hệ thống gặp lỗi thì nó sẽ gây nên ra những tác động gì lên mục tiêu kinh doanh của doanh nghiệp?
- Đưa ra tiêu chí nhận định rằng hiệu năng của mạng lưới hệ thống là tốt.
5. Các vấn đề về hiệu năng thường gặp
Hồ hết các vấn đề về hiệu năng đều xoay quanh tốc độ, thời kì phản hồi, thời kì tải và khả năng mở rộng kém. Tốc độ thường là một trong những tính chất quan trọng nhất của ứng dụng. Một ứng dụng chạy chậm sẽ mất đi người dùng tiềm năng. Kiểm thử hiệu năng được thực hiện để đảm bảo ứng dụng chạy đủ nhanh để thu hút sự lưu ý và quan tâm của người dùng. Vì vậy, tốc độ là yếu tố phổ quát trong nhiều vấn đề sau:
- Thời kì tải lâu: Thời kì tải thường là thời kì lúc đầu để ứng dụng phát động. Điều này thường nên được giữ ở tại mức tối thiểu. Mặc dù một số ứng dụng không thể tải xuống dưới một phút, thời kì tải nên được giữ dưới một vài giây nếu có thể.
- Thời kì phản hồi kém: Thời kì phản hồi là thời kì cấp thiết khi người dùng nhập tài liệu vào ứng dụng cho tới lúc ứng dụng đưa ra phản hồi cho nguồn vào đó. Nói chung, điều này sẽ rất nhanh chóng. Một lần nữa nếu người dùng phải chờ quá lâu, họ sẽ mất hứng thú.
- Khả năng mở rộng kém: Một sản phẩm phần mềm có khả năng mở rộng kém khi không thể xử lý số lượng người dùng dự kiến hoặc khi không phù phù hợp với phạm vi người dùng đủ rộng. Kiểm thử hiệu năng phải được thực hiện để kiên cố ứng dụng có thể xử lý số lượng người dùng dự kiến.
- Ùn tắc: Ùn tắc là trở lực vật trong một mạng lưới hệ thống làm giảm hiệu suất toàn bộ mạng lưới hệ thống. Ùn tắc là lúc lỗi mã hóa hoặc sự cố phần cứng gây ra giảm thông lượng dưới một số tải nhất định. Ùn tắc thường được gây ra bởi một phần mã bị lỗi. Chìa khóa để khắc phục sự cố ùn tắc là tìm phần mã đang tạo ra ra sự chậm chạp và nỗ lực khắc phục nó ở đó. Việc ùn tắc thường được khắc phục bằng phương pháp sửa các quy trình chạy kém hoặc thêm phần cứng bổ sung. Một số ùn tắc hiệu suất phổ quát là:
- Sử dụng CPU
- Sử dụng bộ nhớ
- Sử dụng mạng
- Hạn chế của hệ điều hành
- Sử dụng ổ cứng
6. Quy trình kiểm thử Performance
Phương pháp được ứng dụng để kiểm thử hiệu năng có thể rất khác nhau nhưng mục tiêu cho kiểm thử hiệu năng vẫn giống nhau. Nó có thể giúp chứng minh rằng mạng lưới hệ thống phần mềm của bạn đáp ứng một số tiêu chí hiệu suất được xác định trước. Hoặc nó có thể giúp so sánh hiệu suất của hai mạng lưới hệ thống phần mềm. Nó cũng luôn tồn tại thể giúp xác định các phần của mạng lưới hệ thống phần mềm của bạn làm giảm hiệu suất của nó.
Trong tương lai là một quy trình chung về kiểu cách thực hiện kiểm thử hiệu năng:
Performance Testing Process
- Identify the testing environment– Xác định môi trường tự nhiên kiểm thử: Biết môi trường tự nhiên thử nghiệm vật lý, môi trường tự nhiên trên app sản phẩm đang làm việc thật và những phương tiện kiểm thử nào có sẵn. Hiểu cụ thể về cấu hình phần cứng, phần mềm và mạng được sử dụng trong quá trình kiểm thử trước lúc khai mạc quá trình kiểm thử. Nó sẽ giúp người kiểm thử kiểm thử được hiệu quả hơn. Nó cũng sẽ hỗ trợ xác định những thử thách có thể có mà người kiểm thử có thể gặp phải trong quá trình kiểm thử hiệu năng.
- Identify the performance acceptance criteria– Xác định các tiêu chí chấp thuận hiệu suất: Điều này gồm có các mục tiêu và ràng buộc cho thông lượng, thời kì phản hồi và phân bổ tài nguyên. Cũng phải xác định các tiêu chí thành công của dự án phía bên ngoài các mục tiêu và ràng buộc này. Người kiểm thử nên được trao quyền để thiết lập các tiêu chí và mục tiêu hiệu suất vì thường các thông số kỹ thuật của dự án sẽ không còn gồm có nhiều tiêu chuẩn hiệu suất đủ rộng. Thỉnh thoảng có thể không có gì cả. Khi có thể tìm thấy một ứng dụng tương tự để so sánh là một cách tốt để tại vị mục tiêu hiệu suất.
- Plan and Design Tests: Xác định cách sử dụng có thể thay đổi giữa những người dân dùng cuối và xác định các kịch bản chính để kiểm tra cho tất cả những trường hợp sử dụng có thể. Cần phải mô phỏng nhiều người dùng cuối, lập kế hoạch và tài liệu kiểm thử hiệu năng và phác thảo những số liệu nào sẽ tiến hành thu thập.
- Configure the Test Environment– Thiết lập cấu hình môi trường tự nhiên kiểm tra:Chuẩn bị sẵn sàng môi trường tự nhiên kiểm tra trước lúc thực hiện. Ngoài ra, sắp xếp các phương tiện và các tài nguyên khác theo một logic nhất định để thuận tiện trong quá trình kiểm thử.
- Implement the Test Design– Thực hiện thiết kế kiểm thử: Tạo các thử nghiệm hiệu năng theo plan và design được tạo trước đó.
- Execute the Test– Chạy thử nghiệm – Thực hiện và giám sát các thử nghiệm.
- Analyze Tune and Retetest– Phân tích, kiểm soát và điều chỉnh và kiểm tra lại: Thống nhất, phân tích và san sớt kết quả kiểm tra. Sau đó tinh chỉnh và kiểm tra lại để xem liệu có sự cải thiện hay giảm hiệu suất. Vì các cải tiến thường phát triển nhỏ hơn với mỗi lần kiểm tra lại, nên dừng khi ùn tắc do CPU gây ra. Sau đó, chúng ta cũng có thể có tùy chọn xem xét tăng hiệu năng của CPU.
7. Phương tiện kiểm thử Performance
Có rất nhiều phương tiện kiểm thử hiệu năng có sẵn trên thị trường. Phương tiện bạn chọn để kiểm tra sẽ phụ thuộc vào nhiều yếu tố, ví dụ như các loại giao thức được tương trợ, ngân sách giấy phép, yêu cầu phần cứng, tương trợ nền tảng, v.v … Trong tương lai là list các phương tiện kiểm tra được sử dụng phổ quát.
Performance testing tool
- LoadNinja: Phương tiện kiểm thử load testing dựa trên đám mây này trao quyền cho những nhóm ghi lại và phát lại ngay tức khắc các kiểm tra tải toàn diện, không có tương quan động phức tạp và chạy các kiểm tra tải này trong các trình duyệt thực theo tỷ lệ. Các đội có thể tăng phạm vi kiểm tra và cắt giảm thời kì thử nghiệm tải đến hơn 60%.
- NeoLoad: là nền tảng kiểm thử hiệu năng được thiết kế cho DevOps tích hợp hoàn toàn vào đường phân phối liên tục hiện có của bạn. Với NeoLoad, các nhóm kiểm tra nhanh hơn 10 lần so với những phương tiện truyền thống để đáp ứng mức yêu cầu mới trong toàn bộ vòng đời phát triển phần mềm Agile – từ kiểm tra thành phần đến toàn bộ mạng lưới hệ thống.
- HP LoadRunner – là phương tiện kiểm thử hiệu năng phổ quát nhất trên thị trường hiện nay. Phương tiện này còn có khả năng mô phỏng hàng trăm ngàn người dùng, đặt các ứng dụng dưới tải thực tế để xác định hành vi của họ dưới tải dự kiến. Loadrunner có tính năng tạo trình tạo người dùng ảo mô phỏng hành động của người dùng trực tiếp.
- Jmeter : một trong những phương tiện hàng đầu được sử dụng để kiểm tra tải của sever ứng dụng và web.
Tham khảo:
- https://www.guru99.com/performance-testing.html#5
- https://www.tutorialspoint.com/software_testing_dictionary/performance_testing.htm