Tài nguyên dạy học

Thống kê

  • truy cập   (chi tiết)
    trong hôm nay
  • lượt xem
    trong hôm nay
  • thành viên
  • Sắp xếp dữ liệu

    Chào mừng quý vị đến với website của ...

    Quý vị chưa đăng nhập hoặc chưa đăng ký làm thành viên, vì vậy chưa thể tải được các tài liệu của Thư viện về máy tính của mình.
    Nếu chưa đăng ký, hãy nhấn vào chữ ĐK thành viên ở phía bên trái, hoặc xem phim hướng dẫn tại đây
    Nếu đã đăng ký rồi, quý vị có thể đăng nhập ở ngay phía bên trái.

    Chủ đề F: Bài 16. Kiểm thử và gỡ lỗi chương trình

    Nhấn vào đây để tải về
    Báo tài liệu có sai sót
    Nhắn tin cho tác giả
    (Tài liệu chưa được thẩm định)
    Nguồn: Bạch Kim
    Người gửi: Ngô Văn Chinh (trang riêng)
    Ngày gửi: 15h:40' 04-05-2023
    Dung lượng: 2.1 MB
    Số lượt tải: 0
    Số lượt thích: 0 người
    CHỦ ĐỀ F: BÀI 16: KIỂM THỬ VÀ GỠ LỖI CHƯƠNG TRÌNH
    Trang bìa
    Trang bìa
    Ảnh
    TIN HỌC 10
    CHỦ ĐỀ F: BÀI 16: KIỂM THỬ VÀ GỠ LỖI CHƯƠNG TRÌNH
    Ảnh
    Khởi động
    Khởi động (Khởi động)
    Ảnh
    Khởi động:
    Có những chương trình còn lỗi vì khi thực hiện cho ra kết quả sai. Theo em, việc biết giá trị của một số biến ngay sau khi mỗi câu lệnh được thực hiện có thể giúp tìm ra lỗi của chương trình hay không?
    1. Lỗi trong chương trình và kiểm thử
    - Hoạt động 1
    Ảnh
    1. Lỗi trong chương trình và kiểm thử
    Hình vẽ
    Hoạt động 1: Trong những phần trước, các bài tập và bài thực hành không quá phức tạp. Đã lần nào em soạn chương trình và thực hiện được ngay từ lần đầu tiên chưa?
    - Kết luận 1
    - Kết luận 1:
    Các lỗi thường gặp trong chương trình:
    Lỗi cú pháp: là lỗi câu lệnh viết không theo đúng quy định của ngôn ngữ. Loại lỗi này được môi trường lập trình phát hiện và thông báo khá cụ thể, rõ ràng, cả về đặc trưng và nơi xảy ra lỗi. Lỗi ngoại lệ: là lỗi Runtime, là lỗi xảy ra khi chương trình đang chạy, một lệnh nào đó không thể thực hiện được. Lỗi này sẽ được thông báo ngay trên màn hình. Lỗi ngữ nghĩa: là lỗi mặc dù các câu lệnh viết đúng quy định của ngôn ngữ nhưng sai trong thao tác xử lí nào đó. Loại lỗi này rất khó để phát hiện.
    - Ví dụ 1
    - Ví dụ:
    Xét chương trình ở Hình 1a, chương trình này thực hiện yêu cầu nhập vào hai số nguyên p, q và danh sách a gồm các số nguyên, sau đó đưa ra max{ |ai| , i = p, p + 1,..., q}. Biết rằng các phần tử của danh sách a được đánh chỉ số bắt đầu từ 0 và latex(0 <= p<=q<)len(a).
    Ảnh
    Hình 1a. Chương trình cần kiểm thử và tìm lỗi
    +) tiếp (- Ví dụ)
    Với đầu vào p = 1, q = 4 (Hình 1b), dãy con được xem xét là 7 1 5 -6, nên 7 là đáp án đúng, là số có giá trị tuyệt đối lớn nhất trong dãy con đó. Với đầu vào p = 2, q = 4 (Hình 1c), dãy con được xem xét là 1 5 -6, đáp ánh dúng phải là 6.
    Ảnh
    - Kết luận 2
    Hình vẽ
    - Kết luận 2:
    Để kiểm tra tính đúng đắn của chương trình so với yêu cầu của đề bài, dữ liệu kiểm thử phải phù hợp với các ràng buộc đã cho và chia thành ba nhóm:
    Kiểm thử những trường hợp thường gặp trong thực tế. Kiểm thử những trường hợp đặc biệt. Kiểm thử những trường hợp các tham số nhận giá trị lớn nhất có thể.
    2. Truy vết với cách bổ xung câu lệnh theo dõi kết quả trung gian
    - Hoạt động 2
    Ảnh
    2. Truy vết với cách bổ xung câu lệnh theo dõi kết quả trung gian
    Hình vẽ
    Hoạt động 2: Tại sao rất khó phát hiện lỗi nếu chỉ dùng biện pháp đọc kĩ lại chương trình?
    - Kết luận
    Hình vẽ
    - Kết luận:
    Truy vết với cách bổ sung câu lệnh theo dõi kết quả trung gian nhằm dự đoán và khoanh vùng được phần chương trình chứa các câu lệnh đưa đến kết quả sai.
    Ảnh
    - Tìm hiểu ví dụ minh họa
    - Tìm hiểu ví dụ minh họa:
    Trong ví dụ ở mục 1, hiện tượng có lúc chương trình cho kết quả sai có thể do nguyên nhân ở khâu nhập dữ liệu hoặc phạm vi tìm kiếm max. Để tìm xem lỗi sai ở đâu ta sử dụng câu lệnh print("i = ", i,"max = ", max).
    Ảnh
    +) tiếp (- Tìm hiểu ví dụ minh họa)
    Kết quả kiểm thử đó cho ta thấy lỗi ở việc xác định miền cần tìm max và cần phải sửa lại câu lệnh for i in range(p, q) thành for i in range(p, q + 1).
    Ảnh
    3. Truy vết công cụ gỡ lỗi của ngôn ngữ lập trình
    - Tìm hiểu
    Ảnh
    3. Truy vết công cụ gỡ lỗi của ngôn ngữ lập trình
    Để người lập trình không cần phải can thiệp vào chương trình nguồn mà vẫn truy vết tìm lỗi được, ngôn ngữ Python cung cấp công cụ Debug (Gỡ lỗi). Các thao tác kích hoạt chế độ gỡi lỗi:
    Trên cửa sổ Shell, mở file chương trình cần gỡ lỗi, kết quả là chương trình này xuất hiện. Chọn Debug trên cửa sổ Shell và sau đó chọn Debugger (Hình 3). Kết quả là cửa sổ Debug Control sẽ xuất hiện (Hình 4).
    - Hình 3. Kích hoạt chế độ gỡ lỗi (- Tìm hiểu)
    Hình 3. Kích hoạt chế độ gỡ lỗi
    Ảnh
    - Hình 4. Cửa sổ Debug Control của công cụ gỡ lỗi đang ở trạng thái chờ làm việc (- Tìm hiểu)
    Hình 4. Cửa sổ Debug Control của công cụ gỡ lỗi đang ở trạng thái chờ làm việc
    Ảnh
    - Hình 5. Sự thay đổi các biến khi một câu lệnh được thực hiện (- Tìm hiểu)
    Hình 5. Sự thay đổi các biến khi một câu lệnh được thực hiện
    Ảnh
    - Kết luận
    Hình vẽ
    - Kết luận:
    Truy vết để tìm lỗi là một quá trình khó khăn và phức tạp, đôi khi mất khá nhiều thời gian. Python trang bỊ một thư viện riêng cung cấp các dịch vụ gỡ lỗi đó là thư viện PDB.
    Ảnh
    4. Thực hành gỡ lõi cho chương trình
    - Bài toán
    4. Thực hành gỡ lỗi chương trình
    - Bài toán:
    Cho a là danh sách các số nguyên. Em hãy tạo danh sách b có các phần tử ở vị trí lẻ phần tử ở vị trí tương ứng của a, các phần tử ở vị trí chẵn bằng phần tử ở vị trí tương ứng của a cộng thêm 1, tức là:
    Ảnh
    latex(b_i) =
    latex(a_1 + 1, i = 0, 2, 4, ...) latex(a_i, i = 1, 3, 5, ...)
    So sánh số lượng các phần tử giá trị chẵn ở a với số lượng các phần tử giá trị chẵn ở b, đưa ra thông báo. Gọi p là số lượng các phần tử giá trị chẵn ở a, q là số lượng các phần tử giá trị chẵn ở b và đưa ra thông báo "a ít hơn" nếu p < q, " b ít hơn" nếu p > q và "Bằng nhau" trong trường hợp còn lại.
    - Nhiệm vụ
    - Nhiệm vụ:
    Ảnh
    Chương trình ở Hình 6 giải bài toán đã nêu nhưng còn có lỗi và cần được gỡ lỗi.
    Ảnh
    Em hãy áp dụng các phương pháp truy vết để xác định lỗi và đề xuất cách sửa một số ít nhất các câu lệnh để có chương trình đúng.
    - Hướng dẫn
    Ảnh
    Hình vẽ
    - Hướng dẫn:
    Sử dụng công cụ gỡ lỗi (Debug). Sử dung phương pháp bổ sung vào chương trình các câu lệnh truy vết.
    Luyện tập
    - Luyện tập (- Luyện tập)
    Luyện tập:
    Ảnh
    Em hãy soạn thảo và thực hiện từng bước chương trình ở hình sau:
    Ảnh
    Vận dụng
    - Vận dụng
    - Vận dụng:
    Ảnh
    Ảnh
    Câu 1:Nêu một vài lỗi thuộc nhóm cú pháp và một vài lỗi thuộc nhóm lỗi ngữ nghĩa. Câu 2: Tại sao phải tạo nhiều bộ dữ liệu vào khác nhau để kiểm thử chương trình? Câu 3: Có bao nhiêu nhóm dữ liệu khác nhau cần tạo ra để kiểm thử chương trình? Câu 4. Có thể xem giá trị các biến sau khi thực hiện một câu lệnh ở đâu?
    Dặn dò
    - Dặn dò
    Ảnh
    Dặn dò
    Học hiểu trọng tâm bài học. Làm bài tập trong SBT. Chuẩn bị bài sau: Chủ đề F: Bài 17: Thực hành lập trình giải bài toán trên máy tính.
    - Cảm ơn
    Ảnh
     
    Gửi ý kiến

    ↓ CHÚ Ý: Bài giảng này được nén lại dưới dạng ZIP và có thể chứa nhiều file. Hệ thống chỉ hiển thị 1 file trong số đó, đề nghị các thầy cô KIỂM TRA KỸ TRƯỚC KHI NHẬN XÉT  ↓