CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
ĐƠN YÊU CẦU CÔNG NHẬN SÁNG KIẾN
TÊN SÁNG KIẾN
ỨNG DỤNG MỘT SỐ KĨ THUẬT KIỂM THỬ PHẦN MỀM TRONG
GIẢNG DẠY LẬP TRÌNH CHO HỌC SINH GIỎI MÔN TIN HỌC
TRƯỜNG THPT TRẦN HƯNG ĐẠO
Tác giả:
Lê Cao Duy – Giáo viên trường THPT Trần Hưng Đạo
Ninh Bình, tháng 4 năm 2022
MỤC LỤC
1.Tên sáng kiến, lĩnh vực áp dụng .......................................................................................... 3
2.Nội dung ............................................................................................................................. 3
3.Hiệu quả kinh tế xã hội dự kiến đạt được ............................................................................ 9
4.Điều kiện và khả năng áp dụng ........................................................................................... 9
PHỤ LỤC ............................................................................................................................. 11
4.1 Kỹ thuật specification-based (Kiểm thử hộp đen) .................................................. 13
...................................................................................................................................... 14
4.2 Kỹ thuật structure-based (Kiểm thử hộp trắng) ...................................................... 16
4.3 Kiểm thử hộp xám. ................................................................................................. 17
TÀI LIỆU THAM KHẢO .................................................................................................... 30
2
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập- Tự do – Hạnh phúc
ĐƠN YÊU CẦU CÔNG NHẬN SÁNG KIẾN
Kính gửi: Hội đồng sáng kiến Sở Giáo dục và Đào tạo Ninh Bình
Tôi ghi tên dưới đây:
STT Họ và tên
Ngày
tháng
năm
sinh
Nơi công tác
(hoặc nơi
thường trú)
Chức vụ
Trình độ
chuyên
môn
Tỉ lệ (%) đóng
góp vào việc tạo
ra sáng kiến
1Lê Cao Duy 1987 Trường THPT
Trần Hưng Đạo Giáo Viên
Thạc
Công Nghệ
Thông Tin
100%
1. Tên sáng kiến, lĩnh vực áp dụng
Là tác giả đề nghị xét công nhận sáng kiến:
“ỨNG DỤNG MỘT SỐ THUẬT KIỂM THỬ PHẦN MỀM TRONG
GIẢNG DẠY LẬP TRÌNH CHO HỌC SINH GIỎI MÔN TIN HỌC
TRƯỜNG THPT TRẦN HƯNG ĐẠO”
Lĩnh vực áp dụng sáng kiến: Lĩnh vực giáo dục – bộ môn tin học cấp THPT
2. Nội dung
Hiện nay, trong quá trình dạy học lập trình trong chương trình tin học.
Nhiệm vụ ra đề chữa bài cho học sinh một nhiệm vụ diễn ra thường
xuyên. Việc kiểm tra đánh giá, chữa bài học sinh, giúp kiểm tra phát hiện ra
các lỗi nếu của chương trình khi làm bài việc rất quan trọng giúp học
sinh hiểu ra các lỗi sai, từ đó có thể khắc phục, rút kinh nghiệm.
Khi giảng dạy các bài toán lập trình giáo viên ngoài giảng dạy về
thuyết thì phần giao bài tập cho học sinh thực hiện quá trình không thể
thiếu để học sinh thực hành và vận dụng các kiến thức đã học để thực hiện các
bài toán được giao.
Khi giáo viên ra đề ngoài việc viết nguồn chương trình cho đ thì
việc tạo các bộ test một việc quan trọng giúp giáo viên kiểm tra chương
3
trình, phát hiện ra các trường hợp mà chương trình học sinh có thể chưa xử lý,
không xử được hoặc thể thực hiện sai. Việc tạo bộ test hiện nay đa số
dựa trên các kinh nghiệm của các thầy ra đề hoặc dựa trên các chương
trình tạo test tự động, các i liệu nói về vấn đề tạo test cho các bài lập trình
rất ít hoặc nói thì cũng chưa đề cập chi tiết đến cách tạo test sao cho hiệu
quả.
Việc chữa bài cho học sinh hiện nay giáo viên thường gặp 2 trường hợp
chính:
TH1: Bài làm biên dịch có lỗi cú pháp.
TH2: Bài làm không có lỗi cú pháp.
Đối với TH1 giáo viên sẽ dựa vào các thông báo lỗi để xử giúp cho
học sinh làm bài, Với TH2 khi đó giáo viên sẽ kiểm tra chương trình thường
bằng các test của đề bài có, hoặc dựa trên giải thuật của bài toán học sinh
làm để phát hiện ra các trường hợp có thể sinh lỗi.
Công việc chữa bài cho học sinh ngoài sử dụng các công cụ hỗ trợ của
chương trình soạn thảo lập trình để tìm c lỗi bản như pháp thì việc
tìm các lỗi thể mắc phải của học sinh như lỗi về cấu trúc dữ liệu hoặc giải
thuật, vv… đa số giáo viên nào làm nhiều gặp nhiều lỗi thì dễ phát hiện
có nhiều kinh nghiệm khắc phục, chữa lỗi.
a. Giải pháp cũ thường làm
- Chi tiết của giải pháp cũ
* Đối với trường hợp tạo test cho đề:
- Trường hợp này việc tạo các test cho bài làm, giáo viên thường sẽ dựa
trên kinh nghiệm của bản thân để tạo ra các test sao cho có khả năng phát hiện
lỗi là cao nhất. Do đó việc tạo test sao cho có hiệu quả một vấn đề rất quan
trọng bức thiết. Đối với giáo viên mới ra trường hoặc ít kinh nghiệm tạo
test thì việc tạo ra các test hiệu quả để phát hiện lỗi thường khó thể tạo
test nhưng không hiệu quả, không phát hiện lỗi.
- Việc tạo ra các test thể không đánh giá được hết các trường hợp
bài toán thể xảy ra. Số lượng test thể nhiều nhưng không bao phủ được
4
toàn bộ bài toán (các test yếu). Người ra đề nếu không có trình độ cao và kinh
nghiệm thì thường sẽ cho ra các testđầu vào giống hoặc tương tự test mẫu
mà không xử lý được các trường hợp đặc biệt mà bài toán có thể gặp.
* Đối với trường hợp chữa bài cho học sinh.
- Đối với c lỗi pháp thì thường được chương trình dịch thông báo
các lỗi và giáo viên sẽ dựa vào đó để tìm ra lỗi cụ thể để khắc phục.
- Đối với các lỗi khi chạy chương trình mới phát sinh thì thường khó
hơn, một số lỗi có thể gặp như sau:
Trường hợp khi học sinh lập trình bài làm của học sinh khi chạy
chương trìnhkết quả lúc đúng với output đề bài lúc không đúng với output
đề bài, trong trường hợp này giáo viên thường thực hiện kiểm tra lại theo 2
cách:
C1: kiểm tra học sinh có hiểu đúng input và output
C2: kiểm tra giải thuật của học sinh có chính xác không, nếu giải
thuật đúng thì thực hiện kiểm tra cách cài đặt thuật toán bằng ngôn ngữ lập
trình để tìm lỗi.
Trường hợp học sinh viết chạy trên phần mềm này thì được phần mềm
khác thì không (viết trên Free pascal thì chạy Tubo pascal thì không),
trường hợp này giáo viên thường phải kiểm tra lại các hàm học sinh viết
trên Free pascal được hỗ trợ trên Tubo pacal không, hoặc các thông số hệ
thống như giới hạn bộ nhớ ,vv..
Hoặc trường hợp cùng một giải thuật, ngôn ngữ lập trình này thì
chương trình chạy được ngôn ngữ khác thì không trường hợp này giáo viên
phải kiểm tra lại các khai báo, các kiểu dữ liệu,vv.. mà các ngôn ngữ lập trình
hỗ trợ.
Trường hợp khi thực hiện chương trìnhxuất hiện các dữ liệu không
mong muốn đầu ra khi đó giáo viên phải kiểm tra lại toàn bộ nguồn của
chương trình xem xuất hiện dữ liệu dư thừa ở giai đoạn nào của chương trình.
Đối với những trường hợp này hiện nay cũng thường phụ thuộc vào trình độ
và kinh nghiệm của giáo viên để phát hiện và xử lý lỗi.
5