42
CHƯƠNG 5: THỰC NGHIỆM
Để có thể kiểm thử tính đúng đắn và hiệu quả của lập trình so với thiết kế, tôi đã thực hiện thử nghiệm với một số đầu vào khác nhau như sau:
Hàm đầu vào chứa biến số nguyên
Hàm đầu vào chứa biến số thực
Hàm đầu vào có chứa vòng lặp
Môi trường thử nghiệm được mô tả như trong bảng 5.1 bên dưới.
Processor Intel(R) Core(TM) i7-5500U CPU @ 2.40GHz 2.40 GHz
Installed memory (RAM) 4.00 GB
OS Name Microsoft Windows 10 Pro © 2015
System type 64-bit Operating System, x64-based processor
IDE Eclipse
Version: Luna Service Release 2 (4.4.2) Build id: 20150219-0600
Bảng 5.1. Môi trường thử nghiệm công cụ sinh ca kiểm thử từ thiết kế
5.1. Sinh bộ dữ liệu kiểm thử cho hàm đầu vào chứa biến số nguyên số nguyên
5.1.1. Input
Hàm Java tìm ước chung lớn nhất của 2 số, đầu vào là 2 biến số nguyên (kiểu int). Mã nguồn của hàm UocChungLonNhat được mô tả trong bảng 5.2 bên dưới.
import java.util.Scanner;
publicclass UocChungLonNhat {
publicstaticint nhap() {
Scanner input = new Scanner(System.in);
booleancheck= false;
intn=0;
while(!check){
System.out.print(" ");
try{
n= input.nextInt();
check= true;
}catch(Exception e){
System.out.println("Ban hay nhap lai du lieu
kieu so"); input.nextLine(); } } return (n); }
publicstaticint UCLN(inta, intb){
while(a!= b){
if(a>b) a= a-b;
elseb= b-a;
43 }
return (a); }
publicstaticvoid main(String[] args) { System.out.println("Nhap a");
inta = nhap();
System.out.println("Nhap b");
intb= nhap();
System.out.println("Uoc chung lon nhat cua "+a+" va "+b+" la: "+UCLN(a,b));
System.out.println("Boi chung nho nhat cua "+a+" va "+b+" la: "+((a*b)/UCLN(a,b)));
} }
Bảng 5.2. Đầu vào hàm UocChungLonNhatchứa biến số nguyên
5.1.2. Output:
Hàm đã cho không có điều kiện con phức tạp, nên CFG thu được cho các độ phủ cấp 1 (phủ câu lệnh), cấp 2 (phủ nhánh), và phủ cấp 3 (phủ điều kiện con) là giống nhau. Ta có đồ thị CFG của hàm UocChungLonNhat được mô tả như hình 5.1 bên dưới.