bai08 ky thuatdebug-k-trpm@softtesting-nntu

19

Click here to load reader

Upload: an-pham

Post on 22-May-2015

256 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Bai08 ky thuatdebug-k-trpm@softtesting-nntu

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

Page 2: Bai08 ky thuatdebug-k-trpm@softtesting-nntu

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

Page 3: Bai08 ky thuatdebug-k-trpm@softtesting-nntu

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

Page 4: Bai08 ky thuatdebug-k-trpm@softtesting-nntu

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

Page 5: Bai08 ky thuatdebug-k-trpm@softtesting-nntu

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

Page 6: Bai08 ky thuatdebug-k-trpm@softtesting-nntu

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

Page 7: Bai08 ky thuatdebug-k-trpm@softtesting-nntu

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

Page 8: Bai08 ky thuatdebug-k-trpm@softtesting-nntu

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

Page 9: Bai08 ky thuatdebug-k-trpm@softtesting-nntu

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

Page 10: Bai08 ky thuatdebug-k-trpm@softtesting-nntu

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

Page 11: Bai08 ky thuatdebug-k-trpm@softtesting-nntu

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

Page 12: Bai08 ky thuatdebug-k-trpm@softtesting-nntu

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

Page 13: Bai08 ky thuatdebug-k-trpm@softtesting-nntu

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

Page 14: Bai08 ky thuatdebug-k-trpm@softtesting-nntu

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

Page 15: Bai08 ky thuatdebug-k-trpm@softtesting-nntu

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

Page 16: Bai08 ky thuatdebug-k-trpm@softtesting-nntu

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

Page 17: Bai08 ky thuatdebug-k-trpm@softtesting-nntu

NNTu Software Testing S2008 17

Bài tập - đọc hiểu

Page 18: Bai08 ky thuatdebug-k-trpm@softtesting-nntu

NNTu Software Testing S2008 18

Đọc thêm

[1]. Chapter 07

Page 19: Bai08 ky thuatdebug-k-trpm@softtesting-nntu

NNTu Software Testing S2008 19

Q/A