4.1. Công cụ MuJava
4.1.1. Mô tả công cụ MuJava
Hình 4.1 mô tả cấu trúc tổng thể của MuJava. Công cụ này bao gồm ba thành phần chính : mutants generator (bộ tạo đột biến), mutants viewer (biểu
diễn đột biến) và mutants executor (bộ thực thi đột biến). Chương trình gốc Mutants generator Mutants viewer Mutants executor Các toán tử đột biến Bộ dữ liệu thử Mô tả các đột biến Các đột biến Kết quả kiểm thử
Mutants generator tạo ra các đột biến truyền thống và đột biến lớp bằng
cách sử dụng các toán tử đột biến mức phương thức và mức lớp. Hình 4.2 biểu diễn giao diện cho mutants generator. Các kiểm thử viên có thể lựa chọn các file mà họ muốn tạo ra các đột biến và chọn các toán tử đột biến để áp dụng. Nhấn vào nút " Generate " để tạo ra đột biến. Các đột biến được tạo ra ở dạng mã nguồn, sau đó chúng được biên dịch thành mã byte. Sau khi sản sinh, thông tin cho mỗi đột biến được biểu diễn bởi
mutants viewer.
Hình 4.2 – Giao diện bộ tạo đột biến của MuJava
Mutants viewer thể hiện có bao nhiêu và những loại đột biến nào được
sản sinh. Nó cũng mô tả phần mã nguồn gốc đã được thay đổi bởi mỗi đột biến. Nó giúp các kiểm thử viên thực hiện hai nhiệm vụ: thiết kế các trường hợp kiểm thử cho các đột biến mà khó diệt và xác định các đột biến tương đương. Bởi vì MuJava hỗ trợ hai loại toán tử đột biến: toán tử đột biến mức phương thức và mức lớp, nó cung cấp mutants viewer
riêng cho mỗi loại. Hình 4.3 biểu diễn giao diện cho mutants viewer,
trong đó liệt kê các đột biến được tạo ra và hiển thị các phần của mã nguồn gốc được thay đổi bởi một đột biến.
Hình 4.3 – Giao diện biểu diễn các đột biến của MuJava
Hình 4.4 – Giao diện bộ thực thi đột biến của MuJava
Mutants executor thực thi các đột biến với bộ dữ liệu kiểm thử và biểu
thực thi bằng các bộ tải lớp thích hợp. Các trường hợp kiểm thử được cung cấp bởi kiểm thử viên với một định dạng cụ thể, đặc biệt, lớp Java chứa phương thức cho mỗi kiểm thử. Mỗi phương thức kiểm thử không nên có các tham số và trả về kết quả kiểu String được sử dụng để so sánh đầu ra của các đột biến với đầu ra của lớp ban đầu. Ngoài ra, mỗi phương thức kiểm thử nên bắt đầu với chuỗi “test” và có truy cập công khai (public).
MuJava là kết quả của sự hợp tác giữa hai trường đại học, Korea Advanced Institute of Science and Technology (KAIST) của Hàn Quốc và George Mason University (GMU) của Mỹ. Web site MuJava đều có ở cả hai trường đại học
http://salmosa.kaist.ac.kr/LAB/mujava/ tại KAIST và
http://www.cs.gmu.edu/~offutt/mujava/ tại GMU. Các Web site có liên kết để tải các file MuJava.jar, mô tả công cụ, và giới thiệu chi tiết làm cách nào để cài đặt và sử dụng MuJava.