bai08 ky thuatdebug-k-trpm@softtesting-nntu
TRANSCRIPT
Lý thuyếtKiểm Tra Phần Mềm
GV: Nguyễn Ngọc TúEmail: [email protected]ộ môn: Kỹ thuật Phần mềm
Bài 08: Kỹ thuật gỡ rối – sửa lỗi
NNTu Software Testing S2008 2
Nội dung
Khái niệmKỹ thuật vét cạnPhương pháp Qui nạpPhương pháp suy diễnPhương pháp lần vếtPhương pháp kiểm traCác nguyên tắc gỡ rốiPhân tích lỗi
NNTu Software Testing S2008 3
Khái niệm
Gỡ rối là công việc thực hiện sau khi thựchiện thành công TCTC được gọi là thành công (pass)
chương trình không làm gì khác với những gì nóđã được thiết kế
Quá trình gỡ rối thực hiệnXác định - định vị lỗiSửa lỗi
NNTu Software Testing S2008 4
Khái niệm
Điều kiện cần và đủĐã Kiểm thử
Các yếu tố ảnh hưởngcho thấy rằng người lập trình chưa hoàn hảo, cònphạm lỗilà hoạt động gây mệt mỏi nhất về mặt tinh thầncó thể bị mất phương hướng
NNTu Software Testing S2008 5
Kỹ thuật vét cạn
Phổ biếnít tư duy, ít gây mệt mỏi về mặt tinh thần
Không hiệu quảThường không thành côngPhương pháp Brute Force được phân chiathành 3 loại
không có định hướng.theo các dòng báo tiên đoán của chương trình.với các công cụ gỡ rối tự động
NNTu Software Testing S2008 6
Kỹ thuật vét cạn
Gỡ rối với thông tin kết xuấtHiển thị thô dữ liệu ở các nơiKết xuất bộ nhớ ít khi chính xác để xác định lỗiKhông có một phương pháp cụ thể phân tích
Chỉ ra vị trí lỗi khu vực lỗiCông cụ gỡ rối tự động
Chèn thêm vào chương trình các dòng lệnh hỗ trợthực hiện từng bướcCho phép đánh dấu các dòng lệnh thi hành
NNTu Software Testing S2008 7
Phương pháp Qui nạp
bắt đầu từ một manh mối và quan sát mốiquan hệ giữa các manh mối.
manh mối có thể là một dấu hiệu về lỗi, hoặc làkết quả của 1 hay nhiều test case
NNTu Software Testing S2008 8
Phương pháp Qui nạp
Xác định dữ liệu phù hợpBước đầu tiên là liệt kê tất cả những dấu hiệu cholà lỗiCác lỗi tương tự nhưng khác nhau mà TC khôngphải là nguyên nhân gây lỗi
Tổ chức các dữ liệu quan tâm để tìm lỗi theocác mâu thuẫn
NNTu Software Testing S2008 9
Phương pháp Qui nạp
Đặt ra một giả thuyết
Chứng minh giả thuyếtbằng cách so sánh nó với các manh mối gốc hay dữ liệu để chắc chắn rằng giả thuyết này hoàntoàn làm sáng tỏ tình trạng của các manh mối
Sửa lỗi
NNTu Software Testing S2008 10
Phương pháp Suy diễn
Đây là quá trình loại trừ và làm rõ dần cácnguyên nhânNgược với phương pháp quy nạpBắt đầu đi từ các “nghi ngờ” lỗi xảy ra
NNTu Software Testing S2008 11
Phương pháp Suy diễn
L iệt kê các nguyên nhân, giả thuyết có thểdẫn tới xảy ra lỗiSử dụng dữ liệu chạy thử để loại bỏ dần cácnguyên nhânLàm rõ các giả thuyết còn lạiChứng minh các giả thuyết
NNTu Software Testing S2008 12
Phương pháp lần vết
Hiệu quả trong định vị lỗi trong các chươngtrình nhỏQuay lui lại quá trình xử lý trong chương trìnhcho đến khi tìm thấy điểm xử lý không đúnglogic
NNTu Software Testing S2008 13
Phương pháp kiểm tra
Kiểu cuối cùng là dùng chính các TC để lầnbước xác định lỗi của chương trìnhSử dụng từng điều kiện riêng lẻ để tìm lỗi
NNTu Software Testing S2008 14
Các nguyên tắc gỡ rối
Nếu bị bế tắc, hãy gác nó lạiNếu bị bế tắc, Hãy mô tả lại vấn đề cho 1 người khácHãy dùng một công cụ gỡ rối duy nhất như làcách viện trợ thứ 2Tránh sự thử nghiệm – Sử dụng nó như là kếsách cuối cùng
NNTu Software Testing S2008 15
Phân tích-sửa lỗi
Chỗ nào đã có 1 lỗi thì có khả năng có mộtlỗi khácTập trung sửa lỗi, nhưng không chỉ tập trungvào một dấu hiệu lỗiKhả năng sửa chính xác không phải 100%Khả năng sửa chính xác giảm khi kích thướccủa chương trình tăng lênKhả năng sửa một lỗi có thể tạo ra một lỗimới
NNTu Software Testing S2008 16
Phân tích-sửa lỗi
Nơi đâu lỗi phát sinhAi tạo ra lỗiCái gì đã thực thi/kết thúc không đúngCó thể ngăn ngừa lỗi này như thế nàoTại sao lỗi không được phát hiện sớmLỗi có thể phát hiện sớm bằng cách nào
NNTu Software Testing S2008 17
Bài tập - đọc hiểu
NNTu Software Testing S2008 18
Đọc thêm
[1]. Chapter 07
NNTu Software Testing S2008 19
Q/A