Java PathFinder (JPF) là một công cụ kiểm tra mô hình trạng thái tường minh cho các chương trình Java, được xây dựng trên đỉnh của một máy ảo Java được tùy biến. JPF có một số thành phần mở rộng hữu ích nhằm mở rộng các tính năng của nó. Một trong các phần mở rộng đó chính là phần thực thi ký hiệu hay thực thi biểu trưng (Symbolic Execution). Thực thi ký hiệu sẽ giúp chúng ta sinh các ca kiểm thử (test case) cho các phương thức dựa trên việc phân tích mã byte-code của phương thức đó. Chúng tôi sử dụng thực thi ký hiệu để sinh tự động các ca kiểm thử nhằm cung cấp dữ liệu đầu vào cho các phương thức để kiểm tra lại phương pháp kiểm chứng bất biến sử dụng AOP đã được đề cập trong chương 3 và nội dung này được trình bày trong các mục 4.2 và 4.3.
JPF là một công cụ kiểm chứng mô hình với đầu vào là mã nguồn hoặc mã byte- code của chương trình cần kiểm chứng. Trong các phiên bản Java từ 1.4 trở đi cho phép chúng ta chèn các khẳng định vào một vị trí thích hợp bằng lệnh assert hoặc phương thức AssertTrue của lớp Verify của JPF. Đối với các phiên bản Java nhỏ hơn 1.4 chúng ta chỉ có thể sử dụng phương thức AssertTrue của lớp Verify. Sau khi thực hiện việc chèn các khẳng định, chúng ta có thể JPF để xác định các vi phạm các khẳng định. Chúng tôi cũng tiến hành so sánh phương pháp kiểm chứng bất biến bằng cách chèn các khẳng định với kiểm chứng bất biến sử dụng AOP. Nội dung này sẽ được trình bày trong mục 4.4.