Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
672 KB
Nội dung
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – 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 năm 2022 MỤC LỤC Tên sáng kiến, lĩnh vực áp dụng .2 Nội dung Hiệu kinh tế xã hội dự kiến đạt Điều kiện khả áp dụng PHỤ LỤC 10 TÀI LIỆU THAM KHẢO .28 CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập- Tự – 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 Đào tạo Ninh Bình Tơi ghi tên đây: Ngày STT Họ tên tháng năm sinh Lê Cao Duy 1987 Nơi công tác (hoặc nơi Chức vụ thường trú) Trường THPT Trần Hưng Đạo Trình độ Tỉ lệ (%) đóng chuyên góp vào việc tạo môn sáng kiến Thạc Giáo Viên sĩ Công Nghệ 100% Thông Tin 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Ố 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” Lĩnh vực áp dụng sáng kiến: Lĩnh vực giáo dục – môn tin học cấp THPT Nội dung Hiện nay, trình dạy học lập trình chương trình tin học Nhiệm vụ đề chữa cho học sinh nhiệm vụ diễn thường xuyên Việc kiểm tra đánh giá, chữa học sinh, giúp kiểm tra phát lỗi có chương trình làm việc quan trọng giúp học sinh hiểu lỗi sai, từ khắc phục, rút kinh nghiệm Khi giảng dạy tốn lập trình giáo viên ngồi giảng dạy lý thuyết phần giao tập cho học sinh thực q trình khơng thể thiếu để học sinh thực hành vận dụng kiến thức học để thực toán giao Khi giáo viên đề việc viết mã nguồn chương trình cho đề việc tạo test việc quan trọng giúp giáo viên kiểm tra chương trình, phát trường hợp mà chương trình học sinh chưa xử lý, khơng xử lý thực sai Việc tạo test đa số dựa kinh nghiệm thầy cô đề dựa chương trình tạo test tự động, tài liệu nói vấn đề tạo test cho lập trình có nói chưa đề cập chi tiết đến cách tạo test cho hiệu Việc chữa cho học sinh giáo viên thường gặp 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 dựa vào thông báo lỗi để xử lý giúp cho học sinh làm bài, Với TH2 giáo viên kiểm tra chương trình thường test đề có, dựa giải thuật toán mà học sinh làm để phát trường hợp sinh lỗi Cơng việc chữa cho học sinh ngồi sử dụng cơng cụ hỗ trợ chương trình soạn thảo lập trình để tìm lỗi cú pháp việc tìm lỗi mắc phải học sinh lỗi cấu trúc liệu giải thuật, vv… đa số giáo viên làm nhiều gặp nhiều lỗi dễ phát 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 giải pháp cũ * Đối với trường hợp tạo test cho đề: - Trường hợp việc tạo test cho làm, giáo viên thường dựa kinh nghiệm thân để tạo test cho có khả phát lỗi cao Do việc tạo test cho có hiệu vấn đề quan trọng thiết Đối với giáo viên trường kinh nghiệm tạo test việc tạo test hiệu để phát lỗi thường khó tạo test khơng hiệu quả, không phát lỗi - Việc tạo test khơng đánh giá hết trường hợp mà tốn xảy Số lượng test nhiều khơng bao phủ tồn tốn (các test yếu) Người đề khơng có trình độ cao kinh nghiệm thường cho test có đầu vào giống tương tự test mẫu mà không xử lý trường hợp đặc biệt mà tốn gặp * Đối với trường hợp chữa cho học sinh - Đối với lỗi cú pháp thường chương trình dịch thơng báo lỗi giáo viên dựa vào để tìm lỗi cụ thể để khắc phục - Đối với lỗi chạy chương trình phát sinh thường khó hơn, số lỗi gặp sau: Trường hợp học sinh lập trình mà làm học sinh chạy chương trình có kết lúc với output đề lúc không với output đề bài, trường hợp giáo viên thường thực kiểm tra lại theo cách: C1: kiểm tra học sinh có hiểu input output C2: kiểm tra giải thuật học sinh có xác khơng, giải thuật thực kiểm tra cách cài đặt thuật tốn ngơn ngữ lập trình để tìm lỗi Trường hợp học sinh viết chạy phần mềm phần mềm khác khơng (viết Free pascal chạy mà Tubo pascal khơng), trường hợp giáo viên thường phải kiểm tra lại hàm mà học sinh viết Free pascal có hỗ trợ Tubo pacal khơng, thông số hệ thống giới hạn nhớ ,vv Hoặc trường hợp giải thuật, ngôn ngữ lập trình chương trình chạy ngơn ngữ khác khơng trường hợp giáo viên phải kiểm tra lại khai báo, kiểu liệu,vv mà ngơn ngữ lập trình hỗ trợ Trường hợp thực chương trình mà xuất liệu khơng mong muốn đầu giáo viên phải kiểm tra lại toàn mã nguồn chương trình xem xuất liệu dư thừa giai đoạn chương trình Đối với trường hợp thường phụ thuộc vào trình độ kinh nghiệm giáo viên để phát xử lý lỗi - Ưu điểm: + trường hợp tạo test cho đề, giáo viên tạo số test cho tốn + Đối với việc chữa xác định lỗi thường nằm đâu từ tìm nhanh lỗi có chương trình - Nhược điểm: Việc thực kiểm tra chương trình trước thường dựa kinh nghiệm thầy cô giáo, thầy cô dạy nhiều gặp nhiều trường hợp lỗi có nhiều kinh nghiệm để phát sửa lỗi Điều dẫn đến có tốn phát lỗi phát lỗi sớm có tốn phát lỗi muộn không phát lỗi Phát lỗi trường hợp giáo viên thường thực sau: - Cách 1: Đưa vào test input khác để kiểm tra toán - Cách 2: Đọc mã nguồn học sinh để phát lỗi phát sinh thực chương trình để tìm lỗi Với cách thứ nhất, vấn đề đặt test input không phủ hết trường hợp tốn, test khơng xác, test dư thừa khơng phát lỗi tốn dẫn tới toán từ trở thành sai Với cách thứ 2, để đọc mã nguồn để phát lỗi phát sinh địi hỏi giáo viên phải hiểu xâu lập trình gặp q trình lập trình trước phát lỗi Do vấn đề đặt là: - Thứ nhất, có kĩ thuật phương pháp để thiết kế test cho thật tối ưu hiệu để kiểm tra toán giúp giáo viên tạo nhanh test test lại đủ mạnh để bao phủ trường hợp toán - Thứ 2, chữa cho học sinh việc sử dụng test để kiểm tra có kĩ thuật phương pháp để giúp giáo viên học sinh tránh lỗi nhanh chóng phát lỗi gặp phải b Giải pháp cải tiến: - Mô tả chất giải pháp Trong trình học tập cơng tác thân, qua tìm hiểu quy trình phát triển phần mềm kiểm tra phần mềm (kiểm thử phần mềm) khâu quan trọng, chiếm tới 25% 50% tổng giá trị phần mềm[2] Do yêu cầu thiết nên quy trình kiểm thử phần mềm ngày quan tâm phát triển Hiện nay, có nhiều phương pháp kĩ thuật để tìm phát lỗi phần mềm phát triển sử dụng Công việc kiểm thử phần mềm ngày quan tâm phát triển, từ có nhiều cơng cụ tài liệu nghiên cứu công ty cá nhân phát triển phần mềm nghiên cứu phát triển, cá nhân tơi tìm hiểu vận dụng kĩ thuật kiểm thử phần mềm vào tốn lập trình cho học sinh trung học phổ thông nhằm nâng cao chất lượng giảng dạy cho học sinh đặc biệt học sinh giỏi Kết tìm hiểu giải pháp tơi xin trình bày phần “PHỤ LỤC” kèm tài liệu - Tính mới, sáng tạo giải pháp * Đối với học sinh + Tạo test mạnh giúp học sinh tự bồi dưỡng kĩ lập trình từ tạo hứng thú, truyền cảm hứng đam mê cho học sinh hoạt động học tập + Học sinh tự kiểm tra chương trình viết, khắc phục lỗi thường gặp, từ tự nâng cao kiến thức kĩ lập trình, tăng kinh nghiệm cho thân trình học + Tăng cường khả làm vệc độc lập khả làm việc nhóm giúp nâng cao kiến thức kĩ cho học sinh * Đối với giáo viên + Giáo viên thay đổi cách kiểm tra chương trình, giáo viên giảng dạy kiểm tra chương trình cách tồn diện Việc tạo test trở nên đơn giản hơn, nhanh chóng khơng làm giảm bao phủ test toán + Phát nhanh trường hợp có lỗi tránh lỗi phát sinh lập trình thực thi chương trình từ làm giảm thời gian công sức giáo viên việc chữa đề cho học sinh + Có quy trình kiểm tra đầy đủ hồn chỉnh tránh bỏ sót Các quy trình, bước thực dựa tài liệu nghiên cứu giảng viên chuyên gia lĩnh vực công nghệ thông tin nói chung cơng nghệ phần mềm nói riêng áp dụng triển khai công ty công nghệ + Giảm bớt thời gian chấm, kiểm tra chương trình học sinh giúp nâng cao hiệu q trình giảng dạy Thơng qua việc chấm chữa cho học sinh giúp giáo viên nhanh chóng phát thiếu sót học sinh từ có hỗ trợ cho học sinh Sau áp dụng đề tài vào trình dạy bồi dưỡng học sinh giỏi trường Tôi kiểm tra đánh giá chất lượng học sinh giỏi, kết thi sau: Kì thi Chọn HSG Lớp 12 Cấp Trường - lần Chọn HSG Lớp 12 Cấp Trường - lần Chọn HSG Tỉnh Lớp 12 Họ Tên Nguyễn Hữu Niên Văn Đình Quân Nguyễn Hữu Niên Văn Đình Quân Nguyễn Hữu Niên Văn Đình Điểm Điểm Điểm Điểm Tổng câu câu câu câu Điểm 5/6 4/5 2/5 0/4 11/20 5/6 3/5 2/5 0/4 10/20 6/6 5/5 4/5 2/5 17/20 6/6 4/5 3/5 1/5 14/20 6/6 5/5 3.4/5 3/4 17.4/20 6/6 4/5 2.6/5 2/4 14.6/20 Quân So sánh kết thi dễ nhận thấy kết thi lần thi sau học sinh có điểm cao lần thi trước đề có độ khó tăng dần Đặc biệt học sinh có xu hướng lấy trọn vẹn điểm có độ khó dạng trung bình Do học sinh dần biết phân tích vận dụng kiến thức kĩ thuật lập trình thành thạo hơn, mắc lỗi từ lấy hết điểm bài, tránh bị điểm trường hợp liệu có giá trị đặc biệt Hiệu kinh tế xã hội dự kiến đạt - Hiệu kinh tế: + Sáng kiến giúp học sinh giáo viên phát lỗi sớm, làm giảm thời gian chữa giúp giáo viên trang bị thêm kiến thức Ngồi cịn giúp giáo viên học sinh giảm thời gian kiểm tra chương trình, qua nâng cao trình độ giáo viên học sinh + Tăng cường khả học tự học tạo hứng thú cho học sinh Từ góp phần hình thành lực khác mà xã hội yêu cầu góp phần tạo nên học sinh có đủ phẩm chất lực mà chương trình giáo dục phổ thơng hướng tới, qua giúp tạo nguồn nhân lực chất lượng cao góp phần mang lại phát triển kinh tế cho đất nước - Hiệu xã hội: Việc áp dụng sáng kiến giúp khả tự học tự tìm tòi giáo viên học sinh nâng cao Việc áp dụng giúp học sinh tự bồi dưỡng kiến thức cách chủ động hiệu quả, giáo viên khơng ngừng tự bồi dưỡng kiến thức phương pháp dạy học Chương trình tin học khối THPT đánh giá trừu tượng khơ khan u cầu giáo viên không ngừng trau dồi kiến thức nhiều lĩnh vực, cách đề kiểm tra lời giải điểm quan trọng để tạo yêu thích tin học cho học sinh tránh nhàm chán khó khăn q trình học Qua việc áp dụng sáng kiến giúp giáo viên hiểu trình bày nội dung lời giải cách khoa học, có hệ thống tránh việc chữa đề cách chiếu lệ hình thức Điều kiện khả áp dụng - Điều kiện áp dụng: + Thơng qua việc áp dụng quy trình kiểm thử phần mềm vào trình đề kiểm tra lời giải cho tốn lập trình cho giáo viên học sinh tạo điều kiện cho giáo viên thuận lợi việc dạy học theo phương pháp tích cực + Học sinh trang bị kiến thức cách tốt để tự giải tập khơng khó khăn - Khả áp dụng: + 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” triển khai trường THPT Trần Hưng Đạo + Sáng kiến có khả áp dụng với đối tượng học sinh từ cấp THCS đến cấp THPT trường thuộc địa bàn khác - Danh sách giáo viên tham gia áp dụng sáng kiến lần đầu: TT Họ Ngày Nơi cơng Chức Trình độ Nội dung tên tháng tác danh chuyên công việc môn Thạc Sỹ hỗ trợ Giảng dạy Công Nghệ môn tin năm sinh Lê Cao Duy Trường 08/04/1987 THPT Trần Giáo viên Hưng Đạo Thông Tin học thpt Tôi xin cam đoan thông tin nêu thật hoàn toàn chịu trách nhiệm trước pháp luật nội dung theo đơn đề nghị Tôi xin chân thành cảm ơn! Ninh Bình, Ngày 28 tháng 04 năm 2022 XÁC NHẬN CỦA LÃNH ĐẠO ĐƠN VỊ Người nộp đơn CƠ SỞ Lê Cao Duy Do đó, test case thiết kế dựa use case giúp test yêu cầu nghiệp vụ, chức 4.2 Kỹ thuật structure-based (Kiểm thử hộp trắng) Nhóm kỹ thuật structure-based giúp tester kiểm thử cấu trúc cách vận hành bên phần mềm Cấu trúc phần mềm thường bao gồm code (mã), control flow (luồng điều khiển), data flow (luồng liệu),… Lúc này, tester nạp input để thực thi code kiểm tra đối chiếu output thu Vì có liên quan đến cấu trúc phần mềm nên tester phải có kiến thức lập trình Phương pháp kiểm thử hộp trắng dựa trên: - Các câu lệnh (statement) - Đường dẫn (path) - Các điều kiện (condition) - Vòng lặp (loop) - Ngã rẽ (branch) Dưới kỹ thuật thiết kế test case thuộc nhóm structure-based: a Statement testing (kiểm thử câu lệnh) Trong kỹ thuật statement testing, câu lệnh cấu trúc code thực thi lần Qua đó, tester test cách vận hành tồn source code (mã nguồn) phần mềm Tuy nhiên, tester khơng thể kiểm thử điều kiện sai mà thực thi điều kiện b Decision testing (kiểm thử định) Decision testing thực thi, test định dựa decision result (kết định) Để làm điều này, test case theo control flow từ decision point (điểm định) Decision testing giúp kiểm thử xem có câu lệnh khơng thể truy cập hay gây bất thường không c Condition testing (kiểm thử điều kiện) Condition testing dùng để test biểu thức Boolean có dạng True (đúng) False (sai) Mỗi biểu thức Boolean thực thi lần tham số True False Với kỹ thuật này, test case thiết kế để điều kiện Boolean thực thi dễ dàng 15 d Multiple condition testing (kiểm thử đa điều kiện) Mục đích kỹ thuật kiểm thử tổ hợp điều kiện định Cơng thức tính số tổ hợp lũy thừa bậc N, với N số biến điều kiện Số lượng tổ hợp số lượng test case mà bạn phải dùng e Path testing (kiểm thử lộ trình) Trong kỹ thuật này, tester test câu lệnh có source code để tìm lỗi Việc giúp xác định lỗi tiềm ẩn đoạn code Tuy nhiên, tester không nên áp dụng kỹ thuật path testing kiểm thử phần mềm phức tạp Với cấu trúc code phức tạp, số test case hay câu lệnh mà bạn phải kiểm thử nhiều 4.3 Kiểm thử hộp xám Kiểm thử hộp xám liên quan đến hiểu biết cấu trúc liệu bên thuật tốn cho mục đích kiểm thử thiết kế Khi thực kiểm thử với User mức độ hộp đen, Tester không thiết phải truy cập vào mã nguồn phần mềm[2] Ta thao tác với liệu đầu vào định dạng đầu không xác định hộp xám đầu vào đầu rõ ràng bên "hộp đen" mà chúng hệ thống gọi trình kiểm thử Sự phân biệt đặc biệt quan trọng tiến hành kiểm thử tích hợp hai Module viết mã hai nhà phát triển khác nhau, mà có giao diện bộc lộ để kiểm thử.Tuy nhiên, kiểm thử mà yêu cầu thay kho lưu trữ liệu back-end sở liệu tập tin đăng nhập không xác định hộp xám, người dùng thay đổi kho lưu trữ liệu sản phẩm hoạt động bình thường Kiểm thử hộp xám bao gồm kỹ thuật đảo ngược để xác định đối tượng, giá trị biên thông báo lỗi II Vận dụng số kĩ thuật kiểm thử phần mềm vào toán cụ thể Kiểm thử phần mềm phát triển mạnh, có nhiều tài liệu phương pháp khác để thực cho dự án phần mềm Và 16 phương pháp có tên gọi khác có phương thức hoạt động Do phạm vi kiến thức cá nhân tìm hiểu đặc thù tốn lập trình giảng dạy cấp phổ thơng nên tốn đây, tơi trình bày việc ứng dụng kiểm thử phần mềm vào khía cạnh nêu phần việc tạo test cho tốn cho mạnh, hiệu việc kiểm tra mã nguồn toán để phát lỗi Đối với tốn khác ta có phương pháp test khác nhau, khơng có cơng thức chung cả, với kĩ thuật u cầu tốn mà kiểm thử viên định kĩ thuật phù hợp Tuy dựa vào lý thuyết phần 3.1 ta tạm chia thành hướng lớn sau: a Nếu cần quan tâm có lỗi hay khơng(khơng cần biết lỗi đâu) ta nên dùng kĩ thuật kiểm thử hộp đen (trường hợp thường dùng cho chấm thi kiểm tra nhanh chương trình có theo u cầu) Ta khơng cần biết mã nguồn hay viết ngơn ngữ hay có đoạn mã viết mà khơng sử dụng,vv b Nếu quan tâm tới lỗi chỗ lỗi nên dùng kĩ thuật kiểm thử hộp trắng, hộp xám (dùng q trình học tập ơn luyện) Việc áp dụng kĩ thuật địi hỏi người kiểm tra phải thơng thạo ngơn ngữ lập trình viết am hiểu giải thuật lập trình Đối với trường hợp kiểm tra mã nguồn toán để phát lỗi tiềm ẩn toán nhiệm vụ phức tạp địi hỏi giáo viên phải có am hiểu xâu ngơn ngữ lập trình mà chương trình sử dụng nắm vững cấu trúc liệu giải thuật Do với việc kiểm tra mã nguồn toán ta thường áp dụng kiểm thử hộp trắng hộp xám để tìm phát lỗi Quy trình sử dụng kiểm thử hộp trắng hộp xám qua tài liệu nghiên cứu phương pháp kiểm thử phức tạp để thực theo nhiều bước, nhiên việc lập trình giảng dạy tin học cấp THPT tập lập trình thi đấu học tập thường có mã nguồn tương đối ngắn (trong thi thi lập trình thường kéo dài từ đến tiếng/bài) nên nhân 17 khơng trình bày chi tiết kĩ thuật kiểm thử hộp trắng mà đưa nội dung mà cá nhân tìm hiểu vận dụng Bài tốn Mật Khẩu a Đề bài: Hiện nay, tình trạng ăn cắp thông tin cá nhân người dùng diễn thường xun Do việc bảo vệ thơng tin cá nhân tổ chức cá nhân quan tâm Một phương pháp bảo vệ thông tin hữu hiệu đặt mật Mật coi an tồn phải có từ kí tự trở lên có đủ loại: Chữ Latinh in hoa [‘A’ ‘Z’], chữ Latinh in thường [‘a’ ‘z’], kí tự đặc biệt (!,@,#,$,%, ) chữ số [‘0’ ‘9’] Ví dụ: Xâu ‘Tinhoc@019’ coi mật an tồn, cịn xâu ‘hsgtin2019’ khơng phải mật an toàn[4] Yêu cầu: Cho xâu S Đếm xem có xâu gồm kí tự liên tiếp xâu S để xâu mật an tồn Biết xâu giống hoàn toàn coi cách Dữ liệu vào: File PASSWORD.INP Gồm dòng chứa xâu S có độ dài n kí tự (6 ≤ n ≤ 255) Dữ liệu ra: File PASSWORD.OUT ghi số số lượng mật an tồn tìm u cầu thời gian chạy chương trình khơng q 1s/test nhớ 1Gb b Phân tích: * Vận Dụng Kiểm Thử Hộp Đen Việc sinh test cho tốn ta phân tích đề để xác định yêu cầu, cụ thể tốn cho xâu S với ràng buộc chương trình thực không 1s nhớ tố đa 1Gb Vận dụng kĩ thuật kiểm thử hộp đen vào toán ta thấy: - Trường hợp(TH) áp dụng kĩ thuật phân vùng tương đương tốn ta chia thành vùng tương đương sau: S xâu có độ dài n kí tự (6 ≤ n ≤ 255) nên ta có phân vùng n < 6, phân vùng từ 255, 18 phân vùng số lớn 255 Với n < ta thấy chuối kí tự nên chuỗi nhỏ chuỗi rỗng nên ta phải phân vùng thành < n < Do ta tạo test cho phân vùng để kiểm tra S = kí tự (n255) - Áp dụng kĩ thuật phân tích giá trị biên với phân vùng tương đương ta có tương ứng giá trị biên sau: n = n = 255 n = Do ta tạo test cho giá trị biên để kiểm tra Lưu ý giá trị biên sử dụng cho phân vùng số liên tục số ngun số thực, cịn dải số khơng liên tục liệt kê khơng áp dụng khơng có mối liên hệ Từ kĩ thuật ta tạo test để kiểm tra là: Trường hợp: n255 Trường hợp: < n < 255 Trường hơp: n=6 Trường hợp: n = 255 Trường hợp: n=0 - Kĩ thuật dùng bảng định dùng kết hợp input để đánh giá output nên ta nhận thấy giá trị n255 miền giá trị mà n không thỏa mãn giá trị thỏa mãn năm khoảng ≤ n ≤ 255 nên ta tạo test thỏa mãn khoảng sau: tạo bảng gồm số cột số kết điều kiện nhân với có điều kiện, điều kiện có kết true false nên ta có: 2^4 =16 Kí tự 1 1 1 1 Chữ thườn g Chữ Hoa T T T T T T T T F F F F F F F F T T T T F F F F T T T T F F F F 19