1. Trang chủ
  2. » Tất cả

Luận văn phương pháp sinh dữ liệu kiểm thử tự động từ mã nguồn và ứng dụng xây dựng hệ thống chấm bài lập trình1

47 8 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 47
Dung lượng 886,64 KB

Nội dung

1 Chƣơng 1 Mở đầu Hiện nay, môn học lập trình đã được đưa vào giảng dạy ở các trường Trung học phổ thông (THPT) trên toàn quốc, giúp các em học sinh làm quen với công việc lập trình và làm quen dần vớ[.]

1 Chƣơng 1: Mở đầu Hiện nay, môn học lập trình đưa vào giảng dạy trường Trung học phổ thơng (THPT) tồn quốc, giúp em học sinh làm quen với cơng việc lập trình làm quen dần với tư thiết kế thuật tốn Ngơn ngữ lập trình sử dụng để giảng dạy hầu hết trường THPT Pascal Tuy nhiên, theo chương trình giáo dục THPT mới, sở định hướng lập trình tùy chọn ngơn ngữ, nhiều trường THPT bước đầu đưa ngôn ngữ lập trình phổ biến C, Java, v.v vào giảng dạy Trong q trình giảng dạy, cơng việc chấm tập lập trình người giáo viên thường diễn thủ cơng tiềm ẩn nhiều sai sót Do thời gian chấm có hạn nên việc khơng phát lỗi lập trình không tránh khỏi Điều dẫn đến điểm chấm chưa thực xác cơng Làm để cơng việc chấp lập trình dễ dàng với giáo viên, đảm bảo tính xác, rút ngắn thời gian chấm mục tiêu cần hướng tới Đối với tập lập trình, việc chấm rà sốt để phát lỗi có mã nguồn tập học sinh Khi chương trình xuất lỗi cú pháp, lỗi trình biên dịch phát để người lập trình sửa lỗi Tuy nhiên, chương trình khơng có lỗi cú pháp chương trình chưa lỗi xảy q trình thiết kế giải thuật Làm để hỗ trợ giáo viên kiểm tra xem chương trình có thực với đặc tả u cầu tốn hay khơng, phần so với đặc tả toán mục tiêu q trình chấm Hơn nữa, việc giáo viên cung cấp chế cho phép học sinh tự làm tương tác qua ứng dụng nhằm nâng cao khả tự học tăng cường chất lượng xu hướng tất yếu hệ thống giáo dục thời gian tới Vì vậy, nhu cầu toán cấp thiết Để giải vấn đề này, ứng với toán, giáo viên phải sinh ca kiểm thử đủ tốt (có khả phát tất lỗi có lập trình học sinh) Bộ ca kiểm thử sau sử dụng để chấm chương trình cho học sinh nộp (tự động thủ công tùy thuộc vào phương pháp công cụ mà giáo viên sử dụng) Hiện tại, việc sinh ca kiểm thử vượt khả giáo viên Trung học phổ thơng Vì vậy, có công cụ tự động hỗ trợ giáo viên giải tốn vấn đề cấp thiết, có ý nghĩa thực tiễn cao Một giải pháp để giải vấn đề sinh liệu kiểm thử từ mã nguồn sử dụng phương pháp kiểm thử dòng liệu [2, 3, 4, 8, 9, 11] Trong phương pháp này, ứng với đặc tả tốn, thay u cầu giáo viên phải sinh ca kiểm thử, họ phải cung cấp mã nguồn mẫu (mã nguồn toán tương ứng mà khơng có lỗi) Phương pháp tự động sinh ca kiểm thử (bao gồm liệu kiểm thử giá trị đầu mong muốn tương ứng) từ mã nguồn giáo viên cung cấp Sau hồn tất q trình này, giáo viên có liệu kiểm thử bao quát hết nhánh mã nguồn Tuy nhiên, phương pháp [2, 3] cho phép phát lỗi tiềm ẩn mã nguồn (có đặc tả lập trình khơng có đặc tả lập trình) Phương pháp khơng kiểm tra lỗi ứng với tình có đặc tả khơng lập trình (thường phát phương pháp kiểm thử hộp đen) Phương pháp đề xuất [2] sinh liệu kiểm thử, chưa sinh đầu mong muốn, khơng hỗ trợ giáo viên việc sinh ca kiểm thử mẫu Trong [3] sinh ca kiểm thử cho mã nguồn Java chưa hỗ trợ xây dựng hệ thống chấm Mục tiêu luận văn hướng đến nghiên cứu giải pháp xây dựng công cụ hỗ trợ giáo viên chấm lập trình cách tự động nhằm giải vấn đề mô tả Mấu chốt giải pháp phương pháp sinh liệu kiểm thử từ mã nguồn Bản chất phương pháp phụ thuộc vào ngơn ngữ lập trình sử dụng (mỗi ngơn ngữ lập trình thường có kỹ thuật sinh liệu kiểm thử khác cần phải phân tích mã nguồn) Mặc dù ngơn ngữ lập trình dùng phổ biến trường Trung học phổ thơng Pascal ngơn ngữ chưa có cơng cụ phân tích cú pháp (nền tảng cho việc xây dựng đồ thị dịng điều khiển) Vì vậy, phương pháp sinh liệu kiểm thử từ mã nguồn Pascal khó thực luận văn Ngơn ngữ C/C++ quan tâm nghiên cứu với giải pháp tốt [2] Vì vậy, luận văn tập trung nghiên cứu giải pháp cho ngôn ngữ Java Trong [3] nghiên cứu giải pháp tương tự cho Java dừng lại với đơn vị chương trình (hàm, phương thức) Phương pháp sử dụng chương trình viết phương pháp hướng đối tượng Tuy nhiên, học sinh trường Trung học phổ thơng thường viết chương trình theo phương pháp hướng cấu trúc nên giải pháp không sử dụng Cùng với phương pháp này, luận văn nghiên cứu kỹ thuật kiểm thử hộp đen nhằm sinh bổ sung ca kiểm thử cho phương pháp Một công cụ hỗ trợ phát triển thực nghiệm với số chương trình đơn giản bậc Trung học phổ thông nhằm minh chứng cho kết luận văn Phần lại đề tài nghiên cứu gồm nội dung sau Chương trình bày tổng quan phương pháp sinh liệu kiểm thử dòng điều khiển từ mã nguồn Đây phương pháp chung, áp dụng cho nhiều ngơn ngữ lập trình khác nhau, chương đề xuất phương pháp phân tích mã nguồn Java nhằm sinh ca kiểm thử cho hàm Java Chương giới thiệu công cụ hỗ trợ sinh ca kiểm thử tự động kết thực nghiệm cách áp dụng cơng cụ, cài đặt với số chương trình đơn giản Cuối cùng, kết luận hướng nghiên cứu luận văn mô tả Chương Chƣơng 2: Phƣơng pháp sinh liệu kiểm thử dịng điều khiển Chương trình bày tổng quan phương pháp kiểm thử dòng điều khiển từ đồ thị dòng điều khiển (Control Flow Graph - CFG) chương trình nhằm sinh ca kiểm thử cho mã nguồn ứng với tiêu chí kiểm thử yêu cầu Phương pháp trình bày chương áp dụng cho hầu hết ngơn ngữ lập trình 2.1 Tổng quan kiểm thử dòng điều khiển Kiểm thử dòng điều khiển phương pháp kiểm thử hộp trắng nhằm phát lỗi tiềm ẩn xảy mã nguồn [1, 6] Phương pháp dựa vào việc phân tích mã nguồn nhằm xây dựng đồ thị dòng điều khiển ứng với tiêu chí kiểm thử cho trước Dựa vào đồ thị này, liệu kiểm thử sinh đáp ứng 100% tiêu chí kiểm thử yêu cầu Người sử dụng sử dụng đặc tả toán để sinh ca kiểm thử từ liệu kiểm thử sinh Bộ ca kiểm thử sau sử dụng để làm kiểm thử mẫu thực kiểm thử tập lập trình học sinh phục vụ cho trình chấm Mã nguồn Xây dựng CFG Tiêu chí kiểm thử Sinh đường kiểm thử Sinh liệu kiểm thử Sinh đầu mong muốn Thực thi ca kiểm thử Báo cáo kiểm thử Hình 2.1 Tổng quan quy trình kiểm thử dịng điều khiển Quy trình kiểm thử dịng điều khiển hàm mơ tả Hình 2.1 Đầu vào quy trình mã nguồn tiêu chí kiểm thử yêu cầu Đầu quy trình báo cáo kiểm thử chứa kết kiểm thử (ca kiểm thử phát lỗi ca kiểm thử không phát lỗi) Chi tiết phương pháp bao gồm bước sau: - Bước 1: Sinh đồ thị dịng điều khiển Mã nguồn phân tích dựa tiêu chí kiểm thử để xây dựng đồ thị dịng điều khiển Với tiêu chí kiểm thử phủ câu lệnh, phủ nhánh phủ điều kiện con, có đồ thị dịng điều khiển tương ứng - Bước 2: Sinh đường kiểm thử Từ đồ thị dòng điều khiển, luận văn đề xuất thuật toán duyệt đồ thị cho đường kiểm thử sinh đạt độ phủ thỏa mãn tiêu chí đề - Bước 3: Sinh ca kiểm thử Ca kiểm thử bao gồm giá trị đầu vào chọn để thực kiểm thử đường giá trị đầu mong muốn tương ứng (Expected Output – EO) Ca kiểm thử sinh cách hệ ràng buộc đường kiểm thử Giá trị đầu mong muốn sinh từ đặc tả toán Kết thúc bước này, tập ca kiểm thử sinh - Bước 4: Thực thi ca kiểm thử Thực thi ca kiểm thử nhằm tạo báo cáo kiểm thử ca kiểm thử phát lỗi, ca kiểm thử không phát lỗi 2.2 Các tiêu chí kiểm thử Tiêu chí kiểm thử chuẩn mực để đánh giá độ bao phủ tập ca kiểm thử so với mã nguồn Nhằm tối ưu ca kiểm thử, tiêu chí kiểm thử đưa để thiết kế ca kiểm thử cho số ca kiểm thử kiểm tra tối đa trường hợp (có thể mắc lỗi) xảy mã nguồn Các thành phần cần kiểm tra bao gồm câu lệnh, đỉnh định, điều kiện con, đường thi thành kết hợp chúng [1] Có nhiều tiêu chí kiểm thử áp dụng thực tế, ba tiêu chí kiếm thử sử dụng rộng rãi [1, 2]: - Phủ câu lệnh: Sau thực ca kiểm thử, dòng lệnh mã nguồn phải duyệt qua lần Giả sử, ta cần sinh ca kiểm thử cho hàm laNamNhuan có mã nguồn hiển thị Hình 2.2 Để đạt 100% tiêu chí phủ câu lệnh cho hàm, ta cần thực ba ca kiểm thử Bảng 2.1 Giá trị EO (Expected Output) bảng giá trị đầu mong muốn chạy ca kiểm thử, RO (Real Output) giá trị đầu thực tế (giá trị điền chạy ca kiểm thử môi trường thực) public int laNamNhuan(int year) { if(year

Ngày đăng: 16/01/2023, 16:19

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w