Danh mục

Đánh giá hiệu quả của kỹ thuật học máy trong việc dự đoán lỗi cho phần mềm Java

Số trang: 8      Loại file: pdf      Dung lượng: 661.43 KB      Lượt xem: 12      Lượt tải: 0    
tailieu_vip

Hỗ trợ phí lưu trữ khi tải xuống: 1,000 VND Tải xuống file đầy đủ (8 trang) 0

Báo xấu

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Nghiên cứu này đánh giá việc áp dụng các thuật toán học có giám sát phổ biến hiện nay vào dự đoán lỗi các phần mềm Java. Tiến hành thử nghiệm với 07 thuật toán phổ biến trên tập dữ liệu tera-Promise, kết quả cho thấy, có hai thuật toán hiệu quả nhất là mạng neuron nhân tạo nhiều lớp (đối với bài toán dự đoán lỗi hướng đối tượng) và Naïve Bayes (đối với bài toán dự đoán lỗi hướng phương thức).
Nội dung trích xuất từ tài liệu:
Đánh giá hiệu quả của kỹ thuật học máy trong việc dự đoán lỗi cho phần mềm Java 204 KỶ YẾU HỘI THẢO KHOA HỌC QUỐC GIA CITA 2017 “CNTT VÀ ỨNG DỤNG TRONG CÁC LĨNH VỰC” Đánh giá hiệu quả của kỹ thuật học máy trong việc dự đoán lỗi cho phần mềm Java Trần Duy Hùng1, Lê Thị Mỹ Hạnh1 1 Trường Đại học Bách Khoa, Đại học Đà Nẵng Tóm tắt. Dự đoán lỗi phần mềm là một hoạt động vô cùng quan trọng, giúp cho nhà phát triển phát hiện kịp thời những lỗi bị bỏ sót trong quá trình kiểm thử phần mềm, làm tăng chất lượng phần mềm, đồng thời giảm rủi ro khi phát triển sản phẩm. Ở nghiên cứu này, chúng tôi đánh giá việc áp dụng các thuật toán học có giám sát phổ biến hiện nay vào dự đoán lỗi các phần mềm Java. Chúng tôi tiến hành thử nghiệm với 07 thuật toán phổ biến trên tập dữ liệu tera-Promise, kết quả cho thấy, có hai thuật toán hiệu quả nhất là mạng neuron nhân tạo nhiều lớp (đối với bài toán dự đoán lỗi hướng đối tượng) và Naïve Bayes (đối với bài toán dự đoán lỗi hướng phương thức). Những kết quả này là bước đầu cho các nghiên cứu ứng dụng các phương pháp học máy mới vào bài toán dự đoán lỗi phần mềm Java. Từ khóa: Học có giám sát, dự đoán lỗi phần mềm, độ đo phần mềm, Java. 1 Giới thiệu Phầm mềm đã và đang là một thành phần không thể thiếu trong mọi lĩnh vực của cuộc sống: từ giáo dục cho đến y tế, từ kinh tế cho đến quốc phòng,… đâu đâu cũng có sự góp mặt của phần mềm. Nhu cầu sử dụng ngày càng tăng khiến cho các dự án phần mềm ngày càng trở nên phức tạp. Dự án càng lớn thì việc kiểm thử phần mềm càng tốn kém và phức tạp, nguy cơ bỏ sót những lỗi nghiêm trọng trong quá trình kiểm thử ngày càng cao và tổn thất gây ra do lỗi phần mềm ngày càng trở nên nghiêm trọng. Đảm bảo chất lượng sản phẩm chính là đảm bảo các sản phẩm phần mềm đến tay khách hàng không còn lỗi, các yêu cầu của khách hàng được thỏa mãn, tối ưu nguồn lực thực hiện dự án. Do đó việc kiểm tra để phát hiện lỗi nên được thực hiện xuyên suốt quá trình thực hiện dự án phần mềm. Phát hiện lỗi càng sớm nguồn lực và rủi ro của dự án phần mềm càng giảm. Trên thực tế các công ty phần mềm thường chờ đến khi kết thúc giai đoạn lập trình mới tiến hành kiểm tra lỗi của chương trinh, do đó các lỗi nghiêm trọng của dự án sẽ được phát hiện muộn, tốn rất nhiều nguồn lực để quay lại thực hiện lập trình từ đầu. Việc kiểm tra chương trình ngay trong giai đoạn lập trình sẽ giúp phát hiện ra các sai sót kịp thời: các vấn đề tiềm ẩn, các lỗi thời gian thực hoặc có thể sửa lỗi ngay từ ý tưởng thiết kế trước khi đóng gói bàn giao toàn bộ chương trình cho nhóm kiểm thử thực hiện. Để giúp quá trình sửa lỗi được thực hiện hiệu quả, người quản lý dự án cần có thông tin càng chính xác càng tốt về khả năng có lỗi của từng thành phần cụ thể trong hệ thống. Mặc dù biết chính xác thành phần nào có lỗi là vấn đề khó, một số nghiên cứu gần đây (1), (2), (3), (4) cho thấy, dựa trên những thông tin về hệ thống cũng như quá trình phát triển phần mềm, ta có thể dự đoán với một độ chính xác nhất định khả năng có lỗi hay số lượng lỗi trong các thành phần của hệ thống phần mềm được xây dựng. Trần Duy Hùng, Lê Thị Mỹ Hạnh 205 Có khá nhiều phương pháp và cách tiếp cận khác nhau trong việc dự đoán lỗi phần mềm, như Naïve Bayes (1), rừng ngẫu nhiên (Random Forest) (2), máy véc-tơ hỗ trợ SVM (3) và mạng nơ-ron nhân tạo ANN (4),... Hầu hết tất cả các nghiên cứu dự đoán lỗi phần mềm sử dụng các độ đo và dữ liệu lỗi của các phiên bản phần mềm trước để xây dựng các mô hình dự đoán lỗi, gọi là các cách tiếp cận học có giám sát. Để xây dựng mô hình dự đoán lỗi phần mềm các nghiên cứu sử dụng kỹ thuật học máy để dự đoán bằng cách sử dụng các phép đo cấu trúc mã nguồn trong các lớp, phương thức, gọi là các đặc trưng phần mềm. Những đặc trưng này được trích xuất bằng việc phân tích mã nguồn của chương trình và cũng chính là cơ sở để đánh giá độ phức tạp của phần mềm. Các phân lớp học máy có giám sát bao gồm 02 giai đọan: giai đoạn huấn luyện và giai đoạn kiểm tra; kết quả của giai đoạn huấn luyện là một mô hình được áp dụng cho các dữ liệu kiểm tra để thực hiện một vài dự đoán (5). Có một vài cách tiếp cận khác như phân cụm, được dùng khi không có sẵn các dữ liệu trước; các phương pháp này gọi là các cách tiếp cận học không giám sát. Trong nghiên cứu này, chúng tôi bước đầu phân tích về dự đoán lỗi cho phần mềm Java sử dụng các kỹ thuật học máy có giám sát và đánh giá hiệu quả của các kỹ thuật này trên bài toán dự đoán lỗi dựa vào các đặc trưng mã nguồn phần mềm. Thực nghiệm được tiến hành trên 02 tập dữ liệu NASA với kích thước và tập đặc trưng khác nhau. Phần tiếp theo của nghiên cứu sẽ trình bày những nội dung chính như sau: Phần 2 trình bày tổng quan dự đoán lỗi dựa vào đặc trưng mã nguồn phần mềm. Phần 3 trình bày về quy trình huấn luyện mô hình dự đoán lỗi phần mềm và việc áp dụng các thuật toán học máy vào bài toán cũng như các độ đo đánh giá hiệu quả của các thuật toán. Phần 4 là kết quả thực nghiệm và phần cuối cùng là kết luận. 2 Dự đoán lỗi dựa vào đặc trưng mã nguồn phần mềm Dự đoán lỗi phần mềm là phương pháp đánh giá các thành phần trong hệ thống phần mềm và xác định những thành phần có khả năng có lỗi. Việc dự đoán lỗi có thể chỉ ra vị trí của lỗi, lỗi như thế nào trong một thành phần phần mềm hoặc đơn giản là chỉ ra những thành phần nào có khả năng có lỗi, thành phần nào chứa nhiều lỗi, thành phần nào chưa ít lỗi hơn. Các đặc trưng mã nguồn đóng một vai trò quan trọng để xây dựng các mô hình dự đoán lỗi và được trích xuất trực tiếp từ mã nguồn chương trình. Mã nguồn càng phức tạp thì phần mềm càng có khả năng tồn tại nhiều lỗi. Để đo độ phức tạp của mã nguồn, các nhà nghiên cứu đã đề xuất nhiều phép đo các đặc trưng mã nguồn. LOC (Line ...

Tài liệu được xem nhiều: