Professional Documents
Culture Documents
Lav5 ps24776 Vohoangtien
Lav5 ps24776 Vohoangtien
Dựa trên ràng buộc của ô textbox cho phép nhập số điểm với các mức xếp loại kèm theo,
ta có thể sử dụng kỹ thuật phân vùng tương đương như sau:
Phân vùng 1 (điểm từ 5 đến 14): Test với các giá trị trong phân vùng này và kiểm tra xem
hệ thống có đưa ra kết quả xếp loại Kém hay không.
Phân vùng 2 (điểm từ 15 đến 40): Test với các giá trị trong phân vùng này và kiểm tra
xem hệ thống có đưa ra kết quả xếp loại Trung bình hay không.
Phân vùng 3 (điểm từ 41 đến 60): Test với các giá trị trong phân vùng này và kiểm tra
xem hệ thống có đưa ra kết quả xếp loại Khá hay không.
Phân vùng 4 (điểm từ 61 đến 100): Test với các giá trị trong phân vùng này và kiểm tra
xem hệ thống có đưa ra kết quả xếp loại Giỏi hay không.
Phân vùng 5 (điểm < 5): Test với giá trị nhỏ hơn giới hạn dưới và kiểm tra xem hệ thống
có thông báo lỗi không.
Phân vùng 6 (điểm > 100): Test với giá trị lớn hơn giới hạn trên và kiểm tra xem hệ thống
có thông báo lỗi không.
Caau2 :
Sử dụng kỹ thuật phân tích giá trị biên thì ta chọn các giá trị biên của các phân vùng
trong ràng buộc của ô textbox:
Vậy ta có các trường hợp kiểm thử cần thực hiện như sau:
Test giá trị bằng giới hạn dưới của phân vùng 1: 5
Test giá trị bằng giới hạn trên của phân vùng 1: 14
Test giá trị bằng giới hạn dưới của phân vùng 2: 15
Test giá trị bằng giới hạn trên của phân vùng 2: 40
Test giá trị bằng giới hạn dưới của phân vùng 3: 41
Test giá trị bằng giới hạn trên của phân vùng 3: 60
Test giá trị bằng giới hạn dưới của phân vùng 4: 61
Test giá trị bằng giới hạn trên của phân vùng 4: 100
Test với giá trị nhỏ hơn giới hạn dưới: 4
Test với giá trị lớn hơn giới hạn trên: 101
Cau3:
Trong bảng quyết định này, các trường hợp false được đại diện bởi "Không", còn true
được đại diện bởi "Có". Giảm giá kết hợp được cộng vào khi cả 2 trường hợp tương ứng
đều là true.
Từ bảng quyết định này, ta có thể tạo ra test case như sau:
C4:
Để vẽ đường cơ bản của hàm soNT(), ta xác định các nút (nodes) và cạnh (edges) như
sau:
Nodes: nhập dữ liệu (n), khởi tạo biến co là true, khởi tạo biến i là 2, kiểm tra điều kiện
(n != 1 && co == true), in kết quả "là số nguyên tố", in kết quả "không phải là số nguyên
tố".
Edges: (1) -> (2) -> (3) -> (4.1) -> (4.2) -> (4.3) -> (4.4) -> (4.6), (4.1) -> (5), (4.4) -> (5),
(4.6) -> (7), (4.3) -> (6), (6) -> (4.1), (6) -> (4.4)
Ở đây, nếu kết quả của phép tính (n % i == 0) là true, chương trình sẽ chuyển đến node
(5), tức sẽ kết thúc vòng lặp và không thể trở lại node (3). Nếu kết quả của phép tính (n %
i == 0) là false, chương trình sẽ chuyển đến node (6) để tăng biến i lên 1 và tiếp tục kiểm
tra điều kiện.
Lưu ý rằng, để thực hiện kiểm thử đường đi, ta cần nhập các giá trị đầu vào thích hợp để
đi theo từng đường đi tương ứng.
C5:
Để xác định số test case tối thiểu bao phủ 100% Câu lệnh (Statement coverage) cho đoạn
mã trên, ta cần xác định tất cả các câu lệnh có thể, sau đó tạo ra các test case để bao phủ
tất cả các câu lệnh đó. Trong trường hợp này, ta có 4 câu lệnh:
Số test case tối thiểu bao phủ 100% Câu lệnh sẽ được tính bằng tổng số lần thực hiện
(execute) của các câu lệnh này.
Trường hợp (temperature >= 0 && temperature <= 100) và (speed > 100) và (load <=
50):
Trường hợp (temperature >= 0 && temperature <= 100) và (speed <= 100 || load > 50):
Vậy ta có thể tạo ra 3 test case để bao phủ tất cả các câu lệnh:
temperature < 0
temperature >= 0 && temperature <= 100, speed > 100, và load <= 50
temperature >= 0 && temperature <= 100, speed <= 100 hoặc load > 50
Lưu ý rằng, số lượng các test case để đạt được 100% branch coverage hoặc 100% path
coverage có thể sẽ cao hơn số lượng test case ở đây.