Bài 30. Kiểm thử và gỡ lỗi chương trình

1. MỘT VÀI PHƯƠNG PHÁP KIỂM THỬ CHƯƠNG TRÌNH

 a) Quan sát mã lỗi Runtime và bắt lỗi ngoại lệ
 b) Kiểm thử chương trình với các bộ dữ liệu
 c) In các thông số trung gian
 d) Sử dụng công cụ break point (điểm dừng) 

Một số ghi nhớ:

● Sử dụng công cụ in các biến trung gian.

Sử dụng công cụ sinh các bộ dữ liệu test.

Sử dụng công cụ điểm dừng trong phần mềm soạn thảo lập trình.

Quan sát các mã lỗi của chương trình nếu phát sinh.

2. VÍ DỤ MINH HỌA

Xét ví dụ sau: Nhập từ bàn phím hai số tự nhiên m, n, tính ƯCLN của hai số này.
 Gọi gcd(m, n) là ƯCLN của hai số tự nhiên m, n. Thuật toán của bài toán này dựa trên bài toán sau:
 (1) gcd(m, m) = m.
 (2) Nếu n > m thì gcd(m, n) = gcd(m, n - m).
 (3) Nếu n < m thì gcd(m, n) = gcd(m - n, n).
 Phần cơ bản nhất của chương trình sẽ là một vòng lặp while, vòng lặp sẽ kết thúc khi m = n.
Chương trình như sau: 

A white background with black and blue text

Description automatically generated

Chúng ta sẽ tiến hành kiểm thử chương trình này.
Cách 1: In ra các giá trị trung gian để kiểm soát chương trình.
Bổ sung biến k và hai lệnh print() vào chương trình như mô tả như sau: 

A screenshot of a computer

Description automatically generated

Kết quả thực hiện chương trình trên như sau: 

A white paper with blue text

Description automatically generated

Cách 2: Sử dụng công cụ tạo điểm dừng của phần mềm soạn thảo lập trình.
 Thiết lập điểm dừng tại dòng 4 của chương trình như sau. Đây là vị trí bắt đầu chuẩn bị vào vòng lặp. 

A white background with text and arrows

Description automatically generated

 Khi chạy chương trình sẽ dừng lại trước mỗi vòng lặp, chúng ta sẽ ghi lại các giá trị m, n vào một bảng như bảng sau. Khi kết thúc hết vòng lặp thì kết quả chương trình chính là giá trị m. 

Vòng lặp

m

n

Kết quả

1

20

16


2

4

16


3

4

12


4

4

8


Kết thúc lặp

4

4

4


 Cả hai cách để kiểm soát lỗi là in các giá trị trung gian và thiết lập điểm dừng đều hiệu quả. 

--- THE END ---

 

    

GÓI TRẮC NGHIỆM A


Đăng nhận xét

Mới hơn Cũ hơn
Responsive Advertisement
Responsive Advertisement4