1. Trang chủ
  2. » Luận Văn - Báo Cáo

Dự đoán lỗi phần mềm sử dụng kỹ thuật học máy (tt)

18 12 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 18
Dung lượng 352,49 KB

Nội dung

1 HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - NGUYỄN THỊ MAI DỰ ĐOÁN LỖI PHẦN MỀM SỬ DỤNG KỸ THUẬT HỌC MÁY Chuyên ngành: Truyền liệu mạng máy tính Mã số: 60.48.15 - 0009 TĨM TẮT LUẬN VĂN THẠC SĨ Người hướng dẫn khoa học: PGS TS TỪ MINH PHƯƠNG HÀ NỘI - 2010 Mở đầu Giới thiệu Xây dựng dự án phần mềm thành công mối quan tâm hàng đầu tổ chức doanh nghiệp, doanh nghiệp công nghiệp công nghệ thông tin Đặc biệt quan trọng q trình quản lý, kiểm sốt tiến độ đảm bảo chất lượng dự án Các vấn đề thường xảy dự án phần mềm:  Thời gian thực dự án vượt mức dự kiến  Nguồn lực thực dự án vượt mức kiểm soát  Kết dự án không mong muốn  Phát sinh rủi ro Đảm bảo chất lượng sản phẩm đảm bảo sản phẩm phần mềm đến tay khách hàng khơng cịn lỗi, u cầu khách hàng thỏa mãn, tối ưu nguồn lực thực dự án Do việc kiểm tra để phát lỗi nên thực xuyên suốt trình thực dự án phần mềm, từ thu thập, phân tích yêu cầu, đến giai đoạn lập trình, giai đoạn kiểm thử, đến nghiệm thu với khách hàng [4] Phát lỗi sớm nguồn lực rủi ro dự án phần mềm giảm Trên thực tế công ty phần mềm thường chờ đến kết thúc giai đoạn lập trình tiến hành kiểm tra lỗi chương trinh, lỗi nghiêm trọng dự án phát muộn, tốn nhiều nguồn lực để quay lại thực lập trình từ đầu Việc kiểm tra chương trình giai đoạn lập trình giúp phát sai sót kịp thời: vấn đề tiềm ẩn, lỗi thời gian thực sửa lỗi từ ý tưởng thiết kế trước đóng gói bàn giao tồn chương trình cho nhóm kiểm thử thực Để giúp trình sửa lỗi thực hiệu quả, người quản lý dự án cần có thơng tin xác tốt khả có lỗi thành phần cụ thể hệ thống Mặc dù biết xác thành phần có lỗi vấn đề khó, số nghiên cứu gần chó thấy, dựa thơng tin hệ thống trình phát triển phần mềm, ta dự đốn với độ xác định khả có lỗi hay số lượng lỗi thành phần hệ thống phần mềm xây dựng Có nhiều phương pháp cách tiếp cận khác việc dự đoán lỗi phần mềm Các nội dung luận văn tập trung vào kỹ thuật dự đoán lỗi phần mềm sử dụng phương pháp kỹ học máy Mục đích luận văn Mặc dù giới có nhiều phương pháp dự đốn lỗi phần mềm, thơng thường phương pháp dựa số đặc trưng định phần mềm lịch sử phát triển phần mềm Hơn mơ hình học máy dùng cho dự đốn thường tập trung vào mơ hình hồi quy tuyến tính (linear regression) Trong phạm vi luận văn tập trung vào nghiên cứu ảnh hưởng tới độ xác dự đoán lỗi kết hợp dạng đặc trưng phần mềm khác (gồm: OO, Delta, Process) Mục đích quan trọng nghiên cứu áp dụng phương pháp rừng ngẫu nhiên (Random Forest) cho toán dự đoán lỗi, mơ hình phân loại/ hồi quy với nhiều ưu điểm trình bày chi tiết chương luận văn Luận văn đưa kết thử nghiệm cho hệ thống ứng dụng Java có khả chứa lỗi dựa liệu có sẵn đánh giá theo tiêu chí đánh giá hiệu khác (gồm: CE, ROC) [3] Chương trình sử dụng liệu theo nguồn: http://bug.inf.usi.ch Chương TỔNG QUAN VỀ DỰ ĐOÁN LỖI PHÂN MỀM Chương trình bày tổng quan dự đoán lỗi phần mềm đặc biệt áp dụng cho hệ thống Java có khả chứa nhiều lỗi Trong phạm vi quản lý dự án lợi ích đem lại từ việc dự đốn lỗi phần mềm làm giảm nguồn lực dự án, thay việc phải kiểm tra lỗi cho tất lớp hệ thống bao gồm lớp chứa lỗi khơng chứa lỗi dự đốn lớp có khả chứa lỗi sau tập trung nguồn lực kiểm tra lớp dự đoán chứa lỗi Hiện giới có số kỹ thuật xây dựng mơ hình dự đốn lỗi phần mềm nhiên với kỹ thuật lại có ưu nhược điểm khác nhau, chương trình bày ưu nhược điểm kỹ thuật Cuối chương trình bày số dạng đặc trưng phần mềm tham số sử dụng q trình dự đốn lỗi 1.1 DỰ ĐOÁN LỖI PHẦN MỀM 1.1.1 Giới thiệu Trong thuật ngữ chuyên ngành kỹ nghệ phần mềm, Quản lý dự án phần mềm hoạt động lập kế hoạch, giám sát kiểm soát tài nguyên dự án (ví dụ chi phí, người), thời gian thực hiện, rủi ro dự án quy trình thực dự án; nhằm đảm bảo thành cơng cho dự án Trong đảm bảo chất lượng dự án phần mềm cân ba yếu tố: thời gian, tài nguyên chất lượng Ba yếu tố gọi tam giác dự án [15]: Các vấn đề thường xảy dự án phần mềm:  Thời gian thực dự án vượt mức dự kiến  Chi phí thực dự án vượt mức dự kiến  Kết dự án không dự kiến Vấn đề không thực kiểm thử xuyên suốt kịp thời dẫn đến muộn để phát lỗ hổng từ khâu thu thập yêu cầu, phân tích, thiết kế q trình lập trình, cán thực dự án phải quay lại khảo sát từ đầu dẫn đến nguồn lực dự án vượt qua dự kiến, quản trị dự án khơng thể thể kiểm sốt Trong lập trình viên thực kiểm tra lỗi giai đoạn lập trình mang lại lợi ích đáng kể lĩnh vực quản lý dự án 1.1.2 Dự đoán lỗi phần mềm Dự đoán lỗi phần mềm phương pháp đánh giá lớp hệ thống phần mềm để xác định lớp có khả có lỗi dựa vào liệu lịch sử qua lần thay đổi hệ thống Đánh giá lỗi cho hệ thống phần mềm cách dựa vào thay đổi phiên khác qua lần chuyển giao cho khách hàng [3] Trong phạm vi luận văn không đề cập đến việc dự đốn vị trí lỗi, lỗi lớp mà dự đoán lớp có khả có lỗi, lớp chứa nhiều lỗi, lớp chưa lỗi Luận văn tập trung vào việc đưa kỹ thuật dự đoán lỗi phần mềm áp dụng cho hệ thống Java có khả có nhiều lỗi Để xây dựng mơ hình dự đốn lỗi phần mềm hầu hết sử dụng kỹ thuật học máy để dự đoán cách sử dụng phép đo cấu trúc mã nguồn lớp, nhiên số nghiên cứu sử dụng thêm thơng tin khác ví dụ lịch sử thay đổi phiên trước đó: đo cấu trúc mã nguồn lớp, đo xem thay đổi phương thức lớp đươc gọi nào, dựa liệu lịch sử lập trình viên tác động vào lớp ví dụ: có lập trình viên cập nhật lớp, số dòng code hay số lỗi mà lập trình viên gây lớp Trong cơng việc quản lý kiểm sốt nguồn lực dự án việc kiểm sốt nguồn lực giai đoạn phát triển phần mềm đóng vai trị quan trọng Như thay tốn nhiều nguồn lực để kiểm tra sửa lỗi cho toàn lớp sinh hệ thơng sử dụng kỹ thuật dự đoán lỗi để xác định lớp có lỗi từ tập trung sửa lỗi cho lớp giảm 50% chi phí thực cho việc phát triển kiểm tra lỗi giai đoạn lập trình Hiện có nhiều kỹ thuật sử dụng để dự đoán lỗi chưa có đánh giá cụ thể kỹ thuật dự đoán hiệu mà tùy thuộc vào tiêu chí áp dụng để đánh giá cho mơ hình dự đốn Luận văn tập trung vào kỹ thuật dự đoán dựa học máy để xây dựng thử nghiệm cho mô hình dự đốn lỗi hệ thống phần mềm 1.2 CÁC PHƯƠNG PHÁP DỰ ĐỐN LỖI PHẦN MỀM Có số cách tiếp cận khác việc dự đốn thành phần có hệ thống phần mềm có lỗi hay khơng Do luận văn tập trung vào cách tiếp cận dựa học máy nên phần giới thiệu ngắn gọn số phương pháp học máy sử dụng để dự đoán số lỗi phần mềm 1.2.1 Thuật toán định Trong lĩnh vực học máy, định kiểu mơ hình dự đốn (predictive model), nghĩa ánh xạ từ quan sát vật/hiện tượng tới kết luận giá trị mục tiêu vật/hiện tượng Kỹ thuật học máy dùng định gọi học định, hay gọi với tên ngắn gọn định Cây định mà nút bên bao gồm việc kiểm tra thuộc tính xác định nút đưa phân lớp mà áp dụng cho tất mẫu đạt đến nút lá, tập phân lớp, xác xuất phân tán qua tất lớp Để phân lớp cho mẫu chưa biết, định tuyến xuống dựa theo giá trị thuộc tính kiểm tra lần luợt theo nút, nút tìm thấy mẫu phân lớp dựa theo lớp mà gán cho nút [9] Cây định phương tiện có tính mơ tả dành cho việc tính tốn xác suất có điều kiện Thuật tốn định thuật toán mà sử dụng rộng rãi thuật toán học máy việc xây dựng mẫu phân lớp từ nguồn liệu Nó chọn cho việc thu thập tri thức tạo quy tắc định từ kho lưu trữ liệu dựa vài đặc điểm sau:  Cây định chọn để tạo quy tắc dễ hiểu  Đạt đến phân lớp mà không cần tính tốn chun sâu  Có thể chọn để làm việc với biến liên tục biến phân loại, cung cấp định hướng rõ ràng, phạm vi quan trọng cho việc dự đoán phân lớp 6  Tự động lựa chọn thuộc tính tương ứng  Có thể sử dụng truy vấn SQL để truy cập sở liệu  Khi thực phân lớp độ xác so sánh với phương pháp khác 1.2.2 Kỹ thuật hồi quy logistic (logistic regression) Trong thống kê, hồi quy logistic (mơ hình logit ) sử dụng cho dự đoán khả xuất lỗi hệ thống hàm logit Kỹ thuật hồi quy logit phát triển năm 1970 mơ hình tuyến tính tổng qt hóa sử dụng cho hồi quy nhị phân (chỉ có giá trị) Giống dạng phân tích hồi quy, hồi quy tuyến tính tạo vài biến dự đốn mà số tên thể loại Hồi quy logit kiểu hồi quy mà biến phụ thuộc nhị phân số.Ví dụ người bị đau tim khoảng thời gian thời gian cụ thể dự đốn dựa hiểu biết tuổi, giới tính, số thể Thuật toán hồi quy logit sử dụng rộng rãi ngành y tế, xã hội ứng dụng kinh doanh tiếp thị, ví dụ dự đốn xu hướng khách hàng mua sản phẩm không mua sản phẩm năm Hàm logit f(z) có dạng: ez  f(z)= z e  1  e z 1.2.3 Kỹ thuật mạng nơ ron (neural net works) Mạng nơ ron nhân tạo (Artificial neural network – ANN) mô xử lý thông tin, nghiên cứu từ hệ thống thần kinh sinh vật, giống não để xử lý thông tin Nó bao gồm số lượng lớn mối gắn kết cấp cao để xử lý yếu tố làm việc mối liên hệ giải vấn đề rõ ràng [13] Thuật tốn máy tính mơ kiến trúc sinh học thường gọi mạng nơron nhân tạo để phân biệt với phần mềm thể động vật ANNs hoạt động giống não người, học kinh nghiệm, lưu kinh nghiệm hiểu biết sử dụng tình phù hợp Đầu tiên ANN giới thiệu năm 1943 nhà thần kinh học Warren McCulloch nhà logic học Walter Pits Nhưng với kỹ thuật thời gian chưa cho phép họ nghiên cứu nhiều Mạng nơron hoạt động dựa nguyên lý học máy Thơng qua mẫu có sẵn tập mục tiêu (với phương pháp học có thầy) để đưa kết luận có mẫu đưa vào Mạng nơron nhân tạo kỹ thuật mô lại não hệ thần kinh người.Nó có khả học từ kinh nghiệm khứ, tổng quát hóa kinh nghiệm để đưa nhận định nhờ rút đặc trưng tập mẫu Các việc thực thông qua việc xử lý tín hiệu nơron với trọng số chúng 1.3 CÁC ĐẶC TRƯNG 1.3.1 Độ đo Object Oriented Đơn vị đo OO (Object - Oriented) phép đo cách phân tích thuộc tính cấu trúc đưa từ mã nguồn Phép đo OO phép đo hệ thống hướng đối tượng, để xác định thành công hay thất bại quy trình, để xác định có định lượng cải tiến quy trình phần mềm Phép đo sử dụng để cải tiến kỹ thuật lập trình hướng đối tượng tăng tính tin cậy mã nguồn Phép đo OO thu thập từ đoạn mã nguồn đơn giản để xác định: số lượng hàm lớp, số lượng package import lớp, số lượng phương thức lớp kế thừa gọi… Đây phép đo sử dụng để ước lượng dự đoán chất lượng phần mềm 1.3.2 Độ đo Delta Là phép đo lượng thay đổi lớp qua lần phiên thành công Độ đo Delta yêu cầu phiên khác hệ thống có sẵn Độ đo Delta xác định để so sánh thay đổi lớp phiên với phiên hơn, xác định dựa độ đo OO Với độ đo OO phân tích cấu trúc mã nguồn để xác định số lượng hàm lớp độ đo Delta xác định thay đổi số lượng hàm lớp phiên nghĩa xác định số lượng hàm lớp phiên tăng hay giảm so với phiên 2, số lượng package lớp thay đổi phiên phương thức lớp kế thừa gọi lớp thay đổi phiên với phiên 1.3.3 Độ đo Process Độ đo thu thập từ hệ thống quản lý cấu hình, bao gồm phép đo dựa kinh nghiệm nhân viên phát triển thực thay đổi, số lượng nhân viên phát triển tạo thay đổi tập tin, số lượng lỗi phiên trước, phép đo đơn giản xác định số dòng thêm vào xóa tập tin lập trình viên Phép đo Process yêu cầu ghi thơng tin chi tiết lập trình viên gồm: thay đổi, phương pháp hiệu chỉnh lỗi, thời gian thay đổi, thông tin nhân viên, liệu thay đổi kiểm tra chưa,…theo phương pháp thống có hệ thống hệ thống quản lý cấu hình quản lý thay đổi 8 Chương DỰ ĐOÁN LỖI PHẦN MỀM SỬ DỤNG KỸ THUẬT HỌC MÁY Trong chương trình bày thuật tốn áp dụng để xây dựng mơ hình dự đốn phần mềm, trước trình bày tổng quan kỹ thuật định học máy, nhược điểm thuật toán cách khắc phục cách sử dụng thuật toán Random Forest (thuật toán rừng ngẫu nhiên) Trình bày chi tiết lịch sử đời, ưu điểm thuật toán kỹ thuật dự đoán lỗi phần mềm Phần tiếp trình bày phương pháp đánh giá hiệu mơ hình dự đốn lỗi Với phương pháp đánh giá chưa có tài liệu nghiên cứu khẳng định phương pháp tốt mà phụ thuộc vào thực tế hệ thống quản lý chất lượng tổ chức 2.1 NGUỒN GỐC RA ĐỜI CỦA THUẬT TOÁN 2.1.1 Nhược điểm định Trong lĩnh vực nghiên cứu khai phá liệu nói chung nghiên cứu thuật toán phân lớp nói riêng, vấn đề xử lý liệu lớn ngày trở thành vấn đề cấp thiết đóng vai trị chủ đạo việc giải tốn thực tế Phần lớn thuật toán phân lớp phát triển giải với số lượng liệu có hạn với độ phức tạp liệu giới hạn Trong liệu thu trở nên đa dạng phong phú nhờ phát triển mạnh mẽ khoa học Mặc dù kỹ thuật định công cụ khai phá liệu mạnh lĩnh vực học máy nhiên kỹ thuật khơng hồn tồn hồn hảo thích hợp với số loại vấn đề Các phân loại liệu ổn định có biên đổi nhỏ (các biến đổi tạo cách ngẫu nhiên) sở cho khác tìm kiếm sinh Đây đặc điểm đặc biệt trường hợp mà chia tách tối ưu cho biến khác gần với biến khác mặt giá trị Trong tường hợp này, biến đổi nhỏ mặt liệu đủ gây ảnh hưởng tới việc lựa chọn việc phân tách giá trị khác 2.2 THUẬT TOÁN RANDOM FOREST 2.2.1 Giới thiệu thuật toán Random Forest Thuật toán RF - Random Forest thuật toán đặc biệt dựa kỹ thuật lắp ghép, Về chất thuật toán RF xây dựng dựa tảng thuật toán phân lớp phân loại hồi quy, sử dụng kỹ thuật có tên gọi “bagging” [5] Thuật tốn cho phép lựa chọn nhóm nhỏ thuộc tính nút để phân chia cho mức phân lớp Bằng cách chia nhỏ không gian tìm kiếm thành nhỏ cho phép thuật tốn phân loại cách nhanh chóng cho dù khơng gian thuộc tính lớn Các tham số đầu vào thuật toán đơn giản bao gồm thuộc tính chọn lần phân chia Giá trị mặc định tham số bậc hai p với p số lượng thuộc tính Số lượng tạo không hạn chế không sử dụng kỹ thuật để hạn chế mở rộng Phải lựa chọn tham số cho biết số lượng sinh cho đảm bảo thuộc tính kiểm tra vài lần Thuật toán sử dụng kỹ thuật “out of bag” để xây dựng tập huấn luyện phương pháp kiểm tra [5] 2.2.2 Lịch sử thuật toán Random Forest Thuật toán tạo rừng ngẫu nhiên phát triển Leo Breiman Adele Cutler [5], thuật ngữ Random Forest lấy làm tên phổ biến cho thuật toán Thuật ngữ RF xuất lần năm 1995, sau kết hợp với phương pháp “bagging” lựa chọn thuộc tính ngẫu nhiên Leo Breiman năm 1996 để xây dựng phương pháp chọn theo thay đổi kiểm soát Năm 2001 Breiman xây dựng thuật tốn RF có bổ sung thêm lớp ngẫu nhiên để phân lớp Ngoài việc xây dựng sử dụng mẫu liệu khác nhau, rừng ngẫu nhiên thay đổi để xây dựng phân loại hồi quy khác Các gói thư viện cài đặt thuẩt tốn RF xây dựng ngơn ngữ Fortran Leo Breiman Cutler tham khảo đường dẫn: (http://www.stat.berkeley.edu/) 2.2.3 Thuật toán Random Forest Về thuật toán Random Forest (RF) – rừng ngẫu nhiên dựa kỹ thuật định Ý tưởng RF liên tưởng tới việc bầu cử theo nguyên tắc phổ thông đầu phiếu Nếu sử dụng định chẳng khác việc bầu cử mà có người bỏ phiếu Việc sinh định từ mẫu liệu nhằm đa dạng hoá “phiếu bầu” (giống việc thành phần, tầng lớp, giai cấp bỏ phiếu) cho kết luận Việc áp dụng kỹ thuật sinh mẫu liệu hay việc lựa chọn rẽ nhánh ngẫu nhiên tạo “dị tật” rừng (giống việc cho phép công dân khơng cần phân biệt trình độ học vấn, sức khỏe bầu cử) Càng nhiều loại hình, nhiều phiếu bầu cung cấp cho nhìn đa chiều, chi tiết kết luận có tính xác, gần với thực tế 10 Định nghĩa: Một RF phân loại gồm tập phân loại có câu hình { h(x, ⊖ ), k=1,…} { ⊖ } vecto ngẫu nhiên, độc lập, có phân bố xác suất, bầu cử phiếu cho lớp phổ biến đầu vào x [5] 2.2.4 Đặc tính thuật tốn Random Forest Đối với rừng ngẫu nhiên, cận bắt nguồn cho lỗi phát sinh dạng hai tham số, cách xác định tính xác (Strength - Accuracy) tính tương quan (hay cịn gọi độ nhạy - Correlation) phân loại riêng lẻ có rừng ngẫu nhiên Hàm tương quan sau: mr(X, Y) = Ө (h(X, Ө) = Y) – Hàm tính độ xác sau: s = , mr(X, Y) ∗ ≤ var (mr)/ Ө (h(X, Ө) = j) Giả sử s ≥0 ta có bất đẳng thức sau: Cơng thức thể dao động mr sau: Nếu: j (X, Y) = arg Ө (h(X, Ө) = j) Thì: mr(X, Y)= = Ө Ө (h(X, Ө) = Y) – Ө (h(X, Ө) = j(X, Y)) [ I(h(X, Ө)= Y) – I( h (X, Ө)= j (X, Y))] Như vậy: rừng ngẫu nhiên, hai tiêu chí đánh giá phương pháp phân loại là: tính xác tính tương quan rừng tỷ lệ nghịch với Nếu tính tương quan rừng cao độ xác giảm Độ xác độ nhạy đứng tách khơng có ý nghĩa Hai độ đo có tương quan nghịch: độ xác cao độ nhạy thấp ngược lại Khi độ xác độ nhạy đạt giá trị tối thiểu lúc hệ thống khả phân loại Vì người ta phải kết hợp hai độ đo độ đo thống nhất, vấn đề đặt để cân hai tham số thực phân loại để đạt hiệu cao Theo công thức độ xác tỷ lệ phần trăm lớp phân loại lớp phân loại không lỗi: (TP/ (TP + FP)) Độ nhạy tỷ lệ phần trăm lớp phân 11 loại sai lớp phân loại lỗi: (TP/ (TP + FN)) Ta có bảng mơ tả mối tương quan hai tiêu chí Thực tế Thuộc Khơng thuộc Mơ hình dự đốn Thuộc TPi FPi Khơng thuộc FNi TNi Trong đó:     TPi số lượng mẫu phân loại đúng, phân vào lớp ci FPi số lượng mẫu bị phân loại sai, phân vào lớp ci FNi số lượng mẫu có nhãn thực ci khơng phân vào lớp ci TNi số lượng mẫu có nhãn thực khác ci không phân vào lớp ci Độ xác (pi) độ nhạy (ri) tính theo phân lớp định nghĩa sau: pi  Độ xác chung là: A = TPi TPi ; ri  TPi  FPi TPi  FN i TP  FN TP  TN  FP  FN Độ sai chung là: E = – A 2.2.5 Phân tích thuật tốn Để cải thiện tính xác phân lớp, kỹ thuật rừng ngẫu nhiên bổ sung số phương pháp để tối ưu hóa độ nhạy đảm bảo trì độ xác Sự ảnh hưởng hai tiêu chí dẫn đến thay đổi lỗi phát sinh trình phân loại Có nhiều phương pháp tạo rừng ngẫu nhiên nghiên cứu thử nghiệm với tập huấn luyện khác Với phương pháp rẽ nhánh ngẫu nhiên có hiệu cao kỹ thuật bagging, khả phát nhiễu kết đầu tốt Tuy nhiên chưa có phương pháp tốt kỹ thuật Adaboost Yoav Freund and Robert Schapire [10] Kỹ thuật rừng ngẫu nhiên sử dụng đầu vào chọn ngẫu nhiên kết hợp đầu vào nút để phát triển So với kỹ thuật Adaboost có so sánh sau:  Độ xác cao Adaboost, đạt hiệu cao 12  Kỹ thuật tương đối mạnh thuộc tính phía ngồi biên nhiễu  Đưa ước lượng bên lỗi, độ xác độ nhạy  Phương pháp đơn giản thực song song  Tăng khả ước lượng xác đặc tính ngẫu nhiên sử dụng  Có thể ước lượng liên tục lỗi phát sinh, tính xác độ nhạy Thuật tốn RF đơn giản với thuộc tính ngẫu nhiên thực cách chọn lớp nhỏ biến đầu vào để phân tách ngẫu nhiên nút Số lượng biến chọn ngẫu nhiên F, ta có kết kiểm nghiệm sau: F= F= int ( +1) với M số lượng đầu vào 2.3 CÁC ĐẶC TRƯNG PHẦN MỀM 2.3.1 Giới thiệu Trong dự đoán lỗi phần mềm, việc lựa chọn tham số đầu vào sử dụng để huấn luyện giữ vai trò quan trọng Đối với hệ thống phần mềm có quy trình thay đổi mã nguồn phức tạp gây nhiều lỗi dẫn đến trễ tiến độ, tốn nguồn lực sửa lỗi Trong luận văn sử dụng tham số quy trình thay đổi mã nguồn để làm đầu vào cho tập huấn luyện liệu trình thực nghiệm Một quy trình thay đổi mã nguồn phức tạp ảnh hưởng tiêu cực đến chất lượng sản phẩm, hệ thống phần mềm, phức tạp ảnh hưởng đến tập tin gây lỗi Tham số quy trình thay đổi mã nguồn sử dụng làm đầu vào cho tập huấn luyện xác định thay đổi tập mã nguồn thực lập trình viên họ cập nhật sửa lỗi Đối với hệ thống lớn, số lượng lớp nhiều, lớp chưa nhiều hàm phức tạp trình đánh giá thay đổi trở nên khó khăn Do hệ thống phần mềm lớn cần phải có hệ thống hộ trợ quản lý mã nguồn lập trình viên tạo Các hệ thống lưu trữ ghi chứa liệu lịch sử cần thiết sử dụng cho lần đánh giá ví dụ: lịch sử tạo cập nhật tập tin, thời gian thay đổi, tên lập trình viên thay đổi, chi tiết thông tin thay đổi số dịng mã thêm vào hay xóa 2.3.2 Phương pháp đánh giá thay đổi Để đánh giá thay đổi tập mã nguồn, áp dụng kỹ thuật lý thuyết thông tin để đo lượng ngẫu nhiên entropy Nếu chia trình thay đổi hệ thống thành chu kỳ ví dụ theo tuần theo tháng theo năm, gọi P xác suất tập tin thứ i thay đổi chu kỳ xác định P tỷ lệ tổng sổ lần thay đổi chu kỳ tập tin tổng số lần thay đổi tất tập tin hệ thống chu kỳ Ví dụ hệ thống có 10 tập tin thay đổi, tập tin A bị thay đổi lần chu kỳ = = 0.1, P tập tin A 13 tất tập cịn lại khơng bị thay đổi ta thu lượng entropy nhỏ Để tính tốn thay đổi hiệu xác hơn, người ta xác định thay đổi dòng mã dựa vào việc tính tốn dịng mã thêm vào xóa chu kỳ tập tin Để tính entropy H thay đổi ta có công thức sau: * H (P) = - H(P) = *∑ (p ∗ log P ) = - ∑ Trong n số lượng tập tin hệ thống, phân phối (p ∗ log P ) lượng entropy lớn ≥ 0,  k 1, 2,…., n ∑ = Cho chu kỳ i, với giá trị Entropy mà tập file, bị thay đổi với xác xuất cho file j € , ta có định nghĩa chu kỳ phức tạp lịch sử (History Complexity Period Factor- HCP ) cho tập tin j chu kỳ i là: HCP = ∗ , € 0, trường hợp khác Trong đơn vị phức tạp gán vào cho tập tin j chu kỳ i, với giá trị khác sau:  Với c = có nghĩa tất tập tin gán đơn vị phức tạp tất tập tin bị thay đồi chu kỳ  Với c = kỳ tỷ lệ phần trăm đơn vị phức tạp kết hợp chu Đây khả tập tin j bị thay đổi chu kỳ i Giả sử tập tin bị ảnh hưởng dựa tần suất thay đổi suốt chu kỳ chúng Càng nhiều tập tinh bị thay đổi, có nhiều hảnh hưởng đơn vị phức tạp chu kỳ i  Với = | | chu kỳ có nghĩa phân bố đồng kết hợp đơn vị phức tạp tất tập tin thay đổi chu kỳ Càng nhiều file bị thay đổi, ảnh hưởng chu kỳ phức tạp tập tin giảm 2.3.3 Tiêu chí ROC (receiver operating characteristic) Việc đánh giá mơ hình dự đốn lỗi nhằm: 14  Cung cấp so sánh toàn diện mơ hình  Đánh giá ảnh hưởng việc chọn lựa tiêu chí đánh giá tác động đến thứ hạng mơ Đường cong ROC mơ tả lợi ích việc sử dụng mơ hình (đại diện thuộc tính Dương thật) chi phí sử dụng mơ hình (đại diện thuộc tính Dương giả) Đường cong ROC cho phép đánh giá hiệu mơ hình nói chung mà khơng phụ thuộc vào giá trị ngưỡng cụ thể Phần diện tích phía đường cong ROC (gọi AUC area under the curve) sử dụng thông số thống kê mô tả Ví dụ chọn ngẫu nhiên lớp (một lớp lỗi lớp không lỗi) để kiểm thử mơ hình có AUC = 0.85; thu xác xuất kết phát lỗi lớp lỗi thực cao xác suất phát lỗi lớp không bị lỗi 0.85 (hay 85%) Do vậy, giá trị AUC mơ hình sử dụng để xếp hạng thành phần (hoặc lớp) cách xác Một mơ hình hồn hảo, có nghĩa mơ hình phân loại lớp cách xác hồn tồn, có giá trị phần ROC = 100% 2.3.4 Tiêu chí CE (cost effectiveness ) Vấn đề với tiêu chí ma trận độ nhạy/ độ xác đường cong ROC tiêu chí tạo để áp dụng cho tất tốn phân loại chúng khơng thiết kế cách rõ ràng trực tiếp liên quan đến hiệu chi phí (cost effectiveness) việc sử dụng mơ hình phát lỗi Do vậy, phần lại luận văn này, xem độ phức tạp để kiểm thử số lượng lớp xấp xỉ hàm số mũ kích thước lớp Dựa giả thuyết trên, mơ hình dự đốn lỗi khơng mang lại nhiều ý nghĩa mơ hình dự đốn lỗi thực công việc phát lỗi số lượng lỗi tỉ lệ với hàm mũ kích cỡ lớp mà cần phải quan tâm đến hiệu chi phí mơ hình Với phiên bản, xác định xác trước vùng kiểm thử cho mơ hình tối ưu Do vậy, thực tế, với phát hành tính diện tích vùng sau:  Đầu tiên chọn tất lớp chứa lỗi sau xếp lớp có lỗi theo thứ tự tăng dần kích thước lớp chứa lỗi  Các lớp khơng có lỗi sau xếp theo thứ tự tăng dần kích thước lớp khơng chứa lỗi Thủ tục nhằm tối đa hóa diện tích vùng phát hành lần tập lớp lỗi với giả thiết tương lai dự đốn xác hồn hảo Sau tính 15 toán, với tỉ lệ phần trăm NOS cụ thể, so sánh tỉ lệ phần trăm cực đại lỗi mà thu với mơ hình tối ưu sử dụng đường bao (đường giới hạn) phía để đánh giá mơ hình, đường nét đứt mờ hình Để so sánh diện tích CE cần lưu ý mơ hình tối ưu khác với tập hợp mẫu thử nghiệm khác Do vậy, đưa giá trị CE chuẩn hóa đây: CEл = (CEл(model) - CEл(baseline))/( CEл(optimal) - CEл(baseline)) Trong đó, CEл(x) diện tích đường cong x (baseline, model optimal - tối ưu) л phần trăm NOS cho trước Chương THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ Trong chương 3, luận văn trình bày bước trình thực thi chương trình thử nghiệm liệu lấy theo đường dẫn tác giả báo tham khảo Đầu tiên mô tả bước thu thập liệu từ công cụ MKS, WebMetric tập liệu ban đầu, sau phân tích các đặc trưng tập liệu đưa để phân loại Mô tả bước thực nghiệm để đưa kết với loại biến đầu vào đánh giá theo tiêu chí hiệu mơ hình khác Từ kết thu thử nghiệm mơ hình, phần cuối luận văn phân tích kết theo tiêu chí để đưa phương pháp hiệu phù hợp với hệ thống quản lý chất lượng Viettel 3.1 THU THẬP, PHÂN TÍCH DỮ LIỆU 3.1.1 Thu thập liệu Hệ thống lựa chọn để thử nghiệm kết nghiên cứu hệ thống mã nguồn mở Eclipse JDT Core [18] Hệ thống phát triển qua 91 phiên tính theo tuần, với gần 1000 lớp Java Dữ liệu sử dụng cho chương trình thử nghiệm gồm chia thành ba loại tương ứng với ba loại biến trình bày chương 3.1.1.1 Thơng tin Process Để xác định thông tin Process, sử dụng công cụ viết Perl Script sử dụng để thu thập liệu chứa thông tin thay đổi tập tin 16 hay lớp Java dành cho phiên Eclipse JDT Core nghiên cứu thông qua hệ thống quản lý cấu hình (configuration management system – MKS) [17] 3.1.1.2 Phép đo hướng đối tượng OO Để thu thập giá trị đo cấu trúc lớp phiên bản, ta sử dụng phần mềm phân tích mã nguồn WebMetric [6] WebMetric công cụ thu thập liệu tự động, viết hoàn toàn Java sử dụng parse JavaCC (phân tích cấu trúc cú pháp mã nguồn Java) 3.1.1.3 Phép đo Delta Phép đo đo lượng thay đổi tập tin phiên Trong luận văn này, phép đo Delta tính tốn từ phép đo hướng đối tượng phần mềm WebMetric 3.1.2 Phân tích liệu Sau trình thu thập liệu trên, liệu thu bao gồm file liệu định dạng csv:  process-metrics.csv  oo-metric.csv  delta-metric.csv Mỗi file chứa 997 mẫu mẫu tương đương với lớp java Eclipse JDT, file process-metrics.csv chứa liệu thuộc tính process, file oometric.csv chứa liệu 18 thuộc tính hướng đối tượng, file delta-metric.csv chứa 17 thuộc tính delta thơng tin thay đổi phiên gần tương ứng với 17 thuộc tính hướng đối tượng file oo-metric.csv trừ thuộc tính bugs 3.2 THỰC THI CHƯƠNG TRÌNH 3.2.1 Giới thiệu công cụ thực nghiệm Phần mềm sử dụng để thực phân lớp tập liệu phần mềm weka [19] Tiến hành phân loại thuật tốn RF với thuộc tính phân loại lựa chọn bugs, nhiên trước tiến hành phân loại, phải lựa chọn chế độ kiểm thử để xây dựng tập kiểm thử tập huấn luyện Luận văn xây dựng mơ hình dự đốn lỗi dựa tập liệu huấn luyện phần theo hai tiêu chí ROC, CE0.01, CE0.05, CE0.20, CE1.00 với tổ hợp biến Process, OO, 17 Delta, Process + OO, OO + Delta, Process + Delta, Total Đánh giá theo tiêu chí ROC: Khi chạy chương trình với hai độ đo Process OO - Đánh giá theo ROC: Khi chạy chương trình với tập độ đo Process OO, ta thu bảng giá trị ROC mơ sau: Bảng 3.1 Tổng hợp kết ROC theo biến Tổ hợp biến ROC Process OO Delta Process+OO OO+Delta Delta+Process All 0.734 0.83 0.82 0.843 0.848 0.825 0.859 Có nhận thấy xác suất để lớp lỗi phân vào lớp lỗi cao xác suất lớp khơng lỗi mơ hình tương sử dụng tập độ đo Process thấp 0.734, tập độ đo lại kết tương đối giống từ khoảng 0.82 đến 0.859 Kết phân lớp theo tiêu chí ROC đạt tốt ta sử dụng kết hợp đồng thời tập độ đo - Đánh giá theo CE: Tiến hành đánh giá tập độ đo theo tiêu chí CE với giá trị khác nhau, 0.01, 0.05, 0.20 1.00 ta bảng giá trị sau: Bảng 3.2 Tổng hợp kết CE Biến Process OO Delta Process+OO OO+Delta Delta+Process Total = 0.01 0.6309 0.4102 0.4553 0.4072 0.4012 0.4302 0.3941 = 0.05 0.6309 0.4102 0.4553 0.4072 0.4012 0.4302 0.3941 = 0.20 0.6309 0.4102 0.4553 0.4072 0.4012 0.4302 0.3941 = 1.00 0.2066 0.2066 0.2066 0.2066 0.2066 0.2066 0.2066 Với = 1.00 thấy chi phí tất mơ nhau, lựa chọn thuộc tính phân lớp cho mơ hình tất mơ hình 18 thuộc tính bugs Các mơ hình có ngưỡng lớn 0.20, nhỏ 0.20 chi phí mơ hình đồng Có thể nhận thấy với ngưỡng 0.20 CE mơ hình thương ứng với tập độ đo Process cao 0.6309, tập độ đo lại giá trị gần tương đương từ khoảng 0.3941 đến 0.4302 3.2.2 Phân tích đánh giá Theo kết thực nghiệm trên, với trường hợp thực thi phân loại tổ hợp biến Process + Delta + OO theo tiêu chí ROC CE đạt kết tốt thực phân loại biến riêng biệt Với đặc thù hệ thống quản lý phần mềm Trung tâm phần mềm – Viettel có đầy đủ cơng cụ để đánh giá tham số yêu cầu liệu đầu vào mơ hình phân loại:  Cơng cụ quản lý cấu hình Starteam version 2008: Lưu lại thơng tin tồn thay đổi lớp phần mềm: - Thơng tin lập trình viên, thời gian cập nhật lớp phiên khác - Thơng tin số dịng code, biến, hàm, package… thay đổi lớp cập nhật lớp  Công cụ quản lý lỗi Mantis version 1.1.5: - Lưu lại toàn lỗi với trọng số lỗi khác nhau: Hight, Medium, Low tương ứng với mức độ phức tạp lỗi kiểm thử chương trình - Lưu lại thơng tin lập trình viên sửa lỗi theo trọng số cho lớp lỗi Như ta thu thập thông tin tập liệu đầu vào gồm loại Process, OO, Delta Với thực tế kỹ kinh nghiệm lập trình viên Trung tâm chưa đồng nên kết trình lập trình có nhiều điểm khác Hơn lập trình viên chưa đào tạo chưa có quy trình lập trình cụ thể nên với nhân viên lập trình tiến hành lập trình lớp tỷ lệ mắc lỗi lớp khơng đồng dịng code Hơn dự án phần mềm Viettel quy mô tương đối lớn thông thường số lượng lớn 1000 lớp thực chức nghiệp vụ chưa bao gồm lớp tự sinh Do sử dụng tiêu chí CE để đánh giá tỷ phần trăm dòng mã lớp đem phân loại có kết phù hợp với đặc thù Như áp dụng mơ hình dự đoán lỗi với việc kết hợp độ đo thành biến tổ hợp OO + Delta + Process làm đầu vào cho phân loại đánh giá hiệu mơ hình theo tiêu chí CE có kết xác ... nhiều lỗi, lớp chưa lỗi Luận văn tập trung vào việc đưa kỹ thuật dự đoán lỗi phần mềm áp dụng cho hệ thống Java có khả có nhiều lỗi Để xây dựng mơ hình dự đốn lỗi phần mềm hầu hết sử dụng kỹ thuật. .. số lượng lỗi thành phần hệ thống phần mềm xây dựng Có nhiều phương pháp cách tiếp cận khác việc dự đoán lỗi phần mềm Các nội dung luận văn tập trung vào kỹ thuật dự đoán lỗi phần mềm sử dụng phương... trung vào kỹ thuật dự đoán dựa học máy để xây dựng thử nghiệm cho mơ hình dự đốn lỗi hệ thống phần mềm 1.2 CÁC PHƯƠNG PHÁP DỰ ĐOÁN LỖI PHẦN MỀM Có số cách tiếp cận khác việc dự đốn thành phần có

Ngày đăng: 19/03/2021, 17:48

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w