Tổng quan nghiên cứu

Trong bối cảnh phát triển phần mềm ngày càng phức tạp và đòi hỏi chất lượng cao, kiểm thử phần mềm đóng vai trò then chốt trong việc đảm bảo sản phẩm đáp ứng yêu cầu. Theo ước tính, chi phí và thời gian dành cho kiểm thử chiếm khoảng 30-50% tổng chi phí phát triển phần mềm. Tuy nhiên, phương pháp kiểm thử truyền thống dựa trên đặc tả yêu cầu thường tốn nhiều công sức, phụ thuộc lớn vào kinh nghiệm của kiểm thử viên và dễ dẫn đến sai sót chủ quan. Do đó, việc tự động hóa quá trình sinh ca kiểm thử từ các mô hình thiết kế phần mềm trở thành xu hướng tất yếu nhằm nâng cao hiệu quả, giảm chi phí và thời gian phát triển.

Luận văn tập trung nghiên cứu phương pháp sinh tự động ca kiểm thử từ mô hình luồng quy trình nghiệp vụ BPMN (Business Process Model and Notation) – một mô hình thực thi được, dễ xây dựng và kiểm tra tính đúng đắn. Phạm vi nghiên cứu bao gồm việc phân tích mô hình BPMN lưu dưới dạng file XML, chuyển đổi sang dạng đồ thị luồng điều khiển (CFG), từ đó sinh ra các kịch bản ca kiểm thử tương ứng. Thời gian nghiên cứu tập trung vào giai đoạn 2016-2017 tại Đại học Công Nghệ – Đại học Quốc Gia Hà Nội, với các thử nghiệm thực tế trên công cụ Activiti.

Mục tiêu chính của luận văn là phát triển một phương pháp và công cụ hỗ trợ tự động sinh ca kiểm thử từ mô hình BPMN, giúp tăng độ bao phủ kiểm thử, giảm thiểu lỗi chủ quan, tiết kiệm chi phí và thời gian phát triển phần mềm. Kết quả nghiên cứu có ý nghĩa quan trọng đối với các công ty phát triển phần mềm, đặc biệt trong việc kiểm thử tích hợp, kiểm thử hệ thống và kiểm tra tính đúng đắn của các công cụ quản lý quy trình nghiệp vụ.

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

Khung lý thuyết áp dụng

Luận văn dựa trên các lý thuyết và mô hình sau:

  • Mô hình thực thi được (Executable Model): Mô hình BPMN được xem là mô hình thực thi được, có thể chạy trực tiếp trên các công cụ quản lý quy trình nghiệp vụ như Activiti, Bizagi. Mô hình này biểu diễn hành vi hệ thống một cách chi tiết, đủ để sinh mã chương trình hoặc ca kiểm thử.

  • Kiểm thử dựa trên mô hình (Model-Based Testing): Phương pháp kiểm thử hộp đen, sinh ca kiểm thử từ mô hình thiết kế phần mềm. Các ca kiểm thử được tạo ra từ các đường đi trong mô hình, giúp phát hiện lỗi sớm, giảm chi phí và tăng độ bao phủ.

  • Đồ thị luồng điều khiển (Control Flow Graph - CFG): Dạng đồ thị có hướng biểu diễn luồng điều khiển trong mô hình BPMN, với các nút là các sự kiện, hoạt động, cổng điều khiển và các cạnh là các luồng tuần tự. CFG là cơ sở để sinh các kịch bản ca kiểm thử.

Các khái niệm chuyên ngành quan trọng bao gồm: BPMN, ca kiểm thử (test case), kịch bản kiểm thử (test scenario), mô hình thực thi được, kiểm thử tự động, CFG, gateway, event, activity.

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

  • Nguồn dữ liệu: Mô hình BPMN được thiết kế trên công cụ Activiti, lưu dưới dạng file XML. Các mô hình này mô tả luồng nghiệp vụ thực tế như quy trình xin nghỉ phép, chia sẻ dữ liệu.

  • Phương pháp phân tích: Phân tích cấu trúc XML của mô hình BPMN, trích xuất các thành phần flow node (event, activity, gateway) và connection object (sequence flow, message flow). Chuyển đổi mô hình BPMN sang CFG để biểu diễn luồng điều khiển.

  • Thuật toán sinh ca kiểm thử: Duyệt toàn bộ các đường đi từ điểm bắt đầu đến điểm kết thúc trên CFG, mỗi đường đi tương ứng một kịch bản ca kiểm thử. Thuật toán đảm bảo bao phủ toàn bộ các nhánh luồng nghiệp vụ.

  • Cài đặt công cụ: Phát triển công cụ tự động sinh ca kiểm thử bằng ngôn ngữ Java, tích hợp với Activiti để nhập mô hình BPMN và xuất các kịch bản kiểm thử.

  • Timeline nghiên cứu: Từ tháng 1/2017 đến tháng 10/2017, bao gồm giai đoạn thu thập dữ liệu, phát triển thuật toán, cài đặt công cụ và thử nghiệm thực tế với các mô hình BPMN đơn giản.

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

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

  1. Hiệu quả sinh ca kiểm thử tự động: Công cụ phát triển đã tự động sinh ra các kịch bản ca kiểm thử từ mô hình BPMN với độ chính xác cao. Ví dụ, với mô hình quy trình xin nghỉ phép, công cụ sinh ra 5 kịch bản kiểm thử tương ứng với các đường đi khác nhau trong luồng nghiệp vụ, bao phủ 100% các nhánh luồng.

  2. Tiết kiệm thời gian và chi phí: So với phương pháp tạo ca kiểm thử thủ công, phương pháp tự động giúp giảm thời gian tạo ca kiểm thử khoảng 40-60%, đồng thời giảm chi phí nhân lực do giảm sự phụ thuộc vào kinh nghiệm kiểm thử viên.

  3. Tính khả thi trong thực tế: Các ca kiểm thử sinh ra có thể áp dụng trực tiếp cho kiểm thử tích hợp và kiểm thử hệ thống phần mềm. Thử nghiệm trên mô hình chia sẻ dữ liệu cho thấy các ca kiểm thử phát hiện được các lỗi tiềm ẩn trong luồng nghiệp vụ với tỷ lệ phát hiện lỗi tăng khoảng 25% so với kiểm thử thủ công.

  4. Khả năng áp dụng rộng rãi: Phương pháp có thể áp dụng cho nhiều loại mô hình BPMN khác nhau, hỗ trợ các công cụ quản lý quy trình nghiệp vụ phổ biến như Activiti, Bizagi, MS Visio.

Thảo luận kết quả

Nguyên nhân chính giúp phương pháp đạt hiệu quả là do BPMN là mô hình thực thi được, cung cấp đầy đủ thông tin về luồng nghiệp vụ, các điều kiện ràng buộc và các điểm phân nhánh. Việc chuyển đổi sang CFG giúp biểu diễn rõ ràng các đường đi kiểm thử, từ đó sinh ca kiểm thử một cách hệ thống và toàn diện.

So sánh với các nghiên cứu khác về sinh ca kiểm thử từ biểu đồ UML hay OCL, phương pháp sử dụng BPMN có ưu điểm là dễ xây dựng, trực quan và có thể thực thi trực tiếp trên các công cụ BPM. Điều này giúp giảm thiểu sai sót trong quá trình mô hình hóa và tăng tính khả thi khi áp dụng trong công nghiệp.

Dữ liệu có thể được trình bày qua biểu đồ cột so sánh thời gian tạo ca kiểm thử thủ công và tự động, biểu đồ tròn thể hiện tỷ lệ bao phủ các nhánh luồng nghiệp vụ, bảng tổng hợp số lượng ca kiểm thử sinh ra và tỷ lệ phát hiện lỗi.

Tuy nhiên, phương pháp cũng gặp một số hạn chế như yêu cầu mô hình BPMN phải chính xác, đầy đủ và tuân thủ các ràng buộc thiết kế. Việc xử lý các mô hình phức tạp với nhiều vòng lặp và điều kiện phức tạp cần được nghiên cứu thêm để nâng cao hiệu quả.

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

  1. Tăng cường đào tạo và hướng dẫn xây dựng mô hình BPMN chính xác: Đào tạo cho các nhà phát triển và kiểm thử viên về kỹ thuật mô hình hóa BPMN, đảm bảo mô hình đầu vào đạt chất lượng cao, giảm thiểu lỗi mô hình ảnh hưởng đến ca kiểm thử.

  2. Phát triển công cụ tích hợp sinh ca kiểm thử tự động: Đề xuất xây dựng công cụ tích hợp trực tiếp với các môi trường phát triển phần mềm và công cụ quản lý quy trình nghiệp vụ, giúp tự động hóa toàn bộ quy trình kiểm thử từ mô hình đến thực thi.

  3. Mở rộng thuật toán xử lý các mô hình phức tạp: Nghiên cứu và cải tiến thuật toán sinh ca kiểm thử để xử lý các mô hình BPMN có vòng lặp phức tạp, điều kiện rẽ nhánh đa dạng, nhằm tăng độ bao phủ và hiệu quả kiểm thử.

  4. Khuyến khích áp dụng trong các công ty phần mềm: Các doanh nghiệp phát triển phần mềm nên áp dụng phương pháp kiểm thử dựa trên mô hình BPMN để nâng cao chất lượng sản phẩm, giảm chi phí và thời gian kiểm thử, đặc biệt trong các dự án có quy trình nghiệp vụ phức tạp.

  5. Thời gian thực hiện: Các giải pháp trên nên được triển khai trong vòng 12-18 tháng, bắt đầu từ việc đào tạo, phát triển công cụ đến áp dụng thử nghiệm trong các dự án thực tế.

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

  1. Nhà phát triển phần mềm: Giúp hiểu rõ về phương pháp kiểm thử dựa trên mô hình BPMN, áp dụng để tự động sinh ca kiểm thử, nâng cao chất lượng sản phẩm và giảm thiểu lỗi phát sinh.

  2. Kiểm thử viên phần mềm: Cung cấp kiến thức về kỹ thuật sinh ca kiểm thử tự động từ mô hình BPMN, giúp tăng hiệu quả công việc, giảm thời gian tạo ca kiểm thử thủ công.

  3. Quản lý dự án phần mềm: Hỗ trợ đánh giá và lựa chọn phương pháp kiểm thử phù hợp, tối ưu chi phí và thời gian kiểm thử, đảm bảo tiến độ và chất lượng dự án.

  4. Nhà nghiên cứu và sinh viên ngành Công nghệ Thông tin: Là tài liệu tham khảo quý giá về kiểm thử dựa trên mô hình, mô hình hóa quy trình nghiệp vụ và ứng dụng BPMN trong kiểm thử tự động.

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

  1. Phương pháp sinh ca kiểm thử từ BPMN có áp dụng được cho mọi loại phần mềm không?
    Phương pháp phù hợp nhất với các phần mềm có quy trình nghiệp vụ rõ ràng, được mô hình hóa bằng BPMN. Với phần mềm không có mô hình nghiệp vụ hoặc mô hình không chính xác, hiệu quả sẽ giảm.

  2. Công cụ nào hỗ trợ tốt nhất cho việc thiết kế và thực thi mô hình BPMN?
    Các công cụ phổ biến gồm Activiti, Bizagi và MS Visio. Trong đó, Activiti hỗ trợ thực thi mô hình BPMN và tích hợp tốt với công cụ sinh ca kiểm thử tự động.

  3. Làm thế nào để đảm bảo mô hình BPMN đầu vào chính xác?
    Cần tuân thủ các ràng buộc thiết kế BPMN, sử dụng tính năng kiểm tra lỗi của công cụ thiết kế, đồng thời đào tạo người thiết kế về kỹ thuật mô hình hóa chuẩn.

  4. Phương pháp này giúp tiết kiệm bao nhiêu thời gian so với kiểm thử thủ công?
    Theo thử nghiệm, thời gian tạo ca kiểm thử giảm khoảng 40-60%, đồng thời giảm chi phí nhân lực và tăng độ bao phủ kiểm thử.

  5. Có thể áp dụng phương pháp này cho kiểm thử tự động toàn bộ không?
    Phương pháp sinh ca kiểm thử tự động từ mô hình BPMN là bước đầu để tạo ca kiểm thử. Việc thực thi tự động các ca kiểm thử còn phụ thuộc vào công cụ kiểm thử tự động và môi trường phát triển phần mềm.

Kết luận

  • Luận văn đã đề xuất và phát triển thành công phương pháp sinh tự động ca kiểm thử từ mô hình BPMN, giúp tăng hiệu quả kiểm thử và giảm chi phí phát triển phần mềm.
  • Phương pháp dựa trên chuyển đổi mô hình BPMN sang CFG, duyệt các đường đi để sinh kịch bản ca kiểm thử toàn diện.
  • Công cụ hỗ trợ đã được cài đặt và thử nghiệm với các mô hình nghiệp vụ thực tế, cho kết quả khả thi và có thể áp dụng trong công nghiệp phần mềm.
  • Hạn chế hiện tại là yêu cầu mô hình BPMN phải chính xác và xử lý các mô hình phức tạp cần được cải tiến thêm.
  • Đề xuất các bước tiếp theo gồm đào tạo, phát triển công cụ tích hợp và mở rộng thuật toán, nhằm ứng dụng rộng rãi trong các công ty phần mềm trong vòng 12-18 tháng tới.

Quý độc giả và các nhà nghiên cứu được khuyến khích áp dụng và phát triển thêm phương pháp này để nâng cao chất lượng kiểm thử phần mềm, góp phần thúc đẩy ngành công nghiệp phần mềm Việt Nam phát triển bền vững.