AST VISITOR BODY PARSER TREE TRAVERSAL STATIC PARSER SOLVER CFG Danh sách hàm Đường thi hành Hệ ràng buộc Dữ liệu kiểm thử
33
Kiến trúc chương trình và quy trình hoạt động của công cụ được mô tả như trong hình 4.1 bên dưới. Đầu tiên, thông qua AST Visitor, mã nguồn Java đầu vào sẽ được phân tích thành danh sách các hàm. Tiếp theo, Body Parser sẽ dựa vào danh sách hàm và tạo thành đồ thị CFG thỏa mãn tiêu chí phủ kiểm thử. Tree Traversal sẽ phân tích CFG này và tạo thành tập các đường thi hành. Từ tập các đường thi hành, kỹ thuật Static Parser sẽ tạo ra hệ ràng buộc. Giải hệ ràng buộc dựa trên Z3 Prover là bước cuối cùng trong quy trình. Nghiệm của hệ ràng buộc thu được chính là dữ liệu kiểm thử đã được sinh một cách tự động, giải quyết chính xác bài toán ban đầu đã đặt ra.
4.2.Nền tảng chương trình 4.2.1. Thư viện JDT
Thư viện Eclipse-JDT (Java Development Tools) là một bộ nền tảng viết bằng Java cung cấp các công cụ để phát triển các ứng dụng Java, đồng thời cũng cung cấp các giao diện chương trình ứng dụng (Application Program Interface– API) để truy cập và thao tác tới các đoạn mã nguồn Java.
Thư viện nàycho phép người phát triển phần mềm truy cập vào mã nguồn Java thông qua hai phương tiện khác nhau: Java Model và Cây Cú Pháp Trừu Tượng (Abstract Syntax Tree - AST).Cây AST là một cách biểu diễn cấu trúc mã nguồn dưới dạng một tập các đỉnh và liên kết giữa các đỉnh. Mỗi một đỉnh tương ứng với một thành phần trong mã nguồn như câu lệnh gán, khối lệnh điều kiện, biến, phép toán, v.v.