Trình bày cơ sở lý luận về kiểm định phần mềm và các nhóm kiểm định phần mềm. Giới thiêu về JPF, kiến trúc của JPF, cách mở rộng, phát triển trên JPF. Ngoài ra giới thiệu về thực thi tượng trưng để sinh dữ liệu kiểm thử cho chương trình trong JPF cũng như cho phép sinh tự động dữ liệu kiểm thử chương trình Java. Tìm hiểu về SMT, Z3, các lý thuyết được hỗ trợ trên Z3, các API của Z3 để tích hợp với JPF và ứng dụng của Z3. Nghiên cứu, đánh giá các giải.