Tổng quan luận án
Hoạt động kiểm thử phần mềm (software testing) là khâu quan trọng nhằm bảo đảm chất lượng hệ thống nhưng thường chiếm từ 30% đến 60% tổng thời gian và chi phí phát triển [71]. Trong thực tế, các yêu cầu phần mềm thường xuyên biến động trong suốt vòng đời phát triển, kéo theo nhu cầu kiểm thử hồi quy lớn cùng chi phí bảo trì và tái thực thi bộ kiểm thử rất cao. Mặc dù tự động hóa kiểm thử đã được ứng dụng rộng rãi, thực tế công nghiệp mới chỉ tập trung vào tự động hóa khâu thực thi kiểm thử (test execution), trong khi vấn đề sinh ca kiểm thử tự động (automated test case generation) vẫn chưa được giải quyết triệt để.
Quy trình kiểm thử dựa trên mô hình (Model-Based Testing - MBT) cung cấp khả năng tự động hóa cả quá trình sinh và thực thi ca kiểm thử thông qua năm bước chính: (1) Mô hình hóa, (2) Sinh các ca kiểm thử, (3) Sinh các tập lệnh thực thi kiểm thử (test scripts), (4) Thực thi kiểm thử, và (5) Phân tích các ca kiểm thử [9]. Ba bước cuối đã có nhiều công cụ tự động hóa thương mại và mã nguồn mở giải quyết tốt, nhưng hai bước đầu tiên (mô hình hóa yêu cầu và sinh ca kiểm thử) vẫn là thách thức lớn đối với cộng đồng nghiên cứu. Yêu cầu chức năng thường được đặc tả bằng mô hình ca sử dụng (use case) dưới dạng biểu đồ ca sử dụng và các mô tả văn bản có cấu trúc theo mẫu trong ngôn ngữ tự nhiên [53]. Tuy nhiên, dạng mô tả ngôn ngữ tự nhiên gây khó khăn cho việc nhận dạng và xử lý thông tin tự động, cản trở việc tự động sinh ca kiểm thử và tích hợp vào quy trình phát triển hướng mô hình (Model-Driven Development - MDD).
Luận án xác định bốn thách thức nghiên cứu cụ thể:
- Thách thức thứ nhất: Cần một ngôn ngữ đặc tả chuyên biệt miền cho phép biểu diễn các thông tin trong ca sử dụng rõ ràng và đủ chi tiết để tích hợp mô hình ca sử dụng vào phương pháp phát triển hướng mô hình, phục vụ sinh tự động ca kiểm thử, mô hình cấu trúc, mô hình hành vi và tài liệu hóa.
- Thách thức thứ hai: Cần một phương pháp sinh tự động các ca kiểm thử chứa đầy đủ các thông tin cần thiết để làm đầu vào cho việc sinh và thực thi tự động các tập lệnh kiểm thử bằng các công cụ thực thi kiểm thử tự động.
- Thách thức thứ ba: Cần một ngôn ngữ đặc tả chuyên biệt miền để biểu diễn rõ ràng và đầy đủ thông tin của các ca kiểm thử được sinh.
- Thách thức thứ tư: Cần một công cụ hỗ trợ hoàn chỉnh cho phép tích hợp ca sử dụng vào phương pháp MDD nhằm sinh tự động các chế tác phần mềm khác nhau từ mô hình ca sử dụng, trọng tâm là sinh tự động ca kiểm thử chức năng.
Mục tiêu nghiên cứu của luận án là đặt ca sử dụng vào trong ngữ cảnh của quy trình kiểm thử dựa trên mô hình (MBT) và phát triển hướng mô hình (MDD), cho phép tự động hóa hoạt động kiểm thử chức năng từ các yêu cầu phần mềm đầu vào, tập trung vào hai bước: mô hình hóa yêu cầu và sinh ca kiểm thử tự động có kèm dữ liệu cụ thể.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Các mô hình ca sử dụng, các ca kiểm thử chức năng, phương pháp xác định ca kiểm thử chức năng từ ca sử dụng và phương pháp tự động hóa trong kiểm thử phần mềm áp dụng cho kiểm thử chức năng.
- Phạm vi nghiên cứu: Kiểm thử mức hệ thống (system testing), kỹ thuật kiểm thử hộp đen dựa trên yêu cầu chức năng; tiếp cận kiểm thử dựa trên mô hình (MBT) kết hợp phương pháp mô hình hóa chuyên biệt miền (Domain-Specific Modeling - DSM).
Tổng quan tài liệu và vị trí của luận án
Các hướng nghiên cứu trước đây được luận án điểm lại và phân loại theo các nhóm tiếp cận:
- Hướng tiếp cận xử lý ngôn ngữ tự nhiên (NLP) trên mô tả ca sử dụng theo mẫu: T. Yue và các cộng sự [75] đề xuất ngôn ngữ RUCM (Restricted Use Case Modeling) sử dụng khuôn mẫu văn bản, từ khóa và các luật rút gọn để giảm sự mơ hồ. Wang và các cộng sự [73] sử dụng đặc tả RUCM kết hợp kỹ thuật NLP và OCL để sinh mô hình kiểm thử trung gian UCTM (Use Case Test Model) làm đầu vào sinh ca kiểm thử. Các nghiên cứu khác trong [58] cũng trích xuất mô hình trung gian bằng NLP. Hạn chế của nhóm này là ngôn ngữ đặc tả mang tính bán hình thức hoặc phi hình thức (informal), thiếu cú pháp trừu tượng, việc xử lý phụ thuộc vào ngôn ngữ tự nhiên cụ thể và khó sinh dữ liệu kiểm thử cụ thể từ các ràng buộc văn bản.
- Hướng tiếp cận sử dụng biểu đồ chuẩn UML: Tiwari và Gupta [67], cùng các nghiên cứu [24, 51], đề xuất sử dụng biểu đồ hoạt động và biểu đồ tuần tự hướng tác nhân trong UML để đặc tả các tương tác và phân biệt hành động giữa tác nhân với hệ thống. Nhược điểm chính là phương pháp chỉ tập trung sinh các ca kiểm thử trừu tượng (kịch bản kiểm thử) mà không đề cập đến việc sinh tự động dữ liệu cụ thể cho ca kiểm thử.
- Hướng tiếp cận sử dụng ngôn ngữ chuyên biệt miền (DSL): Escalona và các cộng sự [16, 23] đề xuất ngôn ngữ NDT (Navigational Development Techniques) để đặc tả ca sử dụng nhưng không đề cập phương pháp xác định giá trị kiểm thử cho kịch bản. Śmiałek và các cộng sự [63, 65] giới thiệu ngôn ngữ RSL (Requirements Specification Language) và ngôn ngữ đặc tả kiểm thử TSL (Test Specification Language); tuy nhiên dữ liệu kiểm thử trong TSL mới dừng lại ở các mô tả điều kiện chứ chưa có giá trị cụ thể. Ngôn ngữ SelabReq [59] chỉ hỗ trợ sinh mô hình cấu trúc và hành vi, không hỗ trợ sinh ca kiểm thử. Misbhauddin và các cộng sự [47] mở rộng siêu mô hình UML nhưng chưa hình thức hóa toàn diện. Murali và các cộng sự [48] xây dựng plug-in UC-B trên nền Rodin để hình thức hóa điều kiện ca sử dụng phục vụ kiểm chứng mô hình Event-B nhưng bỏ qua các thông tin tương tác khác.
Khoảng trống nghiên cứu luận án lựa chọn giải quyết là: Thiếu một giải pháp hình thức hoàn chỉnh cho phép đặc tả đầy đủ cả cấu trúc, hành vi và các ràng buộc của ca sử dụng để tích hợp vào MDD; đồng thời thiếu một phương pháp và ngôn ngữ đặc tả ca kiểm thử có khả năng xác định tự động các bước kiểm thử, kiểu bước, đối tượng, hành động, loại điểm kiểm tra, trạng thái bên trong hệ thống trước kiểm thử và dữ liệu kiểm thử cụ thể.
Cơ sở lý thuyết và phương pháp nghiên cứu
Lý thuyết, khái niệm và khung phân tích được tác giả sử dụng bao gồm:
- Quy trình kiểm thử dựa trên mô hình (MBT): Áp dụng quy trình 5 bước theo Utting và Legeard [9], tập trung vào mô hình hóa hệ thống cần kiểm thử (SUT) và sinh ca kiểm thử tự động.
- Kỹ thuật kiểm thử phần mềm: Sử dụng các định nghĩa chuẩn trong [5, 49] về lỗi phần mềm, kiểm thử tĩnh, kiểm thử động, ca kiểm thử (test case gồm test data, pre-condition, test steps, expected output), kịch bản kiểm thử (test scenario) và oracle. Áp dụng kỹ thuật kiểm thử hộp đen ở mức kiểm thử hệ thống (system testing) trong mô hình chữ V [50, 64].
- Mô hình lỗi và tiêu chí bao phủ kiểm thử trên biểu đồ hoạt động: Luận án dựa trên ba loại lỗi: lỗi điểm quyết định, lỗi vòng lặp (cấu trúc while-do và do-while) và lỗi đồng bộ hóa các luồng song song. Luận án áp dụng tiêu chí phủ đường hoạt động (activity path coverage) của [39] (mở rộng từ tiêu chí phủ đường cơ bản - basic path coverage [41, 46]) bao gồm đường hoạt động không đồng thời và đường hoạt động đồng thời, kết hợp công thức độ phức tạp Cyclomatic $V(G) = E - N + 2 = P + 1$ của McCabe [8, 31, 33] để xác định giới hạn số ca kiểm thử.
- Mô hình hóa chuyên biệt miền (DSM / MDE): Áp dụng quy trình 4 bước xây dựng DSML [9, 35, 62] gồm: khảo sát miền, xây dựng cú pháp trừu tượng (bằng siêu mô hình - metamodel), xây dựng cú pháp cụ thể và thao tác mô hình. Ngữ nghĩa hình thức của ngôn ngữ được ánh xạ sang hệ thống chuyển trạng thái được gán nhãn (Labelled Transition System - LTS [34, 70]).
- Ngôn ngữ ràng buộc đối tượng (OCL): Sử dụng OCL [10, 54, 74] ở hai cấp độ: cấp độ siêu mô hình (đặc tả các luật ràng buộc hợp lệ - well-formed rules) và cấp độ mô hình (đặc tả bất biến invariants, khởi tạo init, luật dẫn xuất derive, truy vấn query, cùng tiền điều kiện pre và hậu điều kiện post của thao tác).
- Kỹ thuật chuyển đổi mô hình: Chuyển đổi mô hình sang mô hình (M2M) ngoại sinh bằng ngôn ngữ ATL [32] và chuyển đổi mô hình sang văn bản (M2T) dựa trên mẫu bằng ngôn ngữ Acceleo [9, 22, 30] với các thẻ
file, for, if, query, biểu thức và vùng bảo vệ protected.
- Công cụ giải ràng buộc OCL trong USE: Sử dụng hệ thống USE (UML-based Specification Environment) [18, 19] tích hợp công cụ giải logic quan hệ Kodkod [69], khai thác hai chức năng chính là kiểm tra tính nhất quán mô hình (model consistency) và hoàn thiện giải pháp cục bộ (partial solution completion) để giải các bất biến OCL và sinh biểu đồ đối tượng.
Phương pháp nghiên cứu thực tế:
- Phương pháp hình thức hóa cú pháp và ngữ nghĩa trên nền tảng Eclipse Modeling Framework (EMF) và Graphical Modeling Framework (GMF).
- Phương pháp sinh dữ liệu kiểm thử và trạng thái hệ thống: Tự động trích xuất các ràng buộc OCL từ mô hình ca sử dụng và mô hình lớp khái niệm miền, đưa vào công cụ USE/Kodkod để giải và trích xuất giá trị cụ thể.
- Nguồn tư liệu/dữ liệu: Mô hình đặc tả ca sử dụng mẫu (như ca sử dụng Đăng nhập trên website trung tâm X, ca sử dụng Hủy đăng ký) và mô hình lớp thực thể miền ứng dụng (như hệ thống rút tiền ATM với các lớp EV, Customer, ATMCard, Permission).
Nội dung chính theo từng chương
Chương 1: Mở đầu
Chương này trình bày lý do chọn đề tài, tính cấp thiết của việc tự động hóa kiểm thử phần mềm và ứng dụng quy trình MBT trong công nghiệp. Tác giả phân tích những hạn chế của các phương pháp đặc tả ca sử dụng hiện hành, xác định 4 thách thức nghiên cứu, thiết lập mục tiêu khoa học, đối tượng, phạm vi nghiên cứu, tóm lược 4 đóng góp chính và giới thiệu cấu trúc tổng thể 6 chương của luận án.
Chương 2: Kiến thức cơ sở
Chương 2 hệ thống hóa các nền tảng lý thuyết được sử dụng xuyên suốt luận án. Tác giả làm rõ các khái niệm kiểm thử phần mềm, kỹ thuật kiểm thử hộp đen/hộp trắng, các mức kiểm thử trong mô hình chữ V, quy trình MBT 5 bước, tiêu chí bao phủ đường hoạt động và độ phức tạp Cyclomatic. Tác giả trình bày cấu trúc ca sử dụng theo mẫu chuẩn (luồng chính, luồng thay thế) và phương pháp xác định ca kiểm thử truyền thống qua 3 bước (xác định kịch bản, xác định ca kiểm thử, gán giá trị cụ thể). Phần tiếp theo giới thiệu mô hình hóa chuyên biệt miền, siêu mô hình, phương pháp xây dựng DSML trên Eclipse (EMF, GMF), kỹ thuật chuyển đổi mô hình M2M (ATL), M2T (Acceleo), ngôn ngữ OCL và cơ chế giải ràng buộc trong công cụ USE/Kodkod.
Bảng tổng hợp các kịch bản kiểm thử của ca sử dụng Đăng nhập (trích xuất từ Chương 2):
| Mã kịch bản (SID) |
Tên kịch bản |
Luồng bắt đầu |
Luồng phụ |
| SC1 |
Đăng nhập thành công |
Luồng chính |
Không |
| SC2 |
Nhập UserName không hợp lệ |
Luồng chính |
4a |
| SC3 |
Nhập Password không hợp lệ |
Luồng chính |
6a |
| SC4 |
Tài khoản đăng nhập không có trong hệ thống |
Luồng chính |
8a |
Bảng tổng hợp các ca kiểm thử với giá trị cụ thể của ca sử dụng Đăng nhập (trích xuất từ Chương 2):
| Mã kiểm thử (TID) |
Mã kịch bản (SID) |
Giá trị UserName |
Giá trị PassWord |
Trạng thái tài khoản trong hệ thống |
Kết quả mong đợi |
| T01 |
SC1 |
"user name 1" |
"12345678" |
True |
Hiển thị các chức năng sinh viên được thực hiện |
| T02 |
SC2 |
"name 1" |
N/A |
N/A |
Thông báo "UserName phải từ 8 đến 16 ký tự, yêu cầu nhập lại" |
| T03 |
SC3 |
"user name 1" |
"123" |
N/A |
Thông báo "PassWord phải là 8 ký tự, yêu cầu nhập lại" |
| T04 |
SC4 |
"user name 2" |
"12345678" |
False |
Thông báo "Tài khoản không tồn tại, đăng nhập lại" |
Chương 3: Đặc tả ca sử dụng theo hướng mô hình hóa chuyên biệt miền
Chương này đề xuất ngôn ngữ đặc tả chuyên biệt miền USL (Use case Specification Language) nhằm mô hình hóa hình thức các thông tin trong ca sử dụng. Cấu trúc USL bao gồm cú pháp trừu tượng được định nghĩa bằng siêu mô hình, cú pháp cụ thể dạng đồ họa, tập luật ràng buộc hợp lệ viết bằng OCL và ngữ nghĩa hình thức được ánh xạ sang hệ thống chuyển trạng thái được gán nhãn (LTS). Siêu mô hình USL hỗ trợ biểu diễn đầy đủ: thông tin tổng quan của ca sử dụng, các loại luồng sự kiện (tuần tự, rẽ nhánh, lặp, đồng thời), phân loại hành động theo đối tượng tác nhân/hệ thống, các quan hệ cấu trúc («include», «extend») và các biểu thức ràng buộc tiền/hậu điều kiện.
Chương 4: Phương pháp sinh tự động các ca kiểm thử chức năng từ mô hình ca sử dụng và mô hình khái niệm miền của hệ thống
Chương 4 đề xuất ngôn ngữ đặc tả ca kiểm thử chuyên biệt miền TCSL (Test Case Specification Language) và phương pháp sinh ca kiểm thử tự động USLTG (USL-based Test Generation). Phương pháp sử dụng đầu vào gồm mô hình ca sử dụng USL và mô hình lớp khái niệm miền của hệ thống. Dựa trên tiêu chí phủ đường hoạt động, thuật toán xác định các kịch bản kiểm thử, sau đó tích hợp công cụ USE để giải các bất biến OCL nhằm xác định trạng thái bên trong hệ thống trước kiểm thử cùng bộ dữ liệu kiểm thử cụ thể, cuối cùng chuyển toàn bộ thông tin vào mô hình TCSL.
Chương 5: Công cụ hỗ trợ và các đánh giá của phương pháp đã đề xuất
Chương này trình bày việc hiện thực hóa các đề xuất thành bộ công cụ hỗ trợ USL trong môi trường Eclipse. Công cụ bao gồm trình soạn thảo mô hình USL, bộ sinh tài liệu ca sử dụng dạng văn bản tự nhiên theo mẫu USL2TUCD và bộ sinh ca kiểm thử tự động sang mô hình TCSL bằng Acceleo. Tác giả thực nghiệm công cụ trên các ca sử dụng cụ thể, tiến hành so sánh, đối sánh phương pháp đặc tả và phương pháp sinh kiểm thử với các nghiên cứu liên quan.
Chương 6: Kết luận và hướng nghiên cứu trong tương lai
Chương cuối cùng tổng kết các kết quả nghiên cứu chính đã đạt được, phân tích mức độ đáp ứng các mục tiêu khoa học đề ra và thảo luận các định hướng mở rộng nghiên cứu trong tương lai từ các kết quả ban đầu.
Kết quả và những đóng góp mới
Luận án tự xác định bốn đóng góp mới chính:
- Đề xuất ngôn ngữ mô hình hóa chuyên biệt miền USL (Use case Specification Language): Định nghĩa đầy đủ cú pháp trừu tượng, cú pháp cụ thể, tập luật ràng buộc OCL và ngữ nghĩa thực thi hình thức LTS. USL giải quyết hạn chế thiếu chi tiết của các mô hình ca sử dụng truyền thống, hỗ trợ tích hợp ca sử dụng vào quy trình MDD và bảo đảm tính trực quan cho các bên liên quan phi kỹ thuật.
- Đề xuất ngôn ngữ đặc tả ca kiểm thử chuyên biệt miền TCSL (Test Case Specification Language): Cung cấp siêu mô hình và tập luật ràng buộc để đặc tả toàn diện ca kiểm thử hệ thống. TCSL mô tả chi tiết: bước kiểm thử, đối tượng, hành động, loại điểm kiểm tra (checkpoint type), dữ liệu đầu vào, dữ liệu đầu ra mong đợi, tiền/hậu điều kiện và đặc biệt là trạng thái bên trong của hệ thống trước khi thực thi ca sử dụng.
- Đề xuất phương pháp sinh ca kiểm thử tự động USLTG (USL-based Test Generation): Chuyển đổi tự động từ mô hình USL và mô hình lớp khái niệm miền sang mô hình TCSL. Phương pháp tích hợp thuật toán sinh kịch bản theo tiêu chí phủ đường hoạt động và cơ chế giải ràng buộc OCL bằng công cụ USE/Kodkod để sinh dữ liệu kiểm thử cụ thể và trạng thái hệ thống.
- Xây dựng bộ công cụ hỗ trợ USL trên nền tảng Eclipse: Hiện thực hóa trình soạn thảo mô hình USL, bộ sinh tài liệu ca sử dụng USL2TUCD và bộ sinh ca kiểm thử TCSL, chứng minh tính khả thi và tính ứng dụng của phương pháp.
Kiến nghị và giải pháp: Luận án kiến nghị sử dụng USL và TCSL làm công cụ trung gian chuẩn hóa để kết nối khâu nắm bắt yêu cầu với khâu kiểm thử tự động trong các dự án phát triển phần mềm theo hướng mô hình.
Hạn chế và hướng nghiên cứu tiếp
- Hạn chế: Luận án tập trung vào kiểm thử chức năng hộp đen ở mức kiểm thử hệ thống, chưa giải quyết các loại kiểm thử phi chức năng (hiệu năng, độ tin cậy, bảo mật) và các mức kiểm thử khác (kiểm thử đơn vị, kiểm thử tích hợp). Phương pháp đòi hỏi mô hình đầu vào phải được xây dựng chính xác bằng USL và biểu đồ lớp có ràng buộc OCL, yêu cầu nỗ lực ban đầu từ chuyên gia miền.
- Hướng nghiên cứu tiếp: Mở rộng các bộ sinh tự động từ mô hình USL sang các chế tác khác trong MDD (sinh biểu đồ lớp, biểu đồ tuần tự, mã nguồn); phát triển bộ sinh tập lệnh thực thi kiểm thử (test scripts) cho các công cụ kiểm thử tự động từ mô hình TCSL; tiến hành thực nghiệm trên các hệ thống phần mềm có quy mô lớn hơn.
Giá trị tham khảo
Luận án có giá trị tham khảo chuyên môn cho các đối tượng:
- Nghiên cứu sinh, học viên cao học và giảng viên ngành Kỹ thuật phần mềm / Khoa học máy tính: Tham khảo phương pháp luận xây dựng ngôn ngữ chuyên biệt miền (DSML), định nghĩa siêu mô hình EMF/GMF, ngữ nghĩa LTS, kỹ thuật giải ràng buộc OCL bằng USE/Kodkod và kỹ thuật chuyển đổi mô hình (ATL, Acceleo).
- Kỹ sư phân tích yêu cầu (BA), kỹ sư phát triển phần mềm và kiểm thử viên (QA/QC): Tham khảo phương pháp hình thức hóa ca sử dụng bằng USL, cấu trúc hóa dữ liệu kiểm thử bằng TCSL và quy trình tự động hóa kiểm thử chức năng mức hệ thống.
Câu hỏi thường gặp
-
Quy trình kiểm thử dựa trên mô hình (MBT) gồm những bước nào và luận án tập trung giải quyết những bước nào?
Trả lời: Quy trình MBT gồm năm bước: (1) Mô hình hóa, (2) Sinh ca kiểm thử, (3) Sinh tập lệnh thực thi kiểm thử, (4) Thực thi kiểm thử, và (5) Phân tích ca kiểm thử. Luận án tập trung giải quyết hai bước đầu tiên còn nhiều thách thức là Bước (1) Mô hình hóa các yêu cầu và Bước (2) Sinh các ca kiểm thử tự động.
-
Ngôn ngữ USL có cấu tạo như thế nào và khắc phục hạn chế gì của mô tả ca sử dụng truyền thống?
Trả lời: USL gồm cú pháp trừu tượng (siêu mô hình), cú pháp cụ thể (đồ họa), tập luật ràng buộc hợp lệ OCL và ngữ nghĩa hình thức LTS. USL khắc phục tình trạng thiếu hình thức, mơ hồ và thiếu chi tiết của văn bản ngôn ngữ tự nhiên, cho phép mô hình hóa rõ ràng các luồng điều khiển (tuần tự, rẽ nhánh, lặp, đồng thời), phân loại hành động của tác nhân/hệ thống và các ràng buộc tiền/hậu điều kiện.
-
Ngôn ngữ đặc tả ca kiểm thử TCSL có điểm khác biệt gì so với các ngôn ngữ đặc tả kiểm thử trước đây?
Trả lời: Khác với các ngôn ngữ trước đây chỉ mô tả bước kiểm thử và dữ liệu kiểm thử ở dạng điều kiện trừu tượng, TCSL đặc tả chi tiết các bước kiểm thử, kiểu bước, đối tượng, hành động, loại điểm kiểm tra, dữ liệu đầu vào cụ thể, dữ liệu đầu ra mong đợi, tiền/hậu điều kiện và trạng thái bên trong của hệ thống trước khi thực thi ca sử dụng.
-
Phương pháp USLTG sử dụng tiêu chí bao phủ nào để sinh ca kiểm thử?
Trả lời: USLTG áp dụng tiêu chí phủ đường hoạt động (activity path coverage), mở rộng từ tiêu chí phủ đường cơ bản. Tiêu chí này bao gồm kiểm thử đường hoạt động không đồng thời (xét vòng lặp tối đa hai lần để phát hiện lỗi điều kiện nhánh và vòng lặp) và đường hoạt động đồng thời (bảo toàn thứ tự ưu tiên giữa các hành động song song và tuần tự), kết hợp hàm độ phức tạp Cyclomatic $V(G) = P + 1$ để xác định giới hạn số ca kiểm thử.
-
Công cụ USE và Kodkod đóng vai trò gì trong phương pháp của luận án?
Trả lời: USE tích hợp bộ giải logic quan hệ Kodkod đóng vai trò là công cụ trung gian giải các bất biến OCL. Luận án sử dụng hai chức năng là kiểm tra tính nhất quán (model consistency) và hoàn thiện giải pháp cục bộ (partial solution completion) để tìm kiếm và sinh ra biểu đồ đối tượng thỏa mãn ràng buộc, từ đó xác định dữ liệu kiểm thử cụ thể và trạng thái hệ thống trước kiểm thử.
Kết luận
Luận án đã xây dựng phương pháp hoàn chỉnh để tự động hóa hoạt động kiểm thử chức năng mức hệ thống từ mô hình ca sử dụng theo hướng tiếp cận kiểm thử dựa trên mô hình kết hợp mô hình hóa chuyên biệt miền. Thông qua việc đề xuất hai ngôn ngữ chuyên biệt miền USL và TCSL, quy trình chuyển đổi tự động USLTG tích hợp cơ chế giải ràng buộc OCL và bộ công cụ hỗ trợ trên nền tảng Eclipse, luận án đã giải quyết bài toán sinh kịch bản kèm dữ liệu kiểm thử cụ thể và trạng thái hệ thống. Các kết quả đạt được tạo cơ sở để tích hợp mô hình ca sử dụng vào quy trình phát triển phần mềm hướng mô hình.