CHƯƠNG 2: CÁC LOẠI KIỂM THỬ HIỆU SUẤT

MỤC TIÊU

  • Tìm hiểu về các loại khác nhau của kiểm thử hiệu suất
  • Hiểu được giá trị và lợi ích gắn liền với từng loại kiểm thử hiệu suất.
  • Hiểu được những nhược điểm của từng loại kiểm thử hiệu suất.

TỔNG QUAN Kiểm thử hiệu suất là một thuật ngữ chung chung mà có thể tham chiếu tới nhiều loại loại kiểm thử hiệu suất liên quan khác, mỗi loại chỉ ra vấn đề của một khu vực cụ thể và cung cấp các lợi ích riêng, rủi ro, và thách thức. Chương này định nghĩa, mô tả, và vạch ra những lợi ích và rủi ro của dự án kết hợp với các loại thông thường hoặc các loại kiểm thử hiệu suất liên quan. Sử dụng chương này, bạn có khả năng khắc phục các những sai phạm thường xuyên và sự hiểu lầm của các thuật ngữ.

SỬ DỤNG CHƯƠNG NÀY NHƯ THẾ NÀO Sử dụng chương này để hiểu các loại kiểm thử hiệu suất liên quan. Nó sẽ giúp đội của bạn quyết định loại kiểm thử hiệu suất nào là thích hợp để tăng thêm giá trị cho một dự án dựa trên những rủi ro hiện tại, mối quan tâm, hoặc kết quả kiểm thử. Để nhận được nhiều nhất từ chương này:

  • Sử dụng "Các loại kiểm thử hiệu suất chính" để đưa ra một quyết định loại hình thử nghiệm nào là phù hợp nhất tới mối quan tâm của bạn, và để cân bằng sự đánh đổi giữa các loại thử nghiệm khác nhau.
  • Sử dụng "Ma trận tóm tắt các lợi ích của các loại kiểm thử hiệu suất" để đảm bảo rằng bạn cân nhắc không chỉ là lợi ích của một loại hình cụ thể, nhưng cũng là thách thức và các mối quan tâm không được giải quyết thỏa đáng bởi các loại kiểm thử hiệu suất.
  • Sử dụng "Các khái niệm bổ sung / Điều khoản" để hiểu rõ hơn các loại bổ sung của kiểm thử hiệu suất mà có thể thêm giá trị cho dự án của bạn, và để cải thiện khả năng của bạn để tham gia vào cuộc trò chuyện về kiểm thử hiệu suất với những người bên ngoài bối cảnh cụ thể của bạn.

KIỂM THỬ HIỆU SUẤT Kiểm thử hiệu suất được định nghĩa như là điều tra kỹ thuật được thực hiện để xác định hoặc xác nhận các đặc tính tốc độ, khả năng mở rộng, và / hoặc tính ổn định của sản phẩm được kiểm thử. Các hoạt động liên quan đến hiệu suất, chẳng hạn như thử nghiệm và điều chỉnh, sau đó thu thập thời gian đáp ứng, thông qua, và mức độ sử dụng tài nguyên đáp ứng các mục tiêu hiệu suất cho các ứng dụng hay không. Bởi vì kiểm thử hiệu suất là một thuật ngữ chung bao gồm tất cả các tập con khác nhau của nó, mỗi giá trị và lợi ích được liệt kê dưới các loại kiểm thử hiệu suất khác trong chương này cũng có thể được coi là một lợi ích tiềm năng của kiểm thử hiệu suất nói chung.

CÁC LOẠI KIỂM THỬ HIỆU SUẤT QUAN TRỌNG Dưới đây là hầu hết các loại hay gặp của kiểm thử hiệu suất cho một ứng dụng web:

Thuật Ngữ Mục Đích Ghi Chú
Performance test Để xác định hoặc xác nhận tốc độ, khả năng mở rộng, và / hoặc tính ổn định. - Một kiểm thử hiệu năng là môt cuộc điều tra kĩ thuật được thực hiện để xác định hoặc xác nhận đáp ứng, tốc độ, khả năng mở rộng, và/hoặc các đặc tính ổn định của sản phẩm.
Load test Để xác minh hành vi của ứng dụng trong điều kiện tải bình thường và cao điểm. Load Test được tiến hành để xác minh rằng ứng dụng của bạn có thể đáp ứng các mục tiêu hiệu suất mong muốn, các mục tiêu hiệu suất thường được quy định trong một thỏa thuận cấp độ dịch vụ(SLA). Một bài kiểm tra tải trọng cho phép bạn đo thời gian đáp ứng, tỉ lệ thong qua, và mức độ sử dụng tài nguyên, để xác định điểm hư hại trong ứng dụng của bạn, giả định rằng các điểm phá vỡ xảy ra dưới điều kiện tải cao điểm. -----------Thử nghiệm sức chịu đựng là tập con của Load Test. Một bài kiểm tra sức chịu đựng là một loại thử nghiệm hiệu suất, tập trung vào việc xác định hoặc xác nhận các đặc tính hiệu suất của sản phẩm khi chịu khối lương công việc và khối lượng tải dự đoán trong các hoạt động sản xuất trong một thời gian dài. ----------Thử nghiệm sức chịu đựng có thể được sử dụng để tính toán Mean Time Between Failure (MTBF), Mean Time To Failure (MTTF), và số liệu tương tự.
Stress test Để xác định hoặc xác nhận hành vi của một ứng dụng khi nó được đẩy vượt ra ngoài điều kiện tải trọng bình thường hoặc cao điểm. - Mục tiêu của stress Test là để lộ lỗi ứng dụng chỉ trong điều kiện tải cao. Những lôi có thể bao gồm những thứ như các vấn đề đồng bộ hóa, điều kiện đua, và rò rỉ bộ nhớ. Stress Test cho phép bạn xá định các điểm yếu của ứng dụng và cho cách thấy xử lí trong điều kiện tải cao. ------------ Thử nghiệm tăng vọt là một tập con của Stress Test. Một thử nghiệm tăng vọt là một loại thử nghiệm hiệu năng, tập trung vào việc xác định hoặc xác nhận các đặc tính hiệu suất của sản phẩm khi chịu khối lương công việc và khối lượng tải liên tục tăng vọt vượt dự đoán của hoạt động sản xuất trong thời gian ngắn
Capacity test Để xác định có bao nhiêu người sử dụng và / hoặc các giao dịch mà một hệ thống có thể đáp ứng và vẫn đáp ứng các mục tiêu hiệu suất. - Capacity test là thực hiện kết hợp với kế hoạch năng lực, mà bạn sử dụng để lập kế hoạch cho sự phát triển trong tương lai, chẳng hạn như người dùng tăng hoặc tăng khối lượng dữ liệu. Ví dụ, để chứa tải trong tương lai, bạn cần phải biết có bao nhiêu nguồn lực bổ sung (chẳng hạn như khả năng xử lý, sử dụng bộ nhớ, dung lượng đĩa, hoặc băng thông mạng) là cần thiết để hỗ trợ mức độ sử dụng trong tương lai. ------------- Capacity test giúp bạn xác định một chiến lược mở rộng quy mô để xác định xem bạn nên quy mô lên hoặc quy mô ra.

Các mối quan tâm hiệu suất phổ biến nhất liên quan đến các ứng dụng Web là "nó sẽ là đủ nhanh?", "Nó sẽ hỗ trợ tất cả các khách hàng của tôi?", "Điều gì sẽ xảy ra nếu có điều gì sai?", Và "Tôi cần phải có kế hoạch gì khi tôi có được nhiều khách hàng hơn? ". Trong cuộc trò chuyện bình thường, hầu hết mọi người liên kết "đủ nhanh" với kiểm tra hiệu suất, "sức chứa người dùng hiện tại / dự kiến" với thử tải, "một cái gì đó đi sai" với Stress test, và "lên kế hoạch cho sự phát triển trong tương lai" với Capacity test. Nói chung, những rủi ro này là cơ sở cho bốn loại chính của các cuộc kiểm thử hiệu suất cho các ứng dụng Web.

MA TRẬN TÓM TẮT CÁC LỢI ÍCH CỦA CÁC LOẠI KIỂM THỬ HIỆU SUẤT

Thuật ngữ Lợi ích Thách thức và các vùng không được giải quyết
Performance test -Xác định tốc độ, khả năng mở rộng và ổn định của một ứng dụng, qua đó cung cấp một đầu vào để đưa ra quyết định kinh doanh đúng đắn.--------Tập trung vào việc xác định nếu người sử dụng của hệ thống sẽ được hài lòng với các đặc tính hiệu suất của các ứng dụng.--------Xác định sai lệch giữa kỳ vọng và thực tế.----------- Hỗ trợ điều chỉnh, kế hoạch năng lực, và những nỗ lực tối ưu hóa. ----------Có thể không phát hiện một số khiếm khuyết chức năng mà chỉ xuất hiện dưới tải.----------Nếu không được thiết kế cẩn thận và xác nhận, rất khó để nhận ra các đặc tính hiệu suất.---------Trừ khi các xét nghiệm được tiến hành trên các phần cứng sản xuất, từ chung một máy mà người dùng sẽ sử dụng, sẽ luôn có một mức độ không chắc chắn trong các kết quả.
Load test (Thử Tải) - Xác định công suất cần thiết để hỗ trợ các tải sản xuất cao điểm dự kiến.------- Xác định tính đầy đủ của một môi trường phần cứng.--------- Đánh giá sự phù hợp của một cân bằng tải.------- Phát hiện các vấn đề đồng thời.--------- Phát hiện lỗi chức năng dưới tải.-------- Dữ liệu thu thập cho mục đích mở rộng và nâng cao năng lực lập kế hoạch.-------- Giúp xác định có bao nhiêu người sử dụng mà ứng dụng có thể xử lý trước khi thực hiện được thỏa hiệp.------- Giúp xác định bao nhiêu tải mà phần cứng có thể xử lý trước khi giới hạn việc sử dụng tài nguyên được vượt quá. Text -Không được thiết kế để tập trung chủ yếu vào tốc độ của phản ứng.------- Kết quả chỉ nên được sử dụng để so sánh với các bài kiểm tra tải trọng khác có liên quan.
Stress Test (Kiểm tra căng thẳng) - Xác định nếu dữ liệu có thể bị hỏng bởi kéo căng hệ thống.---------Cung cấp một ước tính về cách vượt xa mục tiêu tải mà một ứng dụng có thể đi trước khi gây ra thất bại và lỗi.--------Cho phép bạn thiết lập ứng dụng giám sát để cảnh báo về những thất bại sắp xảy ra.--------Đảm bảo rằng các lỗ hổng an ninh không được mở ra trong điều kiện căng thẳng.--------Xác định các tác dụng phụ của phần cứng thông thường hoặc lỗi ứng dụng hỗ trợ.--------Giúp xác định những loại thất bại là có giá trị nhất để lập kế hoạch. - Bởi các xét nghiệm căng thẳng là không thực tế do thiết kế, một số bên liên quan có thể bãi bỏ kết quả xét nghiệm.------- Nó thường là khó khăn để biết bao nhiêu căng thẳng là đang được áp dụng.-----------Nó có thể gây ra ứng dụng và / hoặc mạng thất bại mà có thể dẫn đến sự gián đoạn đáng kể nếu không bị cô lập với môi trường thử nghiệm.
Capacity test (Kiểm tra năng lực) - Cung cấp thông tin về làm thế nào khối lượng công việc có thể được xử lý để đáp ứng yêu cầu kinh doanh.--------Cung cấp dữ liệu thực tế mà các nhà hoạch định có thể sử dụng để xác nhận hoặc tăng cường các mô hình và / hoặc dự đoán của họ.--------Cho phép bạn tiến hành các xét nghiệm khác nhau để so sánh mô hình năng lực lập kế hoạch và / hoặc dự đoán.-----Xác định việc sử dụng hiện tại và năng lực của hệ thống hiện có để hỗ trợ trong việc lập kế hoạch năng lực.---------Cung cấp các xu hướng sử dụng và năng lực của hệ thống hiện có để hỗ trợ trong kế hoạch năng lực - Kiểm tra năng lực là phức tạp để tạo ra.----------- Không phải tất cả các khía cạnh của một mô hình nâng cao năng lực lập kế hoạch có thể được xác nhận thông qua thử nghiệm tại một thời điểm khi những khía cạnh sẽ cung cấp giá trị nhất.

Mặc dù những lợi ích tiềm năng vượt xa những thách thức liên quan đến thực hiện thử nghiệm, việc không chắc chắn về sự liên quan của các kết quả dữ liệu - dựa trên việc không thể tuyệt đối của kiểm tra tất cả các kết hợp hợp lý của các biến, kịch bản và các tình huống - làm cho một số tổ chức đặt câu hỏi về giá trị của kiểm thử hiệu năng. Trong thực tế, tuy nhiên, khả năng thất bại xảy ra trong một hệ thống đã được thông qua hợp lý (thậm chí không nghiêm ngặt) thử nghiệm hiệu suất là giảm đáng kể, đặc biệt là nếu các thử nghiệm hiệu năng được sử dụng để giúp xác định những gì để giám sát trong sản xuất để các đội nhận được những dấu hiệu cảnh báo sớm nếu các ứng dụng bắt đầu trôi về phía một thất bại lớn.

CÁC KHÁI NIỆM BỔ SUNG/ ĐIỀU KHOẢN Bạn sẽ thường xuyên nhìn thấy hoặc nghe thấy thuật ngữ sau khi tiến hành thử nghiệm hiệu suất. Một số các thuật ngữ có thể được phổ biến trong mạng lưới tổ chức, công nghiệp, hoặc ngang hàng với bạn, trong khi những người khác có thể không. Những thuật ngữ và khái niệm đã được bao gồm bởi vì chúng được sử dụng thường xuyên, và gây ra đủ rắc rối, làm cho chúng cần được biết.

Thuật ngữ Ghi chú
Kiểm thử thành phần Một kiểm thử thành phần là bất kỳ thử nghiệm hiệu suất mà mục tiêu là một thành phần kiến trúc của ứng dụng. Thành phần thường được thử nghiệm bao gồm máy chủ, cơ sở dữ liệu, mạng, tường lửa, khách hàng, và các thiết bị lưu trữ.
Điều tra Điều tra là một hoạt động dựa trên việc thu thập thông tin liên quan đến tốc độ, khả năng mở rộng, và / hoặc các đặc tính ổn định của sản phẩm được kiểm tra mà có thể có giá trị trong việc xác định hoặc cải thiện chất lượng sản phẩm. Điều tra được thường xuyên sử dụng để chứng minh hay bác bỏ giả thuyết về nguyên nhân gốc rễ của một hoặc quan sát được nhiều vấn đề hiệu suất.
Smoke test Smoke test là lần chạy đầu tiên của một thử nghiệm thực hiện để xem nếu ứng dụng của bạn có thể thực hiện các hoạt động của mình theo một tải bình thường hay không?
Unit test Trong bối cảnh thực hiện thử nghiệm, Unit test là kiểm tra bất kì nhằm vào mô-đun Code, nơi mô-đun đó là bất kỳ tập con hợp lý của toàn bộ Code hiện tại của ứng dụng, tập trung vào các đặc tính hiệu suất. Module thường được thử nghiệm bao gồm các chức năng, thủ tục, thói quen, đối tượng, phương pháp, và các lớp học. Unit test thường xuyên được tạo ra và được thực hiện bởi các nhà phát triển, người đã viết các module Code đang được thử nghiệm.
Kiểm tra xác nhận Một kiểm tra xác nhận so sánh đặc điểm tốc độ, khả năng mở rộng, và / hoặc tính ổn định của sản phẩm được kiểm tra với sự mong đợi đó đã được thiết lập cho sản phẩm đó.

TÓM TẮT Kiểm thử hiệu suất là một hoạt động rộng lớn và phức tạp, có thể có nhiều hình thức, giải quyết nhiều rủi ro, và cung cấp một loạt các giá trị cho một tổ chức. Điều quan trọng là phải hiểu được các loại của kiểm thử hiệu năng khác nhau để giảm thiểu rủi ro, giảm thiểu chi phí, và biết khi nào để áp dụng các thử nghiệm thích hợp trong quá trình của một dự án thực hiện xét nghiệm nhất định. Để áp dụng các loại thử nghiệm khác nhau trong quá trình của một bài kiểm tra hiệu suất, bạn cần phải đánh giá những điểm chính sau đây:

  • Mục tiêu của kiểm thử hiệu suất.
  • Bối cảnh của bài kiểm tra hiệu suất. Ví dụ: các nguồn lực tham gia, chi phí và lợi nhuận tiềm năng trên các nỗ lực thử nghiệm.