Tổng quan nghiên cứu

Trong kỹ thuật phần mềm hiện đại, hoạt động kiểm thử đóng vai trò sống còn nhằm đảm bảo độ tin cậy và chất lượng của sản phẩm trước khi phát hành. Theo các báo cáo thống kê trong ngành công nghệ thông tin, chi phí dành cho hoạt động kiểm thử phần mềm thường chiếm từ 40% đến 50% tổng ngân sách dự án, trong khi thời gian thực hiện kiểm thử thủ công có thể tiêu tốn từ 30% đến 50% tổng tiến độ phát triển. Phương pháp kiểm thử truyền thống chủ yếu dựa trên việc nghiên cứu tài liệu đặc tả yêu cầu phần mềm để viết kịch bản thử nghiệm bằng tay. Cách tiếp cận này bộc lộ nhiều hạn chế nghiêm trọng như tiêu tốn nguồn nhân lực lớn, chất lượng ca kiểm thử không đồng đều và phụ thuộc nặng nề vào kinh nghiệm chủ quan của kiểm thử viên, dẫn đến nguy cơ bỏ sót các lỗi tiềm ẩn trong logic nghiệp vụ.

Nhằm giải quyết triệt để vấn đề trên, luận văn thạc sĩ chuyên ngành Kỹ thuật phần mềm của tác giả Dương Thị Thanh Huyền, dưới sự hướng dẫn khoa học của Tiến sĩ Đặng Đức Hạnh tại Trường Đại học Công nghệ – Đại học Quốc gia Hà Nội (bảo vệ năm 2017), đã nghiên cứu và đề xuất phương pháp tự động hóa quá trình sinh ca kiểm thử từ mô hình luồng quy trình nghiệp vụ thực thi được.

Mục tiêu cụ thể của đề tài là xây dựng một quy trình hoàn chỉnh cùng thuật toán tự động phân tích tệp đặc tả quy trình nghiệp vụ định dạng XML theo chuẩn mô hình hóa quy trình nghiệp vụ quốc tế, từ đó trích xuất toàn bộ luồng điều khiển và sinh tập kịch bản kiểm thử độc lập. Nghiên cứu tập trung vào phạm vi các mô hình quy trình nghiệp vụ thực thi được trên các công cụ quản lý quy trình phổ biến tại Việt Nam và trên thế giới.

Ý nghĩa thực tiễn của công trình thể hiện ở việc nâng cao năng suất kiểm thử, rút ngắn hơn 50% thời gian tạo ca kiểm thử thủ công và đảm bảo độ bao phủ đạt mức 100% đối với các đường nhánh nghiệp vụ. Kết quả nghiên cứu là bước đột phá giúp các doanh nghiệp phần mềm tối ưu hóa chi phí sản xuất, sớm phát hiện các sai sót thiết kế ngay từ giai đoạn đầu của vòng đời phát triển phần mềm.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết áp dụng

Nghiên cứu được xây dựng trên nền tảng vững chắc của lý thuyết Kiểm thử dựa trên mô hình (Model-Based Testing – MBT) và lý thuyết Mô hình thực thi được (Executable Model). Kiểm thử dựa trên mô hình là kỹ thuật kiểm thử hộp đen tiên tiến, trong đó các ca kiểm thử được sinh tự động từ các mô hình đặc tả hành vi mong đợi của hệ thống đang kiểm thử (Software Under Test – SUT). Tiếp cận theo hướng này giúp loại bỏ sự phụ thuộc vào mã nguồn và cho phép kiểm thử viên thiết kế kịch bản thử nghiệm ngay từ giai đoạn mô hình hóa yêu cầu.

Khung lý thuyết của luận văn tích hợp 4 khái niệm then chốt trong kỹ thuật phần mềm hướng mô hình:

  • Mô hình thực thi được và Siêu mô hình (Meta-model): Một mô hình được định nghĩa là thực thi được khi ngữ nghĩa hoạt động của nó được xác định đầy đủ, cho phép biên dịch trực tiếp thành mã chương trình hoặc thông dịch và vận hành trực tiếp trên các công cụ quản lý quy trình.
  • Ký pháp và mô hình hóa quy trình nghiệp vụ (BPMN 2.0): Chuẩn mô hình hóa đồ họa được Nhóm quản lý đối tượng (OMG) ban hành chính thức vào tháng 12 năm 2013. BPMN 2.0 cung cấp hệ thống ký hiệu trực quan phong phú nhưng chặt chẽ về mặt ngữ nghĩa máy tính, phân tách rõ ràng giữa các phần tử luồng (Flow Objects gồm Sự kiện, Hoạt động, Cổng phân nhánh), phần tử dữ liệu (Data Objects) và phần tử kết nối (Connection Objects).
  • Đồ thị luồng điều khiển (Control Flow Graph – CFG): Cấu trúc dữ liệu hình thức dạng đồ thị có hướng $G = (V, E)$, biểu diễn toàn bộ các nhánh rẽ và lộ trình thực thi có thể có của một quy trình nghiệp vụ từ điểm bắt đầu đến điểm kết thúc.
  • Kỹ thuật chuyển đổi mô hình (Model Transformation): Phương pháp ánh xạ cấu trúc dữ liệu từ tệp tin đặc tả XML của BPMN sang mô hình đối tượng lập trình Java và đồ thị CFG phục vụ thuật toán sinh ca kiểm thử.
+------------------+      +-------------------+      +-------------------+
|  Mô hình BPMN    | ---> |  Cấu trúc dữ liệu | ---> |  Đồ thị luồng     | --->  Tập kịch bản
|  (Tệp tin XML)   |      |  Java BpmnModel   |      |  điều khiển (CFG) |       ca kiểm thử
+------------------+      +-------------------+      +-------------------+

Phương pháp nghiên cứu

Phương pháp nghiên cứu của luận văn kết hợp chặt chẽ giữa nghiên cứu lý thuyết hình thức, xây dựng thuật toán và thực nghiệm kiểm chứng trên phần mềm:

  • Nguồn dữ liệu và chọn mẫu: Nghiên cứu sử dụng nguồn dữ liệu là tập hợp các mô hình quy trình nghiệp vụ chuẩn hóa được lưu trữ dưới định dạng tệp XML. Cỡ mẫu thực nghiệm bao gồm 3 ca điển hình đại diện cho các mức độ phức tạp nghiệp vụ khác nhau: Quy trình xin nghỉ phép (Vacation Request), Quy trình chia sẻ dữ liệu (Share Data) và Quy trình tuyển dụng nhân sự (Apply for Job). Phương pháp chọn mẫu có chủ đích được áp dụng nhằm bao phủ đầy đủ các cấu trúc điều khiển cơ bản của BPMN 2.0 như cổng rẽ nhánh độc quyền (Exclusive Gateway), cổng rẽ nhánh song song (Parallel Gateway), các tác vụ người dùng (User Task), tác vụ dịch vụ (Service Task) và các vòng lặp nghiệp vụ.
  • Phương pháp phân tích và xử lý dữ liệu: Tác giả sử dụng kỹ thuật bóc tách cú pháp XML để phân tích các thẻ phần tử thành 2 nhóm đối tượng cốt lõi trong bộ nhớ: nhóm FlowNode (quản lý luồng vào/ra của từng nút) và nhóm Connection Object (quản lý nút nguồn và nút đích của các liên kết). Dữ liệu sau đó được ánh xạ thành đồ thị luồng điều khiển CFG. Thuật toán duyệt đồ thị theo chiều sâu và duyệt nhánh được áp dụng để trích xuất toàn bộ các đường kiểm thử hợp lệ từ điểm khởi tạo đến điểm kết thúc.
  • Lý do lựa chọn phương pháp: Việc chuyển đổi BPMN sang CFG giúp hình thức hóa các biểu đồ quy trình phức tạp thành cấu trúc toán học chặt chẽ, loại bỏ tính nhập nhằng trong tài liệu văn bản, từ đó đảm bảo thuật toán duyệt vét cạn sinh ra đầy đủ các kịch bản kiểm thử mà không bị trùng lặp hoặc sót nhánh.
  • Thời gian thực hiện: Toàn bộ quá trình nghiên cứu lý thuyết, thiết kế thuật toán, phát triển công cụ cài đặt trên nền tảng Java/Eclipse và tiến hành thử nghiệm trên hệ thống Activiti Engine được thực hiện xuyên suốt trong năm 2017.

Kết quả nghiên cứu và thảo luận

Những phát hiện chính

Nghiên cứu đã đạt được những kết quả thực nghiệm nổi bật, chứng minh tính đúng đắn và hiệu quả vượt trội của phương pháp đề xuất qua 3 phát hiện quan trọng:

  1. Khả năng tự động hóa và độ chính xác tuyệt đối trong bóc tách mô hình: Thuật toán phân tích cú pháp tệp BPMN XML hoạt động chính xác 100%, tự động nhận diện và chuyển đổi toàn bộ các phần tử đồ họa phức tạp thành cấu trúc BpmnModel trong Java mà không làm thất thoát bất kỳ thông tin ràng buộc hay điều kiện logic nào.
  2. Đảm bảo độ bao phủ nhánh đạt 100% trên các ca thực nghiệm:
    • Đối với bài toán Chia sẻ dữ liệu (Share Data), công cụ đã sinh ra chính xác 3 kịch bản kiểm thử độc lập tương ứng với 3 luồng rẽ nhánh: từ chối quyền truy cập ngay từ đầu, yêu cầu chia sẻ được phê duyệt thành công và yêu cầu chia sẻ bị người quản trị từ chối.
    • Đối với bài toán Tuyển dụng nhân sự (Apply for Job) có cấu trúc rẽ nhánh và vòng lặp phức tạp, công cụ tự động sinh ra đầy đủ 5 kịch bản kiểm thử toàn diện, bao quát từ trường hợp ứng viên nộp hồ sơ, đánh giá hồ sơ, phỏng vấn, thương lượng lại đề nghị công việc cho đến khi gửi thư chấp thuận hoặc từ chối chính thức.
  3. Tối ưu hóa thời gian và năng suất làm việc: Thời gian thực thi thuật toán để sinh ra toàn bộ tập kịch bản kiểm thử cho mỗi mô hình chỉ mất dưới 5 giây xử lý tự động trên máy tính cá nhân. So với phương pháp viết kịch bản thủ công thường mất từ 2 đến 4 giờ làm việc của một kỹ sư kiểm thử giàu kinh nghiệm cho mỗi quy trình, phương pháp mới giúp giảm hơn 95% thời gian thiết kế ca kiểm thử ban đầu và loại bỏ hoàn toàn 100% các sai sót do yếu tố chủ quan của con người.
Mô hình quy trình nghiệp vụ thực nghiệm Số lượng cổng rẽ nhánh (Gateways) Số kịch bản kiểm thử sinh tự động Tỷ lệ bao phủ luồng điều khiển (%) Thời gian sinh kịch bản tự động
Quy trình Xin nghỉ phép (Vacation Request) 1 Exclusive Gateway 2 kịch bản 100% < 2 giây
Quy trình Chia sẻ dữ liệu (Share Data) 2 Gateways 3 kịch bản 100% < 3 giây
Quy trình Tuyển dụng (Apply for Job) 4 Gateways (kèm vòng lặp) 5 kịch bản 100% < 5 giây

Thảo luận kết quả

Nguyên nhân cốt lõi giúp phương pháp đạt hiệu quả cao là do BPMN 2.0 lưu trữ ngữ nghĩa thực thi đầy đủ dưới dạng các thuộc tính và biểu thức điều kiện trong cấu trúc XML. Khi được chuyển đổi sang đồ thị CFG, mỗi đường đi đơn trong đồ thị phản ánh chính xác một kịch bản sử dụng thực tế của người dùng cuối hoặc luồng xử lý của hệ thống.

Khi so sánh với các phương pháp kiểm thử dựa trên mô hình truyền thống như sinh ca kiểm thử từ biểu đồ tuần tự UML kết hợp ngôn ngữ ràng buộc đối tượng OCL, hoặc khai phá dữ liệu từ tài liệu đặc tả yêu cầu SRS, giải pháp từ mô hình BPMN thể hiện nhiều ưu điểm vượt trội:

  • Tính trực quan và khả năng kiểm chứng cao: Mô hình BPMN dễ xây dựng và dễ hiểu đối với cả chuyên viên phân tích nghiệp vụ, lập trình viên lẫn khách hàng. Theo thống kê của tổ chức quản lý BPMN, tính đến tháng 9 năm 2017 đã có hơn 65 công cụ hỗ trợ thiết kế BPMN trên toàn cầu, tạo điều kiện thuận lợi cho việc chuẩn hóa tài liệu nghiệp vụ.
  • Khả năng thực thi trực tiếp: Không giống như biểu đồ UML tĩnh, mô hình BPMN có thể chạy trực tiếp trên các công cụ quản lý quy trình như Activiti Designer hay Bizagi để kiểm tra tính đúng đắn trước khi sinh kịch bản kiểm thử.
  • Ứng dụng linh hoạt: Các ca kiểm thử sinh ra từ BPMN đặc biệt phù hợp cho giai đoạn kiểm thử tích hợp (Integration Testing) và kiểm thử hệ thống (System Testing), giúp kiểm tra tính toàn vẹn của dữ liệu truyền qua các tác vụ và dịch vụ email thông báo.

Dữ liệu thực nghiệm chứng minh rằng việc biểu diễn quy trình thông qua bảng ma trận truy xuất kịch bản và đồ thị CFG giúp các nhà quản lý dự án có cái nhìn trực quan về mức độ phức tạp của hệ thống, từ đó phân bổ nguồn lực kiểm thử một cách khoa học và chính xác.

Đề xuất và khuyến nghị

Dựa trên những phát hiện và kết quả thực nghiệm đạt được, luận văn đưa ra 4 khuyến nghị và giải pháp hành động cụ thể nhằm thúc đẩy ứng dụng kiểm thử tự động hướng mô hình vào thực tiễn công nghiệp phần mềm:

  1. Chuẩn hóa quy trình mô hình hóa nghiệp vụ ngay từ giai đoạn lấy yêu cầu: Ban hành bộ quy chuẩn thiết kế BPMN 2.0 nội bộ, bắt buộc đội ngũ chuyên viên phân tích nghiệp vụ (BA) tuân thủ nghiêm ngặt các ràng buộc thiết kế, tránh các mẫu thiết kế lỗi như bế tắc luồng (deadlock) hoặc đa điểm kết thúc không kiểm soát. Mục tiêu giảm 30% lỗi thiết kế logic nghiệp vụ trước quý 2 năm 2024, do Trưởng nhóm phân tích nghiệp vụ chủ trì thực hiện.
  2. Tích hợp công cụ sinh kịch bản tự động vào quy trình phát triển phần mềm liên tục (CI/CD): Xây dựng các plugin kết nối công cụ sinh kịch bản từ BPMN với hệ thống tự động hóa kiểm thử trong thời hạn 6 tháng, do Đội ngũ Kỹ sư DevOps và Trưởng nhóm Đảm bảo chất lượng (QA Lead) phối hợp triển khai. Giải pháp này hướng tới mục tiêu tự động hóa 80% công tác tạo dữ liệu và kịch bản cho kiểm thử tích hợp.
  3. Mở rộng thuật toán xử lý các thành phần BPMN nâng cao: Nghiên cứu bổ sung khả năng xử lý tự động đối với các sự kiện biên (Boundary Events), quy trình con phức tạp (Sub-processes) và các cổng phân nhánh đồng thời (Parallel Gateways) đa tầng trong vòng 12 tháng tới. Nhiệm vụ này do Nhóm Nghiên cứu và Phát triển (R&D) công nghệ phần mềm phụ trách, nhằm nâng tỷ lệ tương thích mô hình lên trên 95%.
  4. Đào tạo và nâng cao năng lực kiểm thử dựa trên mô hình cho nhân sự: Tổ chức các khóa đào tạo chuyên sâu về BPMN 2.0, công cụ Activiti và kỹ thuật kiểm thử dựa trên mô hình cho 100% kỹ sư kiểm thử và lập trình viên trong doanh nghiệp trong thời gian 3 tháng, do Trung tâm Đào tạo nội bộ điều phối thực hiện.

Đối tượng nên tham khảo luận văn

Nội dung và giải pháp kỹ thuật trong luận văn mang lại giá trị thực tiễn to lớn cho 4 nhóm đối tượng chuyên môn sau:

  • Kỹ sư kiểm thử phần mềm (QA/QC Engineers): Nắm vững phương pháp luận và kỹ thuật sinh kịch bản kiểm thử tự động, giúp nâng cao năng suất cá nhân lên từ 40% đến 50%, giảm bớt áp lực thiết kế ca kiểm thử thủ công trong các dự án có luồng nghiệp vụ phức tạp.
  • Chuyên viên phân tích nghiệp vụ (Business Analysts – BA): Tiếp cận góc nhìn kỹ thuật về các điều kiện ràng buộc và quy tắc chuẩn hóa mô hình BPMN 2.0, từ đó thiết kế các sơ đồ luồng quy trình chính xác, hỗ trợ quá trình chuyển giao mượt mà cho đội ngũ phát triển và kiểm thử.
  • Kiến trúc sư hệ thống và Lập trình viên (Software Architects & Developers): Hiểu rõ cơ chế chuyển đổi từ tệp đặc tả XML sang đồ thị luồng điều khiển CFG và mô hình thực thi, phục vụ cho việc xây dựng các kiến trúc phần mềm hướng mô hình (Model-Driven Architecture) và tối ưu hóa các module xử lý nghiệp vụ trên nền tảng Activiti hoặc Camunda.
  • Giảng viên, Nghiên cứu sinh và Sinh viên ngành Công nghệ thông tin: Sử dụng công trình như một tài liệu tham khảo học thuật giá trị về lý thuyết Kiểm thử dựa trên mô hình (MBT), kỹ thuật phần mềm hướng mô hình (MDE) và quản lý quy trình nghiệp vụ (BPM).

Câu hỏi thường gặp

1. Kiểm thử dựa trên mô hình BPMN có điểm gì vượt trội so với kiểm thử thủ công truyền thống?

Kiểm thử thủ công phụ thuộc nặng nề vào kinh nghiệm cá nhân, dễ bỏ sót nhánh điều kiện và mất nhiều thời gian khi hệ thống thay đổi. Phương pháp kiểm thử dựa trên BPMN tự động hóa quá trình sinh kịch bản với độ bao phủ nhánh đạt 100%, giúp giảm hơn 95% thời gian thiết kế ca kiểm thử và hỗ trợ tái kiểm thử nhanh chóng khi cập nhật quy trình.

2. Tại sao tác giả lại lựa chọn định dạng BPMN XML làm dữ liệu đầu vào cho thuật toán?

Tệp BPMN XML là định dạng lưu trữ tiêu chuẩn quốc tế do tổ chức OMG ban hành, chứa đầy đủ các thuộc tính hình thức, điều kiện rẽ nhánh và ngữ nghĩa thực thi của mô hình. Định dạng này cho phép các thuật toán xử lý dữ liệu dễ dàng phân tách các thẻ phần tử thành các đối tượng logic mà không bị phụ thuộc vào giao diện đồ họa.

3. Thuật toán xử lý các cấu trúc rẽ nhánh phức tạp trong quy trình như thế nào?

Thuật toán chuyển đổi toàn bộ các phần tử BPMN thành các nút và cạnh trong đồ thị luồng điều khiển CFG. Khi gặp các cổng rẽ nhánh như Exclusive Gateway hay Parallel Gateway, thuật toán tự động phân tích các biểu thức điều kiện đính kèm để phân nhánh đồ thị, từ đó duyệt đệ quy và trích xuất từng kịch bản kiểm thử độc lập cho mỗi đường đi.

4. Các ca kiểm thử sinh ra từ mô hình BPMN phù hợp nhất cho cấp độ kiểm thử nào?

Các ca kiểm thử sinh tự động từ BPMN đặc biệt phù hợp cho kiểm thử tích hợp (Integration Testing) và kiểm thử hệ thống (System Testing). Chúng giúp kiểm tra tính chính xác của luồng nghiệp vụ xuyên suốt giữa các phòng ban, sự tương tác giữa người dùng và các dịch vụ tự động, cũng như xác minh tính toàn vẹn của các thông điệp gửi nhận.

5. Doanh nghiệp cần chuẩn bị những điều kiện gì để áp dụng giải pháp của luận văn vào thực tế?

Doanh nghiệp cần chuẩn hóa tài liệu quy trình nghiệp vụ theo chuẩn BPMN 2.0 bằng các công cụ như Activiti Designer, Bizagi hoặc MS Visio. Đồng thời, doanh nghiệp cần đào tạo đội ngũ chuyên viên phân tích nghiệp vụ nắm vững các quy tắc thiết kế không lỗi và trang bị môi trường thực thi Java để chạy công cụ sinh kịch bản tự động.

Kết luận

  • Luận văn đã giải quyết thành công bài toán tự động hóa sinh ca kiểm thử từ mô hình quy trình nghiệp vụ BPMN 2.0 thực thi được, mang lại bước tiến quan trọng cho kỹ thuật kiểm thử phần mềm.
  • Đề xuất thuật toán chuyển đổi chuẩn xác từ tệp BPMN XML sang đồ thị luồng điều khiển CFG, cho phép duyệt vét cạn toàn bộ các nhánh rẽ nghiệp vụ.
  • Kết quả thực nghiệm trên các bài toán thực tế chứng minh công cụ đạt độ bao phủ kiểm thử 100%, rút ngắn thời gian thiết kế kịch bản xuống dưới 5 giây cho mỗi quy trình.
  • Đóng góp giải pháp khoa học giúp các công ty phần mềm cắt giảm từ 40% đến 50% chi phí kiểm thử, sớm phát hiện lỗi thiết kế và nâng cao chất lượng sản phẩm phần mềm.
  • Lộ trình phát triển tiếp theo tập trung vào việc mở rộng thuật toán cho các thành phần BPMN phức tạp và tích hợp hoàn chỉnh vào các hệ thống CI/CD tự động trong vòng 6 đến 12 tháng tới.

Hãy áp dụng ngay phương pháp kiểm thử dựa trên mô hình BPMN để chuẩn hóa quy trình phát triển và tối ưu hóa năng suất kiểm thử cho dự án phần mềm của bạn ngay hôm nay!