Kiểm tra SOA là gì? Hướng dẫn với ví dụ

⚡ Tóm tắt thông minh

Kiểm thử SOA xác thực một kiến ​​trúc hướng dịch vụ. ArchiKiến trúc trong đó các dịch vụ liên kết lỏng lẻo trao đổi thông điệp qua mạng, kiểm tra từng dịch vụ riêng lẻ, sự tích hợp giữa chúng và toàn bộ quy trình nghiệp vụ từ đầu đến cuối.

  • 🔘 Archikiến trúc: Dịch vụ là các chức năng kinh doanh có thể tái sử dụng mà bất kỳ ứng dụng nào cũng có thể gọi, kết hợp hoặc thay thế một cách độc lập.
  • ☑️ Lớp: Việc kiểm thử nhắm vào lớp dịch vụ, lớp xử lý và lớp người dùng của ứng dụng.
  • Levels: Kiểm thử ở cấp độ dịch vụ, cấp độ giao diện và cấp độ đầu cuối cùng nhau bao gồm các khía cạnh liên quan.tracts, luồng dữ liệu và các kịch bản kinh doanh.
  • 🧪 Phương pháp: Việc kiểm thử dữ liệu dựa trên kịch bản, các đoạn mã giả lập, kiểm tra chức năng, bảo mật, hiệu năng, tích hợp và hồi quy được áp dụng ở mọi cấp độ.
  • 🛠️ dụng cụ: SoapUIẢo hóa dịch vụ Broadcom OpenText UFT One và Parasoft SOAtest cung cấp các dịch vụ kiểm thử chức năng, ảo và tải.
  • ⚠️ Thách thức: Việc thiếu các giao diện, cách ly lỗi nhiều lớp, tải trọng không thể dự đoán và các công nghệ không đồng nhất làm tăng chi phí lập kế hoạch.

Kiểm tra SOA

Kiểm tra SOA là gì?

SOA (Định hướng dịch vụ Archi(kiến trúc) Kiểm tra Đó là việc kiểm thử kiểu kiến ​​trúc SOA, trong đó các thành phần ứng dụng được thiết kế để giao tiếp thông qua các giao thức truyền thông, thường là qua mạng.

SOA là gì?

SOA là một phương pháp tích hợp các ứng dụng và quy trình kinh doanh với nhau để đáp ứng nhu cầu kinh doanh.

In Kỹ thuật phần mềmSOA mang lại sự nhanh nhẹn và linh hoạt cho các quy trình kinh doanh. Một thay đổi đối với quy trình hoặc ứng dụng có thể được thực hiện tại một thành phần cụ thể mà không ảnh hưởng đến toàn bộ hệ thống.

Các nhà phát triển phần mềm làm việc trong lĩnh vực SOA hoặc tự phát triển hoặc mua các phần mềm được gọi là SOA. dịch vụ.

Dịch vụ là gì?

Sơ đồ bên dưới minh họa một cổng thanh toán được cung cấp dưới dạng dịch vụ mà nhiều trang thương mại điện tử có thể sử dụng.

Cổng thanh toán được công bố dưới dạng dịch vụ SOA có thể tái sử dụng, được gọi bởi ứng dụng thương mại điện tử.

  • Dịch vụ có thể là một đơn vị chức năng của ứng dụng hoặc quy trình kinh doanh, có thể được tái sử dụng hoặc lặp lại bởi bất kỳ ứng dụng hoặc quy trình nào khác. (Ví dụ, trong hình ảnh trên, Cổng thanh toán là một dịch vụ có thể được tái sử dụng bởi bất kỳ trang thương mại điện tử nào. Bất cứ khi nào cần thực hiện thanh toán, trang thương mại điện tử sẽ gọi hoặc yêu cầu dịch vụ Cổng thanh toán. Sau khi thanh toán hoàn tất trên cổng thanh toán, một phản hồi sẽ được gửi lại cho trang web thương mại điện tử.)
  • Dịch vụ dễ dàng lắp ráp và dễ dàng cấu hình lại các thành phần.
  • Các dịch vụ có thể được ví như những khối xây dựng. Chúng có thể được dùng để xây dựng bất kỳ ứng dụng nào cần thiết, và việc thêm hoặc xóa chúng khỏi ứng dụng hoặc quy trình kinh doanh đều rất dễ dàng.
  • Các dịch vụ được định nghĩa nhiều hơn bởi chức năng kinh doanh mà chúng thực hiện hơn là bởi các đoạn mã.

Dịch vụ website

Hầu hết các dịch vụ SOA đều được cung cấp dưới dạng dịch vụ web, vì vậy việc thiết lập cơ chế hoạt động của một cuộc gọi dịch vụ web là điều cần thiết trước khi tiến hành các lớp kiểm thử.

Dịch vụ web hoạt động như một thành phần ứng dụng độc lập có sẵn trên web.

Các dịch vụ Web Chúng là các thành phần ứng dụng độc lập có sẵn trên web.

Chúng có thể được xuất bản, tìm kiếm và sử dụng trên web, và chúng giao tiếp thông qua internet. Chuỗi sự kiện bên dưới cho thấy cách nhà cung cấp, cơ quan đăng ký và người tiêu dùng tương tác với nhau.

Công bố, tìm kiếm và liên kết trình tự giữa nhà cung cấp dịch vụ, cơ quan đăng ký dịch vụ web và người tiêu dùng.

  • Nhà cung cấp dịch vụ xuất bản dịch vụ lên internet.
  • Khách hàng tìm kiếm một dịch vụ web cụ thể trong Cơ sở dữ liệu dịch vụ web.
  • A URL và wsdl Thông tin về dịch vụ web cần thiết sẽ được trả về. Sử dụng WSDL và... URLTrong trường hợp này, việc liên lạc giữa nhà cung cấp dịch vụ và người yêu cầu diễn ra thông qua các thông điệp SOAP.
  • Khi người dùng gọi một dịch vụ web, một kết nối HTTP sẽ được thiết lập với nhà cung cấp.
  • Một thông điệp SOAP được tạo ra để hướng dẫn nhà cung cấp thực thi logic dịch vụ web cần thiết.
  • Phản hồi nhận được từ nhà cung cấp là một thông điệp SOAP được nhúng trong phản hồi HTTP. Phản hồi HTTP này là định dạng dữ liệu mà ứng dụng tiêu thụ có thể hiểu được.

Ví dụ

Ảnh chụp màn hình bên dưới hiển thị bản tin thời tiết do một dịch vụ bên ngoài cung cấp và được nhúng vào trang chủ của công cụ tìm kiếm.

Dịch vụ dự báo thời tiết được mua từ một nhà cung cấp và được nhúng vào trang chủ của một trang web.

Trang chủ của một trang web và công cụ tìm kiếm đều hiển thị báo cáo thời tiết hàng ngày. Thay vì tự viết mã cho phần báo cáo thời tiết, người ta có thể mua dịch vụ báo cáo thời tiết từ một nhà cung cấp và tích hợp nó vào các trang web.

Các lớp kiểm thử SOA

SOA bao gồm nhiều công nghệ khác nhau, và các ứng dụng được xây dựng bằng SOA có nhiều dịch vụ được kết nối lỏng lẻo. Sơ đồ bên dưới thể hiện ba lớp mà một kế hoạch kiểm thử cần phải bao phủ.

Kiến trúc SOA gồm ba lớp kiểm thử được xếp chồng lên nhau: lớp dịch vụ, lớp quy trình và lớp người tiêu dùng.

Kiểm thử SOA nên tập trung vào 3 lớp hệ thống.

Lớp dịch vụ

Lớp này bao gồm các dịch vụ được hệ thống cung cấp, xuất phát từ các chức năng nghiệp vụ.

Ví dụ, hãy xem xét một trang web về sức khỏe bao gồm:

  • Trọng lượng máy Tracker
  • Đường huyết Tracker
  • Huyết áp Tracker

TracCác thành phần hiển thị dữ liệu tương ứng và ngày nhập dữ liệu. Lớp dịch vụ bao gồm các dịch vụ lấy dữ liệu tương ứng từ cơ sở dữ liệu:

  • Trọng lượng máy Tracdịch vụ ker
  • Đường huyết Tracdịch vụ ker
  • Huyết áp Tracdịch vụ ker
  • Dịch vụ đăng nhập

Lớp quy trình

Lớp quy trình bao gồm các quy trình, tập hợp các dịch vụ là một phần của một chức năng duy nhất.

Các quy trình này có thể là một phần của giao diện người dùng (ví dụ: công cụ tìm kiếm) hoặc một phần của công cụ ETL dùng để trích xuất dữ liệu từ cơ sở dữ liệu.

Trọng tâm chính trong lớp này là giao diện người dùng và các quy trình. Giao diện người dùng của trọng lượng tracTrọng tâm chính là ker và sự tích hợp của nó với cơ sở dữ liệu.

Các chức năng sau đây cần được xem xét:

  • Thêm dữ liệu mới
  • Chỉnh sửa dữ liệu hiện có
  • Tạo mới tracker
  • Xóa dữ liệu

Lớp người tiêu dùng

Lớp này chủ yếu bao gồm giao diện người dùng, như hình ảnh bên dưới minh họa.

Giao diện người dùng lớp người tiêu dùng của trang web chăm sóc sức khỏe gọi đến hệ thống bên dưới. tracdịch vụ ker

Dựa trên các lớp này, việc kiểm thử ứng dụng SOA được chia thành ba cấp độ:

  • Cấp độ dịch vụ
  • Mức giao diện
  • Cấp độ từ đầu đến cuối

Hai hướng tiếp cận này khác nhau: phương pháp từ trên xuống được sử dụng cho thiết kế kiểm thử, trong khi phương pháp từ dưới lên được sử dụng cho việc thực thi kiểm thử.

Chiến lược kiểm thử SOA

Phương pháp lập kế hoạch thử nghiệm

  • Các chuyên viên kiểm thử SOA cần phải hiểu rõ toàn bộ kiến ​​trúc của ứng dụng.
  • Ứng dụng cần được chia thành các dịch vụ độc lập (mỗi dịch vụ có cấu trúc yêu cầu và phản hồi riêng và không phụ thuộc vào bất kỳ dịch vụ nào khác để tạo ra phản hồi).
  • Cấu trúc ứng dụng cần được tổ chức lại thành ba thành phần: dữ liệu, dịch vụ và ứng dụng giao diện người dùng.
  • Tất cả các thành phần cần được phân tích cẩn thận và các kịch bản kinh doanh cần được vạch ra.
  • Các tình huống kinh doanh nên được phân loại thành các tình huống thông thường và các tình huống đặc thù của ứng dụng.
  • A TracMa trận khả năng cần được chuẩn bị, và tất cả các trường hợp thử nghiệm cần được tracphù hợp với các tình huống kinh doanh.

Phương pháp thực hiện kiểm thử

  • Mỗi thành phần dịch vụ nên được kiểm tra.
  • Thử nghiệm hội nhập của các thành phần dịch vụ phải được thực hiện để xác thực luồng dữ liệu thông qua các dịch vụ và tính toàn vẹn của dữ liệu.
  • Thử nghiệm hệ thống Việc kiểm tra toàn bộ mô hình cần được thực hiện để xác thực luồng dữ liệu giữa ứng dụng giao diện người dùng và cơ sở dữ liệu.
  • Kiểm tra năng suất nên được thực hiện để tinh chỉnh và đạt hiệu suất tối ưu.

Phương pháp kiểm tra SOA

1) Kiểm thử dựa trên dữ liệu theo kịch bản kinh doanh

  • Cần phân tích nhiều khía cạnh kinh doanh khác nhau liên quan đến hệ thống.
  • Các kịch bản nên được xây dựng dựa trên sự tích hợp của các dịch vụ web khác nhau của ứng dụng, và của các dịch vụ web với ứng dụng.
  • Việc thiết lập dữ liệu nên được thực hiện dựa trên các kịch bản nêu trên.
  • Việc thiết lập dữ liệu cũng cần bao gồm các kịch bản từ đầu đến cuối.

2) Sơ khai

  • Các giao diện giả được tạo ra để kiểm tra các dịch vụ.
  • Nhiều đầu vào khác nhau có thể được cung cấp thông qua các giao diện này và các đầu ra có thể được xác thực.
  • Khi một ứng dụng sử dụng giao diện với một dịch vụ bên ngoài không thuộc phạm vi kiểm thử (dịch vụ của bên thứ ba), một đối tượng giả lập (stub) có thể được tạo ra trong quá trình kiểm thử tích hợp.

3) Kiểm tra hồi quy

  • Kiểm tra hồi quy Việc cập nhật ứng dụng nên được thực hiện khi có nhiều phiên bản phát hành, nhằm đảm bảo tính ổn định và khả dụng của hệ thống.
  • Một bộ kiểm tra hồi quy toàn diện sẽ được tạo bao gồm các dịch vụ tạo thành một phần quan trọng của ứng dụng.
  • Bộ kiểm thử này có thể được tái sử dụng trong nhiều phiên bản khác nhau của dự án.

4) Kiểm tra mức độ dịch vụ

Kiểm thử cấp độ dịch vụ bao gồm kiểm thử thành phần về chức năng, bảo mật, hiệu suất và khả năng tương tác. Mỗi dịch vụ cần được kiểm thử độc lập trước tiên.

5) Kiểm tra chức năng

Thử nghiệm chức năng Nên thực hiện việc này trên từng dịch vụ để:

  • Đảm bảo dịch vụ cung cấp phản hồi chính xác cho mỗi yêu cầu.
  • Đảm bảo nhận được thông báo lỗi chính xác cho các yêu cầu có dữ liệu không hợp lệ hoặc sai.
  • Kiểm tra từng yêu cầu và phản hồi cho mỗi thao tác mà dịch vụ phải thực hiện trong quá trình hoạt động.
  • Xác thực các thông báo lỗi khi xảy ra sự cố ở cấp độ máy chủ, máy khách hoặc mạng.
  • Xác thực rằng các phản hồi nhận được có đúng định dạng.
  • Xác nhận rằng dữ liệu nhận được trong phản hồi tương ứng với dữ liệu được yêu cầu.

6) Kiểm tra bảo mật

Kiểm thử bảo mật dịch vụ web là một khía cạnh quan trọng trong quá trình kiểm thử cấp độ dịch vụ của ứng dụng SOA, vì nó đảm bảo tính an toàn của ứng dụng.

Các yếu tố sau đây cần được đề cập trong quá trình thử nghiệm:

  • Các dịch vụ web phải tuân thủ tiêu chuẩn ngành do WS-Security định nghĩa.
  • Các biện pháp an ninh phải hoạt động hoàn hảo.
  • Mã hóa dữ liệu và chữ ký điện tử trên các tài liệu.
  • Xác thực và ủy quyền.
  • Các lỗ hổng bảo mật như SQL injection, phần mềm độc hại, XSS, CSRF và các lỗ hổng khác sẽ được kiểm tra trên hệ thống. XML.
  • Sự từ chối của dịch vụ tấn công.

7) Kiểm tra hiệu suất

Việc kiểm thử hiệu năng của dịch vụ là cần thiết vì các dịch vụ có thể tái sử dụng và nhiều ứng dụng có thể sử dụng cùng một dịch vụ.

Các yếu tố sau đây được xem xét trong quá trình thử nghiệm:

  • Hiệu suất và chức năng của dịch vụ cần được kiểm tra dưới tải nặng.
  • Cần so sánh hiệu suất của dịch vụ khi nó hoạt động độc lập và khi nó được tích hợp trong ứng dụng.
  • Kiểm tra tải Việc đánh giá hiệu năng dịch vụ nên được thực hiện để xác minh thời gian phản hồi, kiểm tra các điểm nghẽn, xác minh mức độ sử dụng CPU và bộ nhớ, và dự đoán khả năng mở rộng.

8) Kiểm tra mức độ tích hợp

  • Kiểm thử mức độ dịch vụ đảm bảo hoạt động đúng đắn của từng dịch vụ riêng lẻ; nó không đảm bảo hoạt động của các thành phần được kết nối với nhau.
  • Kiểm thử tích hợp được thực hiện tập trung chủ yếu vào... giao diện.
  • Giai đoạn này bao gồm tất cả các kịch bản kinh doanh có thể xảy ra.
  • Việc kiểm thử phi chức năng của ứng dụng cần được thực hiện lại một lần nữa trong giai đoạn này. Kiểm thử bảo mật, tuân thủ và hiệu năng đảm bảo tính khả dụng và ổn định của hệ thống trên mọi khía cạnh.
  • Các giao thức mạng và giao tiếp phải được kiểm tra để xác nhận tính nhất quán của giao tiếp dữ liệu giữa các dịch vụ.

9) Thử nghiệm từ đầu đến cuối

Giai đoạn này đảm bảo rằng ứng dụng đáp ứng các yêu cầu kinh doanh cả về chức năng và phi chức năng.

Các mặt hàng dưới đây được đảm bảo sẽ được kiểm tra trong quá trình sản xuất. kiểm tra end-to-end:

  • Tất cả các dịch vụ hoạt động như mong đợi sau khi tích hợp
  • Xử lý ngoại lệ
  • Giao diện người dùng của ứng dụng
  • Luồng dữ liệu thích hợp thông qua tất cả các thành phần
  • Quy trình nghiệp vụ

Những thách thức trong kiểm thử SOA

Việc áp dụng những phương pháp đó hiếm khi dễ dàng, và những khó khăn dưới đây thường xuyên xuất hiện trong hầu hết các chương trình SOA.

  • Thiếu giao diện cho các dịch vụ.
  • Quá trình kiểm thử bao gồm nhiều hệ thống khác nhau, dẫn đến nhu cầu dữ liệu phức tạp.
  • Ứng dụng này là tập hợp của nhiều thành phần khác nhau và chúng thường xuyên thay đổi, do đó nhu cầu kiểm thử hồi quy (Regression Testing) trở nên thường xuyên hơn.
  • Do cấu trúc nhiều lớp, việc cô lập các khuyết tật rất khó khăn.
  • Do một dịch vụ được sử dụng bởi nhiều giao diện khác nhau, nên việc dự đoán tải trọng rất khó khăn, điều này khiến việc lập kế hoạch kiểm thử hiệu năng trở nên phức tạp.
  • SOA là một tập hợp các công nghệ không đồng nhất. Việc kiểm thử một ứng dụng SOA đòi hỏi những người có kỹ năng khác nhau, điều này làm tăng chi phí lập kế hoạch và thực hiện.
  • Do ứng dụng tích hợp nhiều dịch vụ, việc kiểm thử bảo mật gặp phải nhiều khó khăn. Việc xác thực và cấp quyền rất phức tạp.

Công cụ kiểm tra SOA

Hiện nay trên thị trường có rất nhiều công cụ kiểm thử SOA giúp người kiểm thử thực hiện việc kiểm thử các ứng dụng SOA. Dưới đây là một số công cụ kiểm thử SOA phổ biến.

1) SoapUI

SoapUI là một công cụ kiểm thử chức năng mã nguồn mở dành cho các dịch vụ và Thử nghiệm API.

  • Ứng dụng máy tính để bàn
  • Hỗ trợ nhiều giao thức — SOAP, REST, HTTP, JMS, AMF, JDBC
  • Các dịch vụ web có thể được phát triển, kiểm tra và gọi.
  • Cũng có thể được sử dụng để kiểm tra tải trọng. Kiểm tra tự động hóavà kiểm tra bảo mật
  • Sơ khai có thể được tạo bởi MockServices
  • Các yêu cầu và kiểm thử dịch vụ web có thể được tạo tự động thông qua trình khách dịch vụ web của nó.
  • Có công cụ báo cáo tích hợp sẵn
  • Được phát triển bởi SmartBear, công ty cung cấp cả hai loại sản phẩm này. mã nguồn mở SoapUI phân phối và thương mại ReadyAPI phiên bản

2) Broadcom Service Virtualization (trước đây là iTKO LISA)

LISA là một bộ sản phẩm cung cấp giải pháp kiểm thử chức năng cho các hệ thống phân tán như SOA. Sản phẩm này đã được chuyển giao từ iTKO sang CA Technologies và hiện đang được bán dưới tên Broadcom Service Virtualization.

  • Cũng có thể được sử dụng cho kiểm thử hồi quy, tích hợp, tải và hiệu năng.
  • Có thể được sử dụng để thiết kế và thực hiện các bài kiểm tra.

3) UFT Một (trước đây là HP Service Test)

Service Test là một công cụ kiểm thử chức năng hỗ trợ cả kiểm thử giao diện người dùng (UI) và kiểm thử dịch vụ dùng chung. Khả năng kiểm thử API của nó đã được tích hợp vào Unified Functional Testing, hiện đang được bán bởi... OpenText as UFT Một.

  • Cả kiểm thử chức năng và kiểm thử hiệu năng của dịch vụ đều có thể được thực hiện bằng một tập lệnh duy nhất.
  • Được tích hợp với Quality Center, hiện đang được bán dưới dạng sản phẩm khác. OpenText ALM / Trung tâm Chất lượng.
  • Một lượng lớn dịch vụ và dữ liệu có thể được quản lý.
  • Hỗ trợ kiểm tra khả năng tương tác bằng cách mô phỏng môi trường máy khách JEE, AXIS và DotNet.

4) Parasoft SOAtest

Parasoft SOAtest là bộ công cụ kiểm thử và phân tích được phát triển để kiểm thử API và các ứng dụng dựa trên API.

  • Hỗ trợ các công nghệ dịch vụ web, REST, JSON, MQ, JMS, TIBCO, HTTP và XML.
  • Các loại kiểm thử chức năng, kiểm thử đơn vị, kiểm thử tích hợp, kiểm thử hồi quy, kiểm thử bảo mật, kiểm thử khả năng tương tác, kiểm thử tuân thủ và kiểm thử hiệu năng đều có thể thực hiện được.
  • Có thể tạo các stub bằng cách sử dụng Parasoft Virtualize, có khả năng hơn SoapUI Dịch vụ giả lập.

Các trường hợp sử dụng thử nghiệm SOA

Ví dụ minh họa bên dưới áp dụng chiến lược, phương pháp và công cụ nêu trên cho một trang thương mại điện tử duy nhất, theo từng giai đoạn.

Hãy xem xét một trang web thương mại điện tử có các chức năng và chức năng phụ được liệt kê bên dưới.

Xử lý Đơn đặt hàng

Biểu đồ bên dưới phân chia quy trình xử lý đơn hàng thành các chức năng phụ tạo nên các dịch vụ.

Quy trình xử lý đơn hàng được chia thành các chức năng phụ như tạo đơn hàng, kiểm tra tồn kho và thay đổi trạng thái đơn hàng.

PHASE 1

Trong giai đoạn đầu tiên của quá trình kiểm thử SOA, hay còn gọi là giai đoạn chiến lược kiểm thử, ứng dụng được chia thành các dịch vụ và chức năng nghiệp vụ.

Chúng ta hãy xem xét các dịch vụ dưới đây trong ứng dụng.

  • Tạo đơn hàng
  • Kiểm tra trạng thái khách hàng
  • Thay đổi trạng thái đơn hàng
  • Kiểm tra trạng thái đơn hàng
  • Kiểm tra hàng tồn kho

Các chức năng kinh doanh cũng giống như các chức năng của trang web.

Lưu ý: Tài liệu chiến lược kiểm thử sẽ bao gồm danh sách các dịch vụ và chức năng cần được kiểm thử.

PHASE 2

Đây là giai đoạn lập kế hoạch thử nghiệm. Các trường hợp thử nghiệm Được viết riêng cho từng cấp độ.

Từ đầu đến cuối. Các trường hợp kiểm thử được viết riêng cho từng trường hợp sử dụng và quy trình nghiệp vụ. Dưới đây là một số ví dụ về các trường hợp kiểm thử.

  • Tạo đơn hàng với người dùng đang hoạt động.
  • Tạo đơn đặt hàng với người dùng không hoạt động.
  • Tạo đơn hàng với sản phẩm có sẵn, với số lượng đặt hàng < số lượng có sẵn.
  • Tạo đơn hàng với sản phẩm có sẵn, với số lượng đặt hàng > số lượng có sẵn.
  • Tạo đơn hàng với nhiều mặt hàng.
  • Hủy đơn hàng hoàn toàn.
  • Hủy đơn hàng một phần.

Mức độ tích hợp. Các trường hợp kiểm thử được viết cho việc tích hợp cơ sở dữ liệu và giao diện người dùng. Dưới đây là một số ví dụ về trường hợp kiểm thử.

  • Tạo một đơn hàng mới với một mặt hàng duy nhất. Xác minh rằng đơn hàng được tạo trên cơ sở dữ liệu.
  • Tạo một đơn hàng mới với một mặt hàng duy nhất. Xác minh rằng giá được tính cho đơn hàng là chính xác.
  • Tạo một đơn hàng mới với một mặt hàng duy nhất. Kiểm tra xem số lượng sản phẩm có sẵn đã giảm đi đúng bằng số tiền của đơn hàng hay chưa.
  • Hãy kiểm tra xem trạng thái đơn hàng hiển thị trên giao diện người dùng có trùng khớp với trạng thái trong cơ sở dữ liệu hay không.
  • Hủy đơn hàng và xác minh rằng trạng thái của đơn hàng đã được sửa đổi trên cơ sở dữ liệu.
  • Đối với lần thanh toán đầu tiên, hãy xác minh rằng thông tin thanh toán đã nhập trên giao diện người dùng được lưu vào cơ sở dữ liệu.
  • Đối với việc trả lại thanh toán, hãy xác minh rằng thông tin thanh toán trên cơ sở dữ liệu được hiển thị trên UI.

Cấp độ dịch vụ. Mỗi dịch vụ đều được kiểm tra đầy đủ các điều kiện dữ liệu. Dưới đây là một vài ví dụ.

STT Chi tiết đặt hàng Điều kiện đặt hàng
1 Tạo đơn hàng. Số mục = 1 Số lượng đặt hàng < Số lượng trên cơ sở dữ liệu
2 Tạo đơn hàng. Số mục > 1 Số lượng đặt hàng < Số lượng trong cơ sở dữ liệu
3 Tạo đơn hàng. Số mục = 1 Số lượng trên đơn hàng > Số lượng trên cơ sở dữ liệu
4 Kiểm tra trạng thái đơn hàng Trạng thái trên cơ sở dữ liệu = Đang hoạt động
5 Kiểm tra trạng thái đơn hàng Trạng thái trên cơ sở dữ liệu = Đã giao hàng
6 Kiểm tra trạng thái đơn hàng Trạng thái trên cơ sở dữ liệu = Đã hủy
7 Kiểm tra trạng thái đơn hàng Id đơn hàng = Không hợp lệ
8 Kiểm tra tính khả dụng của sản phẩm Số lượng sản phẩm >0
9 Kiểm tra tính khả dụng của sản phẩm Số lượng sản phẩm =0
10 Kiểm tra tính khả dụng của sản phẩm Id sản phẩm = không hợp lệ

GIAI ĐOẠN 3 — Thực thi kiểm thử

Việc thực hiện kiểm thử sử dụng phương pháp từ dưới lên: kiểm thử ở cấp độ dịch vụ được thực hiện trước, sau đó là cấp độ tích hợp, và cuối cùng là kiểm thử đầu cuối.

1) Mức độ dịch vụ

Chúng ta hãy xem xét rằng SoapUI công cụ này được sử dụng để kiểm tra ứng dụng. WSDL và URL được duyệt vào cửa sổ kiểm tra của SoapUIVà yêu cầu cho mỗi dịch vụ được hiển thị trong cửa sổ yêu cầu. Bằng cách sửa đổi dữ liệu theo các trường hợp kiểm thử cấp độ dịch vụ, các yêu cầu được tạo cho mỗi trường hợp kiểm thử.

Trường hợp thử nghiệm Yêu cầu Phản hồi được mong đợi
Tạo đơn hàng. Số lượng mặt hàng = 1, Số lượng đặt hàng < Số lượng trong cơ sở dữ liệu x2 2 o3251 Thành công
Tạo đơn hàng. Số lượng mặt hàng > 1, Số lượng trong đơn hàng < Số lượng trong cơ sở dữ liệu y1 1 y2 3 o3251 Thành công
Tạo đơn hàng. Số lượng mặt hàng = 1, Số lượng đặt hàng > Số lượng trong cơ sở dữ liệu. x23 200 vô giá trị không thành công
Kiểm tra trạng thái đơn hàng. Trạng thái trong cơ sở dữ liệu = Đang hoạt động o9876 Tích cực Thành công
Kiểm tra trạng thái đơn hàng. Trạng thái trên cơ sở dữ liệu = Đã giao hàng o9656 Đã vận chuyển Thành công
Kiểm tra trạng thái đơn hàng. Mã đơn hàng = Không hợp lệ y5686 vô giá trị Không thành công
Kiểm tra tình trạng còn hàng của sản phẩm. Số lượng sản phẩm >0 d34 34 Đúng Thành công
Kiểm tra tình trạng còn hàng của sản phẩm. Số lượng sản phẩm = 0 y34 0 KHÔNG Thành công
Kiểm tra tình trạng còn hàng của sản phẩm. Mã sản phẩm = không hợp lệ sder không thành công

2) Mức độ tích hợp

Các trường hợp kiểm thử tích hợp được thực hiện trên giao diện người dùng và cơ sở dữ liệu. Tạo một đơn hàng với một mặt hàng duy nhất:

  • Một người dùng mở trang web.
  • Người dùng tiến hành đặt hàng.
  • Người dùng chọn sản phẩm và số lượng hợp lệ rồi lưu đơn hàng.
  • Một thông báo cho biết đơn hàng đã được đặt thành công sẽ được hiển thị.
  • Người dùng mở cơ sở dữ liệu và kiểm tra xem các chi tiết của đơn hàng có trùng khớp với những thông tin đã nhập trên trang web hay không.

3) Cấp độ từ đầu đến cuối

Các quy trình nghiệp vụ và trường hợp sử dụng được thực thi trên giao diện người dùng. Tạo đơn hàng với nhiều mặt hàng:

  • Một người dùng mở trang web.
  • Người dùng tiến hành đặt hàng.
  • Người dùng hỏi về một sản phẩm và số lượng hợp lệ rồi thêm chúng vào giỏ hàng.
  • Các sản phẩm hợp lệ khác được thêm vào với số lượng hợp lệ và đơn hàng được lưu lại. Thanh toán được thực hiện thông qua phương thức thanh toán mới và đơn hàng được đặt.
  • Thông báo “Đặt hàng thành công” sẽ được hiển thị.
  • Người kiểm thử cần xác nhận rằng toàn bộ quy trình hoàn tất mà không làm sai lệch dữ liệu.

Câu Hỏi Thường Gặp

Các cấp độ thì giống nhau, nhưng dịch vụ SOA có cấu trúc thô hơn và thường được định tuyến qua một bus dịch vụ doanh nghiệp, do đó các bài kiểm tra tích hợp nhắm mục tiêu vào bus. Microservices có cấu trúc chi tiết hơn và có thể triển khai độc lập, điều này chuyển trọng tâm sang...tracvà kiểm tra khả năng phục hồi.

vớitracKiểm thử t (testing) đảm bảo nhà cung cấp vẫn tuân thủ định dạng yêu cầu và phản hồi mà người tiêu dùng mong đợi, thường dựa trên WSDL hoặc lược đồ. Nó nằm giữa cấp độ dịch vụ và cấp độ tích hợp, giúp phát hiện các thay đổi gây lỗi trước khi chạy tích hợp hoàn chỉnh.

Một đoạn mã viết tay là đủ để có được phản hồi cố định. Ảo hóa đáng giá với phí bản quyền khi sự phụ thuộc được tính phí theo lưu lượng, giới hạn tốc độ hoặc có trạng thái, bởi vì nó tái tạo độ trễ thực tế, mã lỗi và sự biến đổi dữ liệu mà một đoạn mã tĩnh không thể tái tạo.

Đúng vậy. Các lớp và cấp độ không phụ thuộc vào giao thức. Các dịch vụ SOAP được xác thực dựa trên WSDL và các quy tắc WS-Security, trong khi các dịch vụ REST được xác thực dựa trên định nghĩa OpenAPI, mã trạng thái và xác thực dựa trên mã thông báo. Hầu hết các bộ công cụ đều xử lý cả hai.

Các mô hình học máy tạo ra tải trọng yêu cầu từ một lược đồ, xếp hạng các dịch vụ theo lịch sử lỗi để các bộ kiểm thử hồi quy chạy các lỗi rủi ro cao nhất trước, và phân cụm các phản hồi lỗi trên các lớp để thu hẹp phạm vi tìm ra nguồn gốc lỗi trong kiến ​​trúc đa lớp.

Copilot soạn thảo các yêu cầu từ tệp WSDL hoặc lược đồ, viết mã xác nhận, tạo khung cho các dịch vụ giả lập và tạo các bước trong quy trình. Người kiểm thử vẫn phải cung cấp các quy tắc nghiệp vụ, các điều kiện dữ liệu tiêu cực và các thông báo lỗi dự kiến ​​mà mô hình không thể suy luận được.

Code Việc bao phủ phạm vi hoạt động hiếm khi khả dụng trên các dịch vụ không đồng nhất, vì vậy các nhóm đo lường phạm vi hoạt động (mọi hoạt động được thực hiện), phạm vi thông báo (mỗi lỗi và đường dẫn thành công) và phạm vi kịch bản kinh doanh. tracđược xây dựng thông qua ma trận trong quá trình lập kế hoạch thử nghiệm.

Đọc các tệp WSDL, XSD, và dữ liệu XML hoặc JSON, viết câu lệnh SQL để xác minh dữ liệu lưu trữ, làm việc thành thạo với máy khách API và hiểu rõ phần mềm trung gian nhắn tin đang được sử dụng. Kỹ năng lập trình cơ bản rất hữu ích vì hầu hết các bộ kiểm thử cuối cùng đều được tự động hóa.

Tóm tắt bài viết này với: