Kiểm tra thành phần là gì? Kỹ thuật, trường hợp thử nghiệm mẫu

⚡ Tóm tắt thông minh

Kiểm thử thành phần kiểm tra từng phần riêng lẻ của ứng dụng một cách độc lập, mà không tích hợp chúng với phần còn lại, nhờ đó các lỗi được phát hiện và khắc phục bên trong một mô-đun duy nhất trước khi bắt đầu lắp ráp.

  • 🧩 Phạm vi: Mỗi lần chỉ xem xét một thành phần, tách biệt khỏi các thành phần xung quanh.
  • 👥 Chủ đầu tư: Người kiểm thử sẽ chạy nó sau khi các nhà phát triển hoàn thành việc kiểm thử đơn vị.
  • 🔬 CTIS: Kiểm tra linh kiện quy mô nhỏ giúp cô lập hoàn toàn linh kiện đó.
  • 🔗 CTIL: Kiểm thử thành phần trên quy mô lớn giúp duy trì các mối quan hệ phụ thuộc, dù là thực tế hay mô phỏng.
  • 🧱 Doubles: Trình điều khiển gọi thành phần; thành phần đó gọi một hàm giả (stub).
  • Xuất cảnh: Không có lỗi nào ở mức Nghiêm trọng, Cao hoặc Trung bình vẫn hiển thị trong nhật ký.

Các kỹ thuật kiểm thử thành phần và các trường hợp kiểm thử ví dụ

Kiểm tra thành phần là gì?

Kiểm tra thành phần Đây là một loại kiểm thử phần mềm trong đó việc kiểm thử được thực hiện trên từng thành phần riêng lẻ, không tích hợp chúng với các thành phần khác. Nhìn từ góc độ kiến ​​trúc, nó còn được gọi là... kiểm thử mô-đunvà một số tài liệu gọi đó là kiểm thử chương trình.

Bất kỳ phần mềm nào cũng được cấu thành từ nhiều thành phần, và kiểm thử ở cấp độ thành phần liên quan đến việc kiểm thử từng thành phần riêng lẻ. Đây là một trong những loại kiểm thử thường gặp nhất. kiểm tra hộp đen các loại thực hiện bởi nhóm QA.

Một lưu ý quan trọng về việc đặt tên cần được đề cập ngay từ đầu. Thuật ngữ ISTQB đề cập đến kiểm thử thành phần và kiểm tra đơn vị Mặc dù được coi là từ đồng nghĩa cho cùng một cấp độ kiểm thử, nhưng trên thực tế, nhiều nhóm phát triển phần mềm, và cả bài viết này, vẫn phân biệt rõ hai khái niệm này: lập trình viên chạy kiểm thử đơn vị trên mã nguồn của chính họ, còn người kiểm thử chạy kiểm thử thành phần trên bản dựng đã được bàn giao. Bảng so sánh ở cuối bài viết này sẽ trình bày rõ sự khác biệt thực tế đó.

Như sơ đồ bên dưới cho thấy, kiểm thử thành phần có chiến lược và kế hoạch kiểm thử riêng, trong đó mỗi phần của phần mềm hoặc ứng dụng được xem xét riêng lẻ. Đối với mỗi thành phần, Kịch bản thử nghiệm được định nghĩa, sau đó được chia nhỏ thành các trường hợp kiểm thử cấp cao và cuối cùng là các trường hợp kiểm thử chi tiết cấp thấp. trường hợp thử nghiệm Với các điều kiện tiên quyết.

Cấu trúc phân cấp kiểm thử thành phần, từ chiến lược kiểm thử đến các trường hợp kiểm thử cấp thấp.

Cách sử dụng thuật ngữ “kiểm thử thành phần” khác nhau tùy thuộc vào lĩnh vực và tổ chức. Ba lý do phổ biến nhất dẫn đến sự khác biệt này là:

  1. Loại mô hình vòng đời phát triển được lựa chọn
  2. Độ phức tạp của phần mềm hoặc ứng dụng đang được kiểm thử
  3. Cho dù việc kiểm thử được thực hiện có hoặc không tách biệt khỏi các thành phần khác trong ứng dụng.

Chu kỳ kiểm thử phần mềm tạo ra nhiều tài liệu kiểm thử, tức là các văn bản được tạo ra và sử dụng trong quá trình hoạt động kiểm thử. Trong số đó, chính sách kiểm thử và chiến lược kiểm thử xác định loại kiểm thử nào được sử dụng và mức độ kiểm thử sâu đến đâu trong một dự án cụ thể.

Ai thực hiện kiểm thử thành phần

Kiểm thử thành phần được thực hiện bởi các chuyên viên kiểm thử. Kiểm thử đơn vị được thực hiện bởi các nhà phát triển, những người kiểm thử một chức năng hoặc quy trình riêng lẻ. Sau khi kiểm thử đơn vị hoàn tất, kiểm thử thành phần sẽ được tiến hành, và các chuyên viên kiểm thử sẽ chịu trách nhiệm về phần này.

Khi nào cần thực hiện kiểm thử Thành phần

Kiểm thử thành phần được thực hiện ngay sau khi các nhà phát triển hoàn thành kiểm thử đơn vị và bản dựng được phát hành cho nhóm kiểm thử. Bản dựng đó được gọi là bản dựng UT, hay bản dựng kiểm thử đơn vị. Chức năng chính của mỗi thành phần được kiểm thử trong giai đoạn này.

Tiêu chí đầu vào để kiểm tra thành phần

  • Bộ thành phần tối thiểu cần có trong bản dựng UT đã được phát triển và kiểm thử đơn vị.

Tiêu chí đầu ra cho thử nghiệm thành phần

  • Chức năng của từng thành phần đều hoạt động đúng như đã được quy định.
  • Hiện không còn lỗi nào ở mức độ nghiêm trọng, cao hoặc trung bình hoặc mức độ ưu tiên chưa được khắc phục. nhật ký lỗi.

Kỹ thuật kiểm tra thành phần

Dựa trên độ sâu của mức độ kiểm thử, kiểm thử linh kiện được phân loại theo hai cách.

  1. CTIS — Kiểm tra thành phần quy mô nhỏ
  2. CTIL — Kiểm thử thành phần quy mô lớn

CTIS — Kiểm tra thành phần quy mô nhỏ

Kiểm thử thành phần có thể được thực hiện có hoặc không tách biệt khỏi các thành phần khác trong ứng dụng cần kiểm thử. Khi được thực hiện với các thành phần khác được tách biệt, nó được gọi là kiểm thử thành phần quy mô nhỏ.

Ví dụ 1: Trên một trang web có năm trang khác nhau, việc kiểm thử từng trang riêng biệt và độc lập với các thành phần khác chính là kiểm thử thành phần trên quy mô nhỏ.

Ví dụ 2: Trang chủ guru99.com hiển thị bên dưới bao gồm nhiều thành phần, chẳng hạn như Trang chủ, Kiểm thử, SAP, Web, Cần phải học!, Dữ liệu lớn, Dự án thực tế và Blog.

Guru99 menu điều hướng trang chủ được coi là các thành phần riêng biệt có thể kiểm thử.

Bất kỳ phần mềm nào cũng được cấu tạo từ nhiều thành phần, và mỗi thành phần lại có các thành phần con riêng. Việc kiểm thử từng mô-đun được liệt kê trong Ví dụ 2 một cách riêng lẻ, mà không xem xét sự tích hợp của nó với các thành phần khác, chính là kiểm thử thành phần quy mô nhỏ.

Khi mở menu thả xuống "Kiểm thử", bạn sẽ thấy các thành phần con của thành phần "Kiểm thử": Kiểm tra bằng taySOAPUI, QTP, JUnit, SeleniumQuản lý thử nghiệm và Thử nghiệm di độngTrong ảnh chụp màn hình bên dưới, các thành phần phụ đó được tô sáng màu đỏ.

Kiểm tra menu thả xuống với các thành phần con được tô sáng màu đỏ.

CTIL — Kiểm thử thành phần quy mô lớn

Việc kiểm thử thành phần mà không tách biệt khỏi các thành phần khác trong ứng dụng cần kiểm thử được gọi là kiểm thử thành phần quy mô lớn.

Một ví dụ sẽ làm rõ sự khác biệt hơn. Giả sử một ứng dụng bao gồm ba thành phần: Thành phần A, Thành phần B và Thành phần C.

Nhà phát triển đã xây dựng Thành phần B và muốn kiểm tra nó. Để kiểm tra Thành phần B một cách toàn diện, một số chức năng của nó phụ thuộc vào Thành phần A và một số chức năng khác phụ thuộc vào Thành phần C, như sơ đồ bên dưới minh họa.

Linh kiện B được kiểm tra với một trình điều khiển thay thế cho linh kiện A và một đoạn mạch thay thế cho linh kiện C.

Luồng chức năng là A → B → C, có nghĩa là Thành phần B phụ thuộc vào cả A và C. Trong luồng đó, stub là hàm được gọi và driver là hàm gọi.

Thành phần A và Thành phần C vẫn chưa được phát triển. Để kiểm tra hoàn toàn Thành phần B, A và C được thay thế bằng trình điều khiển và đoạn mã giả lập khi cần thiết, do đó hai thành phần còn thiếu hoạt động như các đối tượng giả cho đến khi các thành phần thực sự tồn tại.

  • Sơ khai: Một hàm giả (stub) được gọi bởi thành phần cần kiểm thử. Thành phần C chưa sẵn sàng, vì vậy hàm giả này đóng vai trò thay thế và trả về các phản hồi mà thành phần B mong đợi.
  • Người lái xe: Một trình điều khiển gọi thành phần cần kiểm thử. Thành phần A chưa sẵn sàng, vì vậy trình điều khiển khác thay thế nó và gọi thành phần B với các đầu vào cần thiết.

Các trường hợp kiểm thử mẫu để kiểm thử thành phần

Hai trang web dưới đây có mối liên hệ với nhau về mặt chức năng, do đó chúng tạo thành một cặp thành phần hữu ích để thử nghiệm.

Trang web 1 là trang đăng nhập của trang web ngân hàng demo.

Thành phần trang đăng nhập với các trường ID người dùng và mật khẩu.

Khi người dùng nhập tên người dùng và mật khẩu hợp lệ rồi nhấn nút gửi, trang sẽ chuyển đến trang chủ của trang web ngân hàng demo, như hình bên dưới.

Thành phần trang chủ quản lý với các liên kết điều hướng và hình ảnh

Ở đây, trang đăng nhập là một thành phần và trang chủ là một thành phần khác. Việc kiểm thử chức năng của từng trang riêng biệt được gọi là kiểm thử thành phần.

Các kịch bản kiểm thử thành phần trên trang web 1:

  • Nhập ID người dùng không hợp lệ và xác minh rằng cảnh báo thân thiện với người dùng được hiển thị cho người dùng cuối.
  • Nhập tên người dùng và mật khẩu không hợp lệ, nhấp vào Đặt lại, và xác minh rằng các trường tên người dùng và mật khẩu đã được xóa.
  • Nhập tên người dùng và mật khẩu hợp lệ rồi nhấn nút Đăng nhập.

Các kịch bản kiểm thử thành phần trên trang web 2:

  • Hãy kiểm tra xem thông báo chào mừng dành cho trang quản lý có hiển thị trên trang chủ hay không.
  • Hãy kiểm tra xem tất cả các liên kết ở phía bên trái của trang web đều có thể nhấp chuột được.
  • Hãy kiểm tra xem ID người quản lý có được hiển thị ở giữa trang chủ hay không.
  • Hãy kiểm tra xem trang chủ có xuất hiện ba hình ảnh khác nhau theo sơ đồ hay không.

Kiểm tra đơn vị và kiểm tra thành phần

Bảng dưới đây tóm tắt sự khác biệt giữa hai cấp độ trong thực tiễn hàng ngày.

Kiểm tra đơn vị Kiểm tra thành phần
Kiểm tra từng chương trình và mô-đun riêng lẻ để chứng minh rằng chương trình hoạt động đúng theo yêu cầu kỹ thuật. Kiểm tra từng đối tượng hoặc từng phần của phần mềm một cách riêng biệt, có hoặc không tách biệt với các đối tượng khác.
Đã được kiểm tra và xác nhận dựa trên tài liệu thiết kế. Đã được kiểm chứng dựa trên các yêu cầu kiểm thử và trường hợp sử dụng.
Được thực hiện bởi các nhà phát triển. Do các chuyên viên kiểm thử thực hiện.
Làm xong trước. Việc này được thực hiện sau khi quá trình kiểm thử đơn vị hoàn tất ở phía nhà phát triển.
Các lỗi thường được khắc phục ngay tại chỗ và không được ghi nhận chính thức. Các lỗi được ghi lại và tracđược thực hiện thông qua quy trình quản lý lỗi.

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

Giảm thiểu rủi ro, xác minh hoạt động chức năng và phi chức năng của linh kiện, xây dựng niềm tin vào chất lượng của nó, phát hiện lỗi và ngăn ngừa những lỗi đó lan rộng.ping lên các cấp độ kiểm tra cao hơn.

Các mô hình đọc một thành phần.tracvà đề xuất các đầu vào không hợp lệ, giá trị biên và đường dẫn lỗi mà quá trình kiểm thử thủ công thường bỏ sót. Người kiểm thử vẫn xác nhận mọi kết quả mong đợi trước khi thực thi.

Đúng vậy. Một đoạn mã trả về các câu trả lời soạn sẵn và một trình điều khiển cung cấp các đầu vào cố định là những đoạn mã theo công thức mà trợ lý viết ra một cách nhanh chóng. Việc quyết định câu trả lời nào là thực tế vẫn là quyết định của con người.

Kiểm thử thành phần xem xét từng thành phần riêng lẻ. Thành phần Thử nghiệm hội nhập Chương trình này kiểm tra các giao diện và tương tác giữa các thành phần, và chạy sau khi đã kiểm tra các thành phần.

Codecác khuôn khổ cấp độ như JUnit, TestNG, NUnit và pytest, cùng với các trình chạy thành phần giao diện người dùng như... Cypress Kiểm thử thành phần, Storybook và Jest. Tất cả chúng đều nằm trong một hệ thống tổng thể. tự động hóa đường ống dẫn.

Xây dựng và duy trì các bản sao. Một bản sao giả lập tách rời khỏi thành phần thực sẽ che giấu các lỗi cho đến khi tích hợp, vì vậy mọi phản hồi mô phỏng cần được xem xét lại sau khi thành phần thực được triển khai.

Nó đảo ngược thứ tự. Các trường hợp được viết và tự động hóa trước khi thành phần tồn tại, sau đó mã được thêm vào cho đến khi chúng vượt qua kiểm thử. Thành phần được tạo ra với bộ kiểm thử đã được thiết lập sẵn.

Cả hai, tùy thuộc vào người thực hiện. Người kiểm thử làm việc theo kiểu hộp đen dựa trên đặc tả của thành phần, trong khi các nhà phát triển có quyền truy cập mã nguồn sẽ áp dụng các phương pháp khác. hộp trắng Phạm vi phủ sóng bên trong cùng một thành phần.

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