Tạo các đột biến

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Kỹ thuật kiểm thử đột biến và ứng dụng để kiểm thử các chương trình Java (Trang 67 - 70)

4.4.5. Tạo và phân tích đột biến cho chương trình SXQSort.java bằng

4.4.5.1. Tạo các đột biến

MuJava tạo ra hai loại đột biến: đột biến truyền thống và đột biến lớp tương ứng với hai loại toán tử đột biến. Nếu chúng ta chọn tất cả các toán tử đột biến mức phương thức và mức lớp, MuJava tạo ra 262 đột biến cho chương trình SXQSort.Java, trong đó có 258 đột biến truyền thống và 4 đột biến lớp. Nếu MuJava thực thi tất cả những đột biến này với 22 trường hợp kiểm thử được xây dựng trong SXQSortTest.java sẽ tốn rất nhiều thời gian, đồng thời số lượng các đột biến tương đương cũng tăng. Do đó, sẽ làm tăng chi phí kiểm thử cho chương trình SXQSort.Java.

Để giảm chi phí kiểm thử cho chương trình SXQSort.Java, chúng ta sẽ sử dụng phương pháp đột biến ràng buộc bằng cách chỉ chọn một số toán tử đột

biến mức phương thức và mức lớp trong MuJava để tạo đột biến. Trong chương trình SXQSort.Java xuất hiện các toán tử: { +, -}, {++, --}, {<=, >=, <, >, = =,!=}, {&&}. Đây là các tốn tử có thể bị “viết nhầm” bởi các lập trình viên, lỗi có thể xảy ra ở những tốn tử này. Ngoài ra, việc khai báo và sử dụng các biến {L, R, n, i, j, k}, {a[1], a[2], …, a[n]} có thể là khơng chính xác. Vì vậy, một số tốn tử đột biến mức phương thức và mức lớp trong MuJava được chọn để tạo các đột biến cho chương trình SXQSort.java như sau:

Tốn tử đột biến mức phƣơng thức

Tốn tử Mơ tả Ví dụ

AORB Thay thế các toán tử số học nhị nguyên a = b + c  a = b − c AORS Thay thế các toán tử số học short – cut a ++  a −−

ROR Thay thế các toán tử quan hệ if(a < b)  if(a > b) COR Thay thế các toán tử điều kiện

while(a < b) && (c > d)  while(a < b) || (c > d)

Toán tử đột biến mức lớp

Tốn tử Mơ tả Ví dụ

JTI Thêm từ khóa this n this.n

JSI Thêm từ bổ nghĩa static

public int n;  public static int n; JID Xóa khởi tạo biến thành phần

public int[] a = new int[n];

 public int[] a

Bảng 4.6 – Các toán tử đột biến mức phương thức và mức lớp được chọn để tạo đột biến cho SXQSort.java

Trong thành phần Mutants Genertor của MuJava, chúng ta sẽ đánh dấu

chọn các toán tử đột biến mức phương thức: AORB, AORS, ROR, COR, chọn các toán tử đột biến mức lớp: JTI, JSI, JDI, và chọn file SXQSort.java. Sau đó, bấm nút “Generate” để tạo các đột biến cho chương trình SXQSort.java, được biểu diễn ở hình 4.10.

Hình 4.10 – Giao diện tạo đột biến cho SXQSort.java

MuJava tạo ra 43 đột biến truyền thống cho chương trình SXQSort.java, được biểu diễn ở Tab Traditional Mutants Viewer trong thành phần Mutants

Hình 4.11 –Hiển thị đột biến truyền thống của SXQSort.java

MuJava tạo ra 4 đột biến lớp cho chương trình SXQSort.java, được biểu diễn ở Tab Class Mutants Viewer trong thành phần Mutants Genertor của

MuJava.

Như vậy, MuJava đã tạo ra 47 đột biến cho chương trình SXQSort.java, trong đó có 43 đột biến truyền thống và 4 đột biến lớp, chỉ áp dụng các toán tử đột biến mức phương thức: AORB, AORS, ROR, COR và các toán tử đột biến mức lớp: JTI, JSI, JID.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Kỹ thuật kiểm thử đột biến và ứng dụng để kiểm thử các chương trình Java (Trang 67 - 70)

Tải bản đầy đủ (PDF)

(76 trang)