Tổng quan luận án
Hoạt động kiểm thử phần mềm (software testing) đóng vai trò then chốt trong việc đảm bảo chất lượng của các hệ thống phần mềm ngày càng phức tạp. Trong thực tế phát triển phần mềm, chi phí và thời gian dành cho hoạt động kiểm thử thường chiếm tỷ trọng lớn, dao động từ 30% đến 60% tổng chi phí của toàn bộ dự án. Khi các yêu cầu phần mềm liên tục thay đổi trong suốt vòng đời phát triển, công tác xác định, bảo trì và thực thi lại các ca kiểm thử (kiểm thử hồi quy) đòi hỏi nguồn lực và nỗ lực rất lớn. Việc tự động hóa quy trình kiểm thử giúp giảm thiểu sai sót do con người, tối ưu hóa thời gian và cắt giảm kinh phí phát triển.
Tuy nhiên, thực trạng ứng dụng kiểm thử tự động hiện nay chủ yếu tập trung vào giai đoạn thực thi kiểm thử thông qua các tập lệnh (test scripts), trong khi bài toán tự động sinh các ca kiểm thử (test cases) từ tài liệu đặc tả yêu cầu chức năng vẫn còn là khoảng trống nghiên cứu lớn chưa được giải quyết triệt để. Các yêu cầu chức năng thường được nắm bắt dưới dạng ca sử dụng (use case) kết hợp văn bản có cấu trúc bằng ngôn ngữ tự nhiên. Dạng biểu diễn này gây khó khăn cho việc phân tích tự động do tính nhập nhằng, thiếu cú pháp hình thức và thiếu khả năng tích hợp chặt chẽ vào quy trình phát triển hướng mô hình (Model-Driven Development - MDD).
Luận án tiến sĩ của nghiên cứu sinh Chu Thị Minh Huệ, thực hiện tại Trường Đại học Công nghệ – Đại học Quốc gia Hà Nội dưới sự hướng dẫn của PGS. Nguyễn Ngọc Bình và TS. Đặng Đức Hạnh (bảo vệ năm 2019), tập trung giải quyết các thách thức trên trong khuôn khổ kỹ nghệ kiểm thử dựa trên mô hình (Model-Based Testing - MBT) kết hợp với kỹ thuật mô hình hóa chuyên biệt miền (Domain-Specific Modeling - DSM).
Mục tiêu nghiên cứu và các nhiệm vụ cụ thể của luận án bao gồm:
- Đặt ca sử dụng vào ngữ cảnh của quy trình kiểm thử dựa trên mô hình nhằm tự động hóa việc sinh các ca kiểm thử chức năng mức hệ thống từ các yêu cầu phần mềm.
- 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 tổng thể, cho phép sinh tự động các chế tác phần mềm (software artifacts) khác nhau như ca kiểm thử, mô hình cấu trúc, mô hình hành vi và tài liệu đặc tả.
- Xây dựng các ngôn ngữ mô hình hóa chuyên biệt miền có cú pháp và ngữ nghĩa hình thức để đặc tả ca sử dụng và đặc tả ca kiểm thử.
- Đề xuất quy trình chuyển đổi mô hình tự động kết hợp với mô hình khái niệm miền để trích xuất kịch bản, xác định trạng thái hệ thống và sinh dữ liệu kiểm thử cụ thể.
- Xây dựng bộ công cụ phần mềm thực nghiệm để minh chứng tính khả thi và đánh giá so sánh phương pháp đề xuất với các công trình nghiên cứu hiện có.
Đối tượng nghiên cứu của luận án là các mô hình ca sử dụng, các ca kiểm thử chức năng mức hệ thống, các phương pháp xác định ca kiểm thử từ ca sử dụng và các kỹ thuật tự động hóa kiểm thử phần mềm. Phạm vi nghiên cứu giới hạn ở kiểm thử hộp đen mức hệ thống cho các yêu cầu chức năng của phần mềm, tập trung vào hai bước đầu tiên của quy trình MBT là mô hình hóa yêu cầu và tự động sinh ca kiểm thử.
Tổng quan tài liệu và vị trí của luận án
Trong kỹ nghệ phần mềm, nhiều hướng tiếp cận đã được đề xuất nhằm tự động sinh các ca kiểm thử từ ca sử dụng:
| Hướng tiếp cận |
Công trình tiêu biểu |
Đặc điểm kỹ thuật |
Hạn chế ghi nhận trong luận án |
| Xử lý ngôn ngữ tự nhiên (NLP) trên mẫu giới hạn |
Wang và cộng sự (2015) [73]; Yue và cộng sự (2015) [58] |
Sử dụng các mẫu văn bản bị giới hạn (Restricted-form of Natural Language - RNL), quy tắc cú pháp và từ khóa để chuyển sang mô hình trung gian qua NLP. |
Ngôn ngữ đặc tả không hình thức, thiếu cú pháp trừu tượng; kỹ thuật NLP phức tạp, phụ thuộc ngôn ngữ tự nhiên cụ thể; khó trích xuất trực tiếp dữ liệu kiểm thử cụ thể từ các ràng buộc văn bản. |
| Sử dụng biểu đồ chuẩn UML |
Briand và cộng sự (2002) [24]; Hartmann và cộng sự (2005) [51]; Ryser & Glinz (2003) [67] |
Dùng biểu đồ hoạt động (Activity Diagram) và biểu đồ tuần tự (Sequence Diagram) để phân định hành động giữa tác nhân và hệ thống. |
Chủ yếu tập trung vào việc sinh các kịch bản kiểm thử trừu tượng (đường thực thi luồng điều khiển), chưa đề cập đến cơ chế tự động xác định và sinh dữ liệu kiểm thử cụ thể. |
| Ngôn ngữ chuyên biệt miền (DSL/DSML) |
Escalona và cộng sự (2011) [23] (sử dụng ngôn ngữ NDT [16]); Smialek và cộng sự (2014, 2016) [63, 65] (ngôn ngữ RSL và TSL) |
Sử dụng ngôn ngữ chuyên biệt để nắm bắt thông tin ca sử dụng và sinh ca kiểm thử. |
Ngôn ngữ NDT không hỗ trợ xác định giá trị dữ liệu cụ thể cho kịch bản. Ngôn ngữ RSL/TSL chỉ mô tả dữ liệu kiểm thử ở dạng biểu thức điều kiện trừu tượng, không sinh dữ liệu kiểm thử cụ thể và bỏ qua trạng thái nội tại của hệ thống. |
| Tích hợp ca sử dụng vào MDD |
Issa và cộng sự (2013) [59] (ngôn ngữ SelabReq) |
Đặc tả ca sử dụng để sinh tự động các mô hình cấu trúc và mô hình hành vi. |
Chỉ tập trung vào việc tạo các biểu đồ cấu trúc/hành vi, không hỗ trợ sinh các ca kiểm thử chức năng. |
Khoảng trống nghiên cứu được luận án xác định bao gồm:
- Thiếu một ngôn ngữ chuyên biệt miền có khả năng mô tả đầy đủ thông tin về cấu trúc, hành vi và các ràng buộc dữ liệu của ca sử dụng, đóng vai trò là chế tác trung tâm trong MDD.
- Thiếu một ngôn ngữ đặc tả ca kiểm thử có khả năng lưu trữ toàn diện: bước kiểm thử, kiểu bước, đối tượng, hành động, điểm kiểm tra, điều kiện tiền/hậu, dữ liệu kiểm thử cụ thể và trạng thái nội tại của hệ thống trước khi thực thi.
- Thiếu phương pháp chuyển đổi tự động từ mô hình ca sử dụng và mô hình khái niệm miền thành bộ ca kiểm thử có dữ liệu kiểm thử cụ thể đáp ứng các tiêu chí bao phủ logic kiểm thử.
Cơ sở lý thuyết và phương pháp nghiên cứu
Luận án xây dựng trên nền tảng lý thuyết và khung phân tích kỹ nghệ phần mềm bao gồm:
- Kiểm thử dựa trên mô hình (Model-Based Testing - MBT): Áp dụng quy trình chuẩn gồm 5 giai đoạn: Mô hình hóa hệ thống/môi trường (Modeling), Sinh ca kiểm thử (Test case generation), Sinh tập lệnh kiểm thử (Test script generation), Thực thi kiểm thử (Test execution), và Phân tích kết quả kiểm thử (Test analysis). Luận án kế thừa kết quả của các công cụ thương mại/mã nguồn mở cho 3 bước sau và tập trung vào 2 bước đầu.
- Tiêu chí phủ kiểm thử luồng điều khiển: Áp dụng tiêu chí phủ đường cơ bản (Basic Path Coverage) [41, 46], tiêu chí phủ đường hoạt động (Activity Path Coverage) [39] (cho phép kiểm thử vòng lặp duyệt tối đa 2 lần và bảo toàn thứ tự ưu tiên giữa các hành động đồng thời và không đồng thời), kết hợp với độ đo độ phức tạp Cyclomatic $V(G) = E - N + 2$ hoặc $V(G) = P + 1$ của McCabe [33] để kiểm soát số lượng đường kiểm thử cần sinh.
- Kỹ nghệ mô hình hóa chuyên biệt miền (Domain-Specific Modeling - DSM): Sử dụng phương pháp định nghĩa ngôn ngữ DSML thông qua: Cú pháp trừu tượng (Abstract Syntax) dưới dạng siêu mô hình (Metamodel), Cú pháp cụ thể dạng đồ họa (Concrete Graphical Syntax), và Ngữ nghĩa hình thức (Formal Semantics).
- Hệ thống chuyển trạng thái được gán nhãn (Labelled Transition System - LTS): Được dùng để định nghĩa ngữ nghĩa hình thức thực thi cho mô hình ca sử dụng.
- Ngôn ngữ ràng buộc đối tượng OCL (Object Constraint Language): Chuẩn của tổ chức OMG, dùng để đặc tả các luật hợp lệ (well-formed rules) trên siêu mô hình, các biểu thức điều kiện gác (guard conditions) và các ràng buộc bất biến (invariants) của hệ thống.
- Chuyển đổi mô hình (Model Transformation): Chuyển đổi mô hình sang mô hình (Model-to-Model - M2M) dựa trên ngôn ngữ ATL (ATLAS Transformation Language) và chuyển đổi mô hình sang văn bản (Model-to-Text - M2T) dựa trên ngôn ngữ Acceleo theo chuẩn của OMG.
- Giải bài toán ràng buộc (Constraint Solving): Sử dụng công cụ USE (UML-based Specification Environment) làm công cụ trung gian để giải các biểu thức ràng buộc OCL, sinh các trạng thái đối tượng nội tại (snapshots) thỏa mãn kịch bản kiểm thử.
Phương pháp nghiên cứu thực tế của luận án là phương pháp kỹ nghệ và thực nghiệm (constructive/experimental engineering method):
- Khảo sát miền bài toán kiểm thử chức năng và đặc tả yêu cầu để trừu tượng hóa các khái niệm thực thể.
- Thiết kế hình thức siêu mô hình và phát triển các thuật toán chuyển đổi mô hình.
- Hiện thực hóa toàn bộ đề xuất trên nền tảng Eclipse Modeling Framework (EMF), Graphical Modeling Framework (GMF) và Acceleo.
- Thực nghiệm trên các ca sử dụng thực tế (như ca sử dụng Mượn sách - Lend book trong hệ thống Quản lý thư viện Library, và ca sử dụng Rút tiền - Withdraw trong hệ thống máy ATM) để đánh giá độ bao phủ, số lượng kịch bản sinh ra và khả năng biểu diễn so với các phương pháp khác.
Nội dung chính theo từng chương
Chương 1. Mở đầu
Chương này phân tích bối cảnh phát triển phần mềm hiện đại, vị trí của kiểm thử phần mềm trong chu trình phát triển (chiếm 30-60% chi phí), và những thách thức khi yêu cầu phần mềm thay đổi liên tục. Tác giả trình bày những hạn chế của các phương pháp sinh ca kiểm thử hiện hành từ ca sử dụng (phụ thuộc NLP, thiếu dữ liệu kiểm thử cụ thể, biểu diễn phi hình thức). Từ đó, chương xác định mục tiêu nghiên cứu, bốn đóng góp chính của luận án và trình bày bố cục sáu chương của tài liệu.
Chương 2. Kiến thức cơ sở
Chương 2 hệ thống hóa toàn bộ các khái niệm và kỹ thuật nền tảng phục vụ cho các đề xuất của luận án:
- Kiểm thử dựa trên ca sử dụng: Trình bày định nghĩa lỗi phần mềm, kiểm thử động, kiểm thử tĩnh, oracle kiểm thử, ca kiểm thử, kịch bản kiểm thử, kiểm thử hộp đen/hộp trắng, các mức kiểm thử trong mô hình chữ V (đơn vị, tích hợp, hệ thống, chấp nhận). Phân tích chi tiết quy trình 5 bước của MBT và 3 loại lỗi chính trong biểu đồ hoạt động (lỗi điểm quyết định, lỗi vòng lặp, lỗi đồng bộ hóa). Phân tích các tiêu chí phủ đường cơ bản, tiêu chí phủ đường hoạt động (đồng thời và không đồng thời), và hàm phức tạp Cyclomatic $V(G)$. Trình bày cấu trúc mô tả ca sử dụng theo mẫu của Jacobson và Cockburn (luồng chính, luồng phụ) và quy trình 3 bước truyền thống để trích xuất ca kiểm thử thủ công.
- Mô hình hóa chuyên biệt miền (DSM): Làm rõ các khái niệm miền vấn đề, ngôn ngữ hình thức, DSL, DSML, phát triển hướng mô hình (MDD). Hướng dẫn quy trình 4 bước xây dựng DSML: Khảo sát miền, Xây dựng cú pháp trừu tượng, Xây dựng cú pháp cụ thể, và Thao tác mô hình. Trình bày việc ứng dụng các khung công cụ trong Eclipse như EMF và GMF.
- Chuyển đổi mô hình: Trình bày lý thuyết chuyển đổi ngoại sinh và nội sinh. Mô tả cú pháp và hoạt động của ngôn ngữ chuyển đổi M2M ATL (gồm phần header, các luật chuyển đổi, helper OCL) và ngôn ngữ chuyển đổi M2T Acceleo dựa trên hệ thống mẫu (thẻ
file, for, if, query, vùng bảo vệ protected).
- Ngôn ngữ OCL: Giới thiệu cấu trúc đặc tả ràng buộc OCL trên mô hình và công cụ giải ràng buộc USE.
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 3 đề xuất ngôn ngữ đặc tả ca sử dụng USL (Use Case Specification Language):
- Khảo sát miền: Phân tích ngữ cảnh đặc tả ca sử dụng để trích xuất các khái niệm cốt lõi: ca sử dụng, tác nhân, bước tương tác (hành động của tác nhân, phản hồi của hệ thống), điều kiện gác, điểm rẽ nhánh, điểm kết nối luồng thay thế.
- Cú pháp USL:
- Cú pháp trừu tượng: Định nghĩa bằng siêu mô hình USL trên EMF, phân cấp rõ ràng các phần tử cấu trúc và hành vi.
- Luật hợp lệ: Xây dựng tập luật OCL chặt chẽ trên siêu mô hình để kiểm soát tính đúng đắn về ngữ nghĩa cú pháp của mô hình USL được tạo.
- Cú pháp cụ thể: Xây dựng hệ thống ký pháp đồ họa trực quan trên GMF tương ứng với các khái niệm trong siêu mô hình.
- Ngữ nghĩa hình thức: Định nghĩa ngữ nghĩa hoạt động của USL thông qua việc ánh xạ trực tiếp sang hệ thống chuyển trạng thái được gán nhãn (LTS), giúp hình thức hóa các luồng thực thi.
- Chuyển đổi mô hình USL: Xây dựng mô-đun Acceleo
USL2TUCD để tự động sinh tài liệu ca sử dụng có cấu trúc dạng văn bản theo mẫu chuẩn (TUCD) từ mô hình đồ họa USL, đồng thời thiết lập nền tảng để sinh các mô hình cấu trúc và hành vi khác trong MDD.
Chương 4. Phương pháp sinh tự động các ca kiểm thử 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 trình bày phương pháp USLTG (USL-based Test Generation) để tự động sinh ca kiểm thử mức hệ thống:
- Ngôn ngữ TCSL (Test Case Specification Language): Khảo sát miền đặc tả kiểm thử chức năng và định nghĩa siêu mô hình TCSL. Ngôn ngữ hỗ trợ đặc tả chi tiết: mã ca kiểm thử, kịch bản nguồn, bước kiểm thử, loại bước, đối tượng đích, hành động thực hiện, điểm kiểm tra, dữ liệu đầu vào, kết quả mong đợi, cùng trạng thái nội tại của hệ thống trước khi kiểm thử.
- Quy trình chuyển đổi mô hình từ USL sang TCSL:
- Sinh kịch bản và ràng buộc: Sử dụng thủ tục
GenerateScenarios áp dụng tiêu chí phủ đường hoạt động để duyệt đồ thị hành vi USL, trích xuất tất cả các kịch bản kiểm thử hợp lệ cùng tập các biểu thức ràng buộc đường dẫn (Path Conditions) và điều kiện gác.
- Sinh dữ liệu đầu vào và trạng thái hệ thống: Sử dụng thuật toán
GenTestInputData tích hợp với mô hình lớp khái niệm miền và công cụ giải ràng buộc OCL/USE. Thuật toán tự động sinh các giá trị cụ thể cho biến đầu vào và tạo lập các đối tượng thể hiện (OMfull snapshot) đại diện cho trạng thái hệ thống trước khi kích hoạt ca sử dụng.
- Sinh mô hình TCSL: Áp dụng thuật toán
GenTCSLModel để tổng hợp kịch bản, dữ liệu đầu vào, trạng thái hệ thống và kết quả mong đợi thành một mô hình ca kiểm thử hoàn chỉnh tuân thủ siêu mô hình TCSL, xuất ra tệp định dạng XML.
Chương 5. Thực nghiệm và đánh giá
Chương 5 hiện thực hóa và đánh giá các đóng góp của luận án:
- Công cụ hỗ trợ USL: Tích hợp trình soạn thảo mô hình trực quan USL trên nền Eclipse GMF, bộ chuyển đổi
USL2TUCD và bộ sinh kiểm thử tự động USLTG.
- Ví dụ minh họa: Thực nghiệm chi tiết trên hai ca sử dụng điển hình: ca sử dụng Mượn sách (Lend book) thuộc hệ thống Quản lý thư viện và ca sử dụng Rút tiền (Withdraw) thuộc hệ thống máy rút tiền tự động ATM. Kết quả tạo ra mô hình USL, văn bản TUCD, các kịch bản thực thi, dữ liệu kiểm thử cụ thể và mô hình TCSL tương ứng lưu dưới dạng XML.
- Đánh giá ngôn ngữ USL: So sánh khả năng biểu diễn của USL với các ngôn ngữ đặc tả khác (UML Use Case, RSL, SelabReq, RUCM). Kết quả chỉ ra USL hỗ trợ đầy đủ các cấu trúc điều khiển (tuần tự, rẽ nhánh, lặp, đồng thời), phân biệt rõ hành động tác nhân/hệ thống, có cú pháp trừu tượng và ngữ nghĩa hình thức, đồng thời duy trì tính trực quan.
- Đánh giá phương pháp USLTG: So sánh USLTG với các công trình sinh ca kiểm thử liên quan (phương pháp của Wang [73], Yue [58], Smialek [65], Escalona [23]). Kết quả so sánh chứng minh USLTG vượt trội ở khả năng sinh dữ liệu kiểm thử cụ thể, sinh trạng thái hệ thống nội tại, và cung cấp đặc tả ca kiểm thử toàn diện phục vụ trực tiếp cho các công cụ thực thi kiểm thử tự động.
Chương 6. Kết luận và hướng phát triển
Chương cuối tóm tắt toàn bộ bốn kết quả nghiên cứu chính đã đạt được, khẳng định tính khả thi của phương pháp tiếp cận DSM trong kiểm thử dựa trên mô hình, và nêu các định hướng mở rộng nghiên cứu trong tương lai.
Kết quả và những đóng góp mới
Luận án đã đạt được các đóng góp mới về mặt lý luận và kỹ thuật kỹ nghệ phần mềm:
- Đề xuất ngôn ngữ đặc tả ca sử dụng USL: Xây dựng hoàn chỉnh ngôn ngữ mô hình hóa chuyên biệt miền USL bao gồm cú pháp trừu tượng (siêu mô hình EMF), tập luật ràng buộc hợp lệ OCL, cú pháp cụ thể dạng đồ họa (GMF) và ngữ nghĩa hình thức thực thi thông qua ánh xạ sang hệ thống chuyển trạng thái được gán nhãn (LTS). USL đóng vai trò là mô hình trung tâm hỗ trợ tích hợp yêu cầu vào quy trình phát triển hướng mô hình (MDD).
- Đề xuất ngôn ngữ đặc tả ca kiểm thử TCSL: Xây dựng ngôn ngữ chuyên biệt miền TCSL với siêu mô hình chuẩn hóa, cho phép biểu diễn đầy đủ và chi tiết mọi thông tin cần thiết của một ca kiểm thử chức năng mức hệ thống, bao gồm 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 vào/ra cụ thể, cùng trạng thái nội tại của hệ thống.
- Đề xuất phương pháp sinh tự động ca kiểm thử USLTG: Xây dựng quy trình tự động chuyển đổi từ mô hình USL kết hợp với mô hình khái niệm miền sang mô hình kiểm thử TCSL. Phương pháp áp dụng tiêu chí phủ đường hoạt động, giải quyết triệt để việc sinh kịch bản, trích xuất ràng buộc OCL, sinh dữ liệu kiểm thử giá trị cụ thể và xác định trạng thái đối tượng nội tại của hệ thống trước khi thực thi.
- Xây dựng bộ công cụ hỗ trợ và bộ thực nghiệm: Phát triển hoàn chỉnh công cụ phần mềm trên môi trường Eclipse hỗ trợ tạo mô hình USL, sinh tài liệu đặc tả TUCD (
USL2TUCD) và sinh mô hình kiểm thử TCSL (USLTG).
Hạn chế và hướng nghiên cứu tiếp
Theo nội dung luận án công bố, các hạn chế và hướng nghiên cứu phát triển tiếp theo bao gồm:
- Mở rộng khả năng của ngôn ngữ USL và bộ công cụ để hỗ trợ sinh tự động các chế tác phần mềm khác trong quy trình MDD, bao gồm các mô hình cấu trúc (biểu đồ lớp chi tiết) và mô hình hành vi (biểu đồ tuần tự, biểu đồ trạng thái).
- Tự động hóa hoàn toàn khâu kết nối từ mô hình ca kiểm thử TCSL sang các tập lệnh thực thi kiểm thử (test scripts) cho các khung kiểm thử tự động chuyên biệt như Selenium, Appium hoặc Keyword-Driven Testing Framework (KDTF).
- Mở rộng và tối ưu hóa thuật toán giải ràng buộc OCL để xử lý các mô hình có độ phức tạp cao, dữ liệu miền lớn và các ràng buộc phi tuyến tính.
- Mở rộng phạm vi thử nghiệm phương pháp USLTG trên nhiều hệ thống phần mềm công nghiệp quy mô lớn thuộc các miền ứng dụng đa dạng khác nhau.
Giá trị tham khảo
Luận án mang lại các giá trị tham khảo thiết thực cho các nhóm đối tượng:
- Nghiên cứu sinh và học viên cao học 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 chuẩn mực về xây dựng ngôn ngữ mô hình hóa chuyên biệt miền (DSML) trên Eclipse EMF/GMF, kỹ thuật định nghĩa ngữ nghĩa hình thức bằng LTS, và phương pháp chuyển đổi mô hình (M2M, M2T qua ATL/Acceleo).
- Giảng viên và nhà nghiên cứu trong lĩnh vực Kiểm thử phần mềm: Sử dụng các nội dung về kiểm thử dựa trên mô hình (MBT), tiêu chí bao phủ đường hoạt động và kỹ thuật sinh dữ liệu kiểm thử tự động từ biểu thức ràng buộc OCL làm tài liệu giảng dạy và nghiên cứu chuyên sâu.
- Kỹ sư phần mềm và chuyên viên kiểm thử (QA/QC/Test Automation Engineers): Tham khảo kiến trúc ngôn ngữ TCSL và phương pháp chuẩn hóa tài liệu ca sử dụng có cấu trúc nhằm thu hẹp khoảng cách giữa pha phân tích yêu cầu và pha tự động hóa kiểm thử trong các dự án phần mềm.
Câu hỏi thường gặp
1. Ngôn ngữ USL giải quyết hạn chế gì của việc mô tả ca sử dụng bằng ngôn ngữ tự nhiên truyền thống?
Ngôn ngữ tự nhiên có tính nhập nhằng, thiếu cấu trúc hình thức và không thể tự động xử lý chính xác bằng máy tính nếu không qua các kỹ thuật NLP phức tạp. USL cung cấp cú pháp trừu tượng, cú pháp đồ họa rõ ràng, tập luật ràng buộc OCL và ngữ nghĩa hình thức LTS, cho phép máy tính hiểu và tự động chuyển đổi mô hình ca sử dụng thành các chế tác phần mềm khác.
2. Điểm khác biệt cốt lõi giữa ngôn ngữ TCSL và các ngôn ngữ đặc tả kiểm thử trước đây (như TSL) là gì?
Các ngôn ngữ như TSL chỉ dừng lại ở việc 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 cho phép đặc tả chi tiết kiểu bước, đối tượng, hành động, loại điểm kiểm tra, dữ liệu đầu vào/ra có giá trị cụ thể, và đặc biệt là đặc tả được trạng thái nội tại của hệ thống (system state/snapshot) trước khi thực thi ca sử dụng.
3. Phương pháp USLTG sử dụng tiêu chí phủ nào để sinh các kịch bản kiểm thử từ mô hình USL?
USLTG áp dụng tiêu chí phủ đường hoạt động (Activity Path Coverage), cho phép kiểm tra các lỗi rẽ nhánh, lỗi vòng lặp (duyệt tối đa 2 lần cho cả cấu trúc while-do và do-while) và bảo toàn quan hệ thứ tự ưu tiên giữa các hành động đồng thời và không đồng thời, khắc phục hạn chế của tiêu chí phủ đường cơ bản.
4. Dữ liệu kiểm thử cụ thể trong phương pháp USLTG được sinh ra bằng cơ chế nào?
USLTG trích xuất các điều kiện gác và ràng buộc đường dẫn của từng kịch bản trong mô hình USL, kết hợp với biểu đồ lớp mô hình khái niệm miền, sau đó sử dụng công cụ giải ràng buộc OCL (dựa trên USE) để tự động sinh các giá trị biến đầu vào cụ thể và khởi tạo trạng thái đối tượng nội tại tương ứng.
5. Bộ công cụ hỗ trợ USL được phát triển trên nền tảng công nghệ nào?
Bộ công cụ được phát triển trên nền tảng Eclipse, sử dụng Eclipse Modeling Framework (EMF) để quản lý cú pháp trừu tượng, Graphical Modeling Framework (GMF) để xây dựng trình soạn thảo đồ họa, ngôn ngữ Acceleo để thực hiện chuyển đổi mô hình sang văn bản (USL2TUCD), và công cụ USE để giải các ràng buộc OCL.
Kết luận
Luận án tiến sĩ của tác giả Chu Thị Minh Huệ đã xây dựng thành công một phương pháp hoàn chỉnh nhằm tự động hóa quy trình kiểm thử chức năng mức hệ thống từ các 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. Với việc đề xuất hai ngôn ngữ chuyên biệt USL, TCSL cùng quy trình chuyển đổi USLTG và bộ công cụ hỗ trợ trên Eclipse, luận án đã giải quyết hiệu quả thách thức trong việc trích xuất kịch bản và sinh tự động dữ liệu kiểm thử cụ thể kèm trạng thái hệ thống. Công trình tạo tiền đề vững chắc cho việc tích hợp mô hình ca sử dụng như một chế tác trung tâm trong quy trình phát triển phần mềm hướng mô hình.