Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
1,33 MB
Nội dung
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - LÊ LÊ NA ÁP DỤNG KĨ THUẬT KHAI PHÁ DỮ LIỆU CHO PHÂN LỚP CÁC CA KIỂM THỬ PHẦN MỀM Chuyên ngành: Hệ thống thơng tin Mã số: 8.48.01.04 TĨM TẮT LUẬN VĂN THẠC SĨ HÀ NỘI – 2019 Luận văn hồn thành tại: HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG Người hướng dẫn khoa học: PGS.TS Trần Đình Quế Phản biện 1: ……………………………………………………… Phản biện 2: ……………………………………………………… Luận văn bảo vệ trước Hội đồng chấm luận văn thạc sĩ Học viện Cơng nghệ Bưu Viễn thông Vào lúc: ngày tháng năm Có thể tìm hiểu luận văn tại: - Thư viện Học viện Cơng nghệ Bưu Viễn thông LỜI MỞ ĐẦU Cùng với phát triển mạnh mẽ công nghệ thông tin, sản phẩm phần mềm sử dụng nguồn liệu lớn xuất không ngừng Kĩ thuật phần mềm lĩnh vực nghiên cứu liên quan đến thiết kế, triển khai sửa đổi để xây dựng phần mềm phù hợp trì lâu dài Kiểm thử giai đoạn quy trình phát triển phần mềm, giai đoạn thiếu vòng đời phát triển phần mềm Kiểm thử thường tiến hành quy mơ lớn để tìm lỗi phần mềm để kiểm tra kết thực tế phần mềm với mong muốn thiết kế hay khơng Điều đòi hỏi phải xây dựng trường hợp thử nghiệm mà khai thác hết tất trường hợp phần mềm Sẽ rủi ro phức tạp tất trường hợp thử nghiệm thực tay việc tạo mơ hình thử nghiệm tự động đời nơi mà trường hợp thử nghiệm xây dựng cách tự động Nhưng vấn đề với tiếp cận phần mềm xây dựng hàng ngàn dòng mã việc thực tất trường hợp thử nghiệm nhiều thời gian vài ngày để hoàn thành Khai phá liệu nghiên cứu, ứng dụng nhiều lĩnh vực khác nước giới Trong Testing, Khai phá liệu trở nên vô phổ biến, giúp phân tích khai thác liệu, chia nhỏ vùng thử nghiệm từ giúp tiết kiệm thời gian tăng độ xác trường hợp thử nghiệm Với mục đích đưa tiến công nghệ phục vụ cho công việc ngày, tơi chọn đề tài tìm hiểu "Áp dụng kĩ thuật khai phá liệu cho phân lớp ca kiểm thử phần mềm" Trong phạm vi luận văn trình bày cách xử lý tốn kiểm thử chương trình máy tính bỏ túi sử dụng phép toán cộng, trừ, nhân, chia đơn giản trường hợp kiểm thử đặt vô phức tạp số lượng testcases nhiều Xác định ca kiểm thử, phân loại giản lược ca kiểm thử vấn đề đề cập luận văn ([1],[2],[3],[4],[5]) Luận văn giải toán khai phá xử lý liệu dựa việc sử dụng thuật toán thuật toán Naive Bayes, thuật tốn định J48 từ phân tích ca kiểm thử cần thiết ca kiểm thử tối giản để tránh nhiều thời gian, tăng hiệu làm việc chất lượng phần mềm 2 CHƯƠNG 1: KHAI PHÁ DỮ LIỆU VÀ BÀI TOÁN PHÂN LỚP CÁC CA KIỂM THỬ 1.1 Khai phá liệu 1.1.1 Tại lại cần khai phá liệu Với bùng nổ thông tin thập kỷ gần lượng thơng tin ngày trở nên khổng lồ Làm để khai thác “kho” thơng tin câu hỏi cần thiết đặt Khai phá liệu (Data Mining) đời hướng giải hữu hiệu câu hỏi Có nhiều định nghĩa Data Mining công nghệ tri thức giúp khai thác thơng tin hữu ích từ kho liệu tích trữ suốt q trình hoạt động cơng ty, tổ chức 1.1.2 Khái niệm Khai phá liệu (Data Mining) trình chắt lọc hay khai phá tri thức từ lượng liệu lớn Theo Frawley, Piatetski-Shapiro Matheus Khai phá bước trình phát triển tri thức sở liệu thi hành thuật tốn khai phá liệu để tìm mẫu từ liệu Hình 1.1 Các bước trình phát triển tri thức cở liệu Khai phá liệu bước thứ bước trình phát triển tri thức cở liệu 1.1.3 Quá trình khai phá liệu: Tìm hiểu liệu: Nhà tư vấn nghiên cứu kiến thức lĩnh vực áp dụng, bao gồm tri thức cấu trúc hệ thống, nguồn liệu hữu, ý nghĩa, vai trò tầm quan trọng thực thể liệu Chuẩn bị liệu: Giai đoạn sử dụng kỹ thuật tiền xử lý bao gồm để biến đổi cải thiện chất lượng liệu để thích hợp với yêu cầu giải thuật học Các giải thuật tiền xử lý bao gồm: - Xử lý liệu bị thiếu, Các liệu bị thiếu thay giá trị thích hợp - Khử trùng lặp: Các đối tượng liệu trùng lặp bị loại bỏ Kỹ thuật không sử dụng cho tác vụ có quan tâm đến phân bổ liệu - Giảm nhiễu: nhiễu đối tượng tách rời khỏi phân bố chung bị loại khỏi liệu - Chuẩn hóa: Miền giá trị liệu chuẩn hóa - Rời rạc hóa: Các liệu số biến đổi giá trị rời rạc - Rút trích xây dựng đặc trưng từ thuộc tính có - Giảm chiều: thuộc tính chứa thơng tin bị loại bỏ bớt Mơ hình hóa liệu: Các giải thuật học sử dụng liệu tiền xử lý giai đoạn hai để tìm kiếm quy tắc ẩn chưa biết Hậu xử lý đánh giá mơ hình: - Dựa đánh giá người dùng sau kiểm tra tập thử mơ hình tinh chỉnh kết hợp lại cần Chỉ mơ hình đạt u cầu người dùng đưa triển khai thực tế - Trong giai đoạn này, kết biến đổi từ dạng học thuật sang dạng phù hợp với môi trường nghiệp vụ dễ hiểu cho người dùng 4 Triển khai tri thức - Các mơ hình đưa vào hệ thống thơng tin thực tế dạng modun hỗ trợ việc đưa định - Mối quan hệ chặt chẽ giai đoạn trình khai phá liệu quan trọng cho việc nghiên cứu khai phá liệu Một giải thuật khai phá liệu phát triển độc lập, không quan tâm đến bối cảnh áp dụng mà thường xây dựng để giải mục tiêu cụ thể - Quá trình lặp lại nhiều lần hay nhiều giai đoạn dựa phản hồi từ kết giai đoạn sau 1.2 Kỹ thuật kiểm thử phần mềm 1.2.1 Một số phương thức thiết kế kiểm thử Quá trình phát triển hệ thống phần mềm bao gồm chuỗi hoạt động sản sinh mã lệnh, tài liệu, nơi mà sai sót người xẩy lúc Một lỗi xuất từ lúc bắt đầu dòng code đầu tiên, q trình phát triển phần mềm phải kết hợp với trình kiểm thử Hiện phát triển nhiều phương thức thiết kế trường hợp kiểm thử cho phần mềm Những phương pháp cung cấp hướng kiểm thử có tính hệ thống Quan trọng chúng cung cấp hệ thống đảm bảo hồn chỉnh trường hợp kiểm thử phát lỗi cho phần mềm Một sản phẩm kiểm thử theo hai cách: Hiểu rõ chức cụ thể hàm hay module Các trường hợp kiểm thử xây dựng để kiểm thử tất thao tác Hiểu rõ cách hoạt động hàm/module hay sản phẩm Các trường hợp kiểm thử xây dựng để đảm bảo tất thành phần khớp với Đó tất thao tác nội hàm dựa vào mô tả tất thành phần nội kiểm thử cách thỏa đáng Cách tiếp cận gọi kiểm thử hộp đen (Black-box testing) cách tiếp cận thứ hai gọi kiểm thử hộp trắng (White-box testing) Trong luận văn đề cập đến cách kiểm thử với hướng tiếp cận thứ kiểm thử hộp trắng 5 Đặc điểm kiểm thử hộp trắng dựa vào giải thuật cụ thể, vào cấu trúc liệu bên đơn vị phần mềm cần kiểm thử để xác định đơn vị phần mềm có thực không Kỹ thuật kiểm thử thường nhiều thời gian công sức mức độ kiểm thử nâng cao lên cấp kiểm thử tích hợp hay kiểm thử hệ thống Thơng thường sau code xong vài chức sử dụng công cụ Junit testing để kiểm thử cho ứng dụng Có hoạt động kiểm thử hộp trắng: - Kiểm thử luồng điều khiển : tập trung kiểm thử giải thuật chức - Kiểm thử dòng liệu : tập trung kiểm thử đời sống biến liệu dùng giải thuật Trong kiểm thử hộp trắng có nhiều phương pháp đưa luận văn xin giới thiệu phương pháp phổ biến thường sử dụng nhiều phương pháp kiểm thử đường thi hành (Execution Path) Kiểm thử đường thi hành kịch thi hành đơn vị phần mềm tương ứng, cụ thể danh sách có thứ tự lệnh thi hành ứng với lần chạy cụ thể đơn vị phần mềm, điểm nhập đơn vị phần mềm đến điểm kết thúc đơn vị phần mềm 6 CHƯƠNG 2: PHÂN LỚP DỮ LIỆU DỰA TRÊN NAIVE BAYES VÀ CÂY QUYẾT ĐỊNH J48 Ở chương này, luận văn nêu lên hai thuật tốn sử dụng luận văn Nạve Bayes J48 Nội dung chương bao gồm khái niệm, thuật toán áp dụng vào tốn phân lớp liệu nói chung 2.1 Kỹ thuật Naive Bayes cho phân lớp liệu 2.1.1 Một số khái niệm Định lý Bayes cho phép tính xác xuất xảy kiện ngẫu nhiên A biết kiện liên quan B xảy Xác suất ký hiệu 𝑃(𝐴|𝐵), đọc “xác suất 𝐴 có 𝐵” Đại lượng gọi xác suất có điều kiện hay xác suất hậu nghiệm rút từ giá trị cho 𝐵 Theo định lý Bayes, xác suất xảy 𝐴 biết 𝐵 phụ thuộc vào yếu tố sau: Xác suất xảy 𝐴 mà không quan tâm đến 𝐵 Ký hiệu 𝑃(𝐴) đọc xác suất 𝐴 Đây gọi xác suất tiên nghiệm – nghĩa khơng quan tâm đến thơng tin 𝐵 (prior) Xác suất xảy 𝐵 mà không quan tâm đến 𝐴 Ký hiệu 𝑃(𝐵) đọc xác suất B Đại lượng số chuẩn hóa, khơng phụ thuộc vào kiện 𝐴 muốn biết (evidence) Xác suất xảy 𝐵 biết 𝐴 xảy Ký hiệu 𝑃(𝐵|𝐴) đọc xác suất 𝐵 có 𝐴 Đại lượng khả xảy 𝐵 biết 𝐴 xảy Xác suất có điều kiện mà 𝐴 xảy biết 𝐵 Ký hiệu 𝑃(𝐴|𝐵) Xác suất gọi xác suất sau (likelihood) Khi biết ba đại lượng kể Xác suất 𝐴 biết 𝐵 cho công thức: (Công thức định lý Bayes) (posterior) 𝑃(𝐴|𝐵) = 𝑃(𝐵|𝐴)𝑃(𝐴) 𝑙𝑖𝑘𝑒𝑙𝑖ℎ𝑜𝑜𝑑 ∗ 𝑝𝑟𝑖𝑜𝑟 = 𝑃(𝐵) 𝑒𝑣𝑖𝑑𝑒𝑛𝑐𝑒 Bài toán thực tế học máy sử dụng định lý Bayes: Vấn đề cần làm tìm hiểu mơ hình từ tập hợp thuộc tính định (dựa vào tập liệu đặc trưng quan sát được), liệu lại có biến đại diện cho tập liệu Sử dụng định lý Bayes để xây dựng xác suất biến đoán đáp ứng liệu ban đầu đưa tập thuộc tính 7 Giả thiết cho số thuộc tính 𝑛, số giá trị có (đú𝑛𝑔 ℎ𝑜ặ𝑐 𝑠𝑎𝑖) Để huấn luyện phân loại áp dụng định lý Bayes, ta cần tính tốn 𝑃(𝐵|𝐴), theo số lượng phép tính cần tính xấp xỉ ∗ (2𝑛 − 1) tham số cho mơ hình Có thể nhận thấy số vấn đề lớn tốn có nhiều thuộc tính Để giải toán này, ta cần áp dụng thuật tốn Nạve Bayes Naive Bayes nghiên cứu rộng rãi từ năm 1950, ứng dụng đưa vào thực tế năm 1960 Naive Bayes xây dựng dựa định lý Bayes lý thuyết xác suất để đưa dự đoán phân loại liệu dựa liệu quan sát Hiện thuật toán dược áp dụng nhiều lĩnh vực học máy dùng để đưa dự đoán dựa tập liệu thu thập Nó thuộc tốn học dựa mẫu có trước Có số giả định thực Naïve Bayes Ngay giả định bị vi phạm chút hoạt động tốt Giả định coi quan trọng thực thi Naïve Bayes tất biến ngẫu nhiên đầu vào phải độc lập với lấy từ phân phối tương tự Giả định thứ hai tất biến ngẫu nhiên kể có điều kiện độc lập Trên thực tế, mơ hình xác suất khác mà có phương pháp phân loại dựa Nạve Bayes khác để có kết tốt Thực tế cho thấy, báo cáo năm 2006 đưa phân loại Bayes vượt trội so với phương pháp khác (trees) rừng ngẫu nhiên (random forests) 2.1.2 Kỹ thuật Naïve Bayes Ý tưởng cách tiếp cận Naïve Bayes sử dụng xác suất có điều kiện đặc trưng nhãn để dự đoán xác suất nhãn văn cần phân loại Điểm quan trọng phương pháp chỗ giả định xuất tất đặc trưng văn độc lập với Giả định làm cho việc tính tốn Nạve Bayes hiệu nhanh chóng phương pháp khác khơng sử dụng việc kết hợp đặc trưng để đưa phán đoán nhãn Kết dự đốn bị ảnh hưởng kích thước tập liệu, chất lượng không gian đặc trưng… Thuật tốn Nạve Bayes dựa định lý Bayes phát biểu sau: 𝑃(𝐶𝑘 )𝑃(𝒙|𝐶𝑘 ) 𝑃(𝐶𝑘 |𝒙) = 𝑃(𝒙) Áp dụng toán phân loại, kiện gồm có: D: tập liệu huấn luyện vec-tơ hóa dạng 𝑥⃗ = (𝑥1 , 𝑥2 , … , 𝑥𝑛 ) Ci: phân loại i, với i = {1,2,…,m} Các thuộc tính độc lập điều kiện đôi với Theo định lý Bayes: 𝑃(𝐶𝑖 |𝑋) = 𝑃(𝑋|𝐶𝑖 )𝑃(𝐶𝑖 ) 𝑃(𝑋) Theo tính chất độc lập điều kiện: 𝑛 𝑃(𝑋|𝐶𝑖 ) = ∏ 𝑃(𝑥𝑘 |𝐶𝑖 ) 𝑘=1 Trong đó: 𝑃(𝐶𝑖 |𝑋) xác suất thuộc phân loại i biết trước mẫu X 𝑃(𝐶𝑖 ) xác suất phân loại i 𝑃(𝑥𝑘 |𝐶𝑖 ) xác suất thuộc tính thứ k mang giá trị xk biết X thuộc phân loại i Thuật tốn Nạve Bayes: Input : Bộ liệu huấn luyện Dữ liệu đầu vào ví dụ tốn ca kiểm thử (testcase) Output : Nhãn phân loại ca kiểm thử đầu vào Bước 1: Huấn luyện Nạve Bayes (dựa vào tập liệu), tính 𝑃(𝐶𝑖 ) 𝑃(𝑥𝑘 |𝐶𝑖 ) Bước 2: Phân loại 𝑋 𝑛𝑒𝑤 = (𝑥1 , 𝑥2 , … , 𝑥𝑛 ), ta cần tính xác suất thuộc phân loại biết trước Xnew Xnew gán vào lớp có xác suất lớn theo công thức 𝑛 max (𝑃(𝐶𝑖 ) ∏ 𝑃(𝑥𝑘 |𝐶𝑖 )) 𝐶𝑖 ∈𝐶 𝑘=1 2.1.3 Phân lớp liệu với Nạve Bayes Khi áp dụng thuật tốn Nạve Bayes vào tốn phân lớp thực tế, để ước tính tham số phù hợp với phân phối đối tượng cần phân lớp mà người ta phải giả định phân phối tính gọi mơ hình kiện tốn phân lớp liệu với Nạve Bayes Tùy thuộc liệu đầu vào để sử dụng phân phối phù hợp Hình 2.1: Naive Bayes tốn phân lớp - Gaussian Nạve Bayes: Mơ hình sử dụng phân phối chuẩn Gaussian, áp dụng chủ yếu tốn có liệu biến liên tục Với chiều liệu 𝑖 phân lớp 𝑐, 𝑥𝑖 tuân theo phân phối chuẩn (phân phối Gaussian) có kỳ vọng 𝜇𝑐𝑖 phương sai 𝜎𝑐𝑖2 : 𝑃(𝑥𝑖 |𝑐) = 𝑃(𝑥𝑖 |𝜇𝑐𝑖 , 𝜎𝑐𝑖2 ) = (𝑥 −𝜇 )2 − 𝑖 2𝑐𝑖 2𝜎𝑐𝑖 𝑒 √2𝜋𝜎𝑐𝑖2 - Multinomoal Nạve Bayes: Mơ hình chủ yếu sử dụng toán phân loại văn mà vector tính (features) biểu diễn vector có độ dài 𝑑, vector tập từ điển văn Giá trị phần tử thứ 𝑖 vector số lần từ thứ 𝑖 xuất văn Khi đó, giá trị 𝑃(𝑥𝑖 |𝑐) tính cơng thức sau: 𝑁𝑐𝑖 𝑃(𝑥𝑖 |𝑐) = 𝑁𝑐 Trong đó: 10 𝑁𝑐𝑖 tổng số lần từ thứ 𝑖 xuất văn phân lớp thứ 𝑐, tính tổng thành phần thứ 𝑖 vector tính ứng với phân lớp 𝑐 𝑁𝑐 tổng số từ (kể lặp) xuất phân lớp thứ 𝑐 Nói cách khác, tổng độ dài toàn văn thuộc phân lớp 𝑐 Hạn chế phương pháp có từ chưa xuất phân lớp 𝑐 biểu thức kể có giá trị 0, điều dẫn đến kết tốn khơng xác - Bernoulli Nạve Bayes: Mơ hình áp dụng cho loại liệu mà thành phần giá trị Khi đó, 𝑃(𝑥𝑖 |𝑐) tính cơng thức sau: 𝑃(𝑥𝑖 |𝑐) = 𝑃(𝑖|𝑐)𝑥𝑖 (1 − 𝑃(𝑖|𝑐)1−𝑥𝑖 ) Với 𝑃(𝑖|𝑐) xác suất từ thứ 𝑖 xuất phân lớp thứ 𝑐 2.2 Kỹ thuật định J48 2.2.1 Cây định Học định phương pháp thông dụng khai phá liệu Khi đó, định mơ tả cấu trúc Trong đó, đại diện cho phân loại cành đại diện cho kết hợp thuộc tính dẫn tới phân loại Một định học cách chia tập hợp nguồn thành tập dựa theo kiểm tra giá trị thuộc tính Q trình lặp lại cách đệ quy cho tập dẫn xuất Quá trình đệ quy hồn thành khơng thể tiếp tục thực việc chia tách Hình 2.2: Cây định luồng thực 11 Khi phân loại đơn áp dụng cho phần tử tập dẫ xuất Một phận loại rừng ngẫu nhiên (random forest) sử dụng số định để cải thiện tỷ lệ phân loại Cây định mơ tả kết hợp kỹ thuật tốn học tính tốn nhằm hỗ trợ việc mơ tả, phân loại tổng quát hóa tập liệu cho trước Có nhiều thuật toán phân lớp ID3, J48, C4.5, … Việc chọn thuật tốn để có hiệu phân lớp cao tùy thuộc vào nhiều yếu tố Trong cấu trúc liệu ảnh hưởng lớn đến kết thuật toán Ưu điểm định: - Dễ hiểu - Việc chuẩn bị liệu cho định không cần thiết - Có thể xử lý liệu có giá trị số liệu chữ - Cây định mơ hình hộp trắng, quan sát tình cho trước mơ hình, nên dễ dàng để giải thích, nhìn nhận đánh giá - Có thể thẩm định mơ hình kiểm tra thống kê - Có thể xử lý lượng liệu thời gian ngắn Nhược điểm định: - Khó giải vấn đề có liệu phụ thuộc thời gian liên tục - Dễ xảy lỗi có nhiều lớp chi phí tính tốn để xây dựng mơ hình định cao 2.2.2 Thuật toán J48 J48 thuật toán xây dựng dựa thuật toán định C4.5 C4.5 thuật toán phát triển Ross Quinlan, phần cải tiến từ thuật toán ID3 kể Thường dùng để phân loại nên C4.5 biết với tên phân loại thống kê C4.5 xây dựng định từ tập liệu huấn luyện giống ID3, sử dụng lượng tin entropy Theo tư tưởng thuật toán ID3, nút, giải thuật chọn thuộc tính liệu có tính phân tách hiệu tập mẫu thành tập hợp nút Khác với ID3, tiêu chí chọn nút phục thuộc vào lượng tin thu (khác với entropy) Thuộc tính với lượng tin thu nhiều (lớn nhất) 12 chọn làm thành phần định Việc lựa chọn lặp lại cách đệ quy tìm nút C4.5 thực số cải tiến so với thuật toán ID3: Xử lý thuộc tính liên tục rời rạc Để thực việc này, C4.5 tạo ngưỡng sau chia thành danh sách giá trị thuộc tính cao ngưỡng giá trị nhỏ Xử lý thuộc tính với giá trị chi phí khác Thuật tốn tạo phương pháp tối ưu cách loại bỏ nhánh khơng giúp ích cho thay chúng nút 2.2.3 Phân lớp liệu dựa J48 Cây định mơ hình máy học dự đốn định giá trị đích (biến phụ thuộc) mẫu dựa giá trị thuộc tính khác liệu có sẵn Các nút bên định biểu diễn thuộc tính khác nhau, nhánh nút cho biết giá trị cuối (phân loại) biến phụ thuộc Hình 2.3: Ví dụ tốn phân lớp sử dụng định J48 Thuộc tính dự đốn gọi biến phụ thuộc giá trị phụ thuộc định giá trị tất thuộc tính khác Các thuộc tính khác góp phần giúp dự đốn giá trị biến phụ thuộc, gọi biến độc lập tập liệu Cũng vây, định phân loại J48 phân loại mẫu cách tạo định giá trị thuộc tính liệu đào tạo trước (dữ liệu biết) 13 CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ 3.1 Xây dựng liệu 3.1.1 Xây dựng ứng dụng Bộ mã nguồn xây dựng đơn giản, với ý tưởng xây dựng máy tính bỏ túi với phép toán cộng, trừ, nhân, chia Bộ mã nguồn viết ngôn ngữ Java Dòng Phương code thức Operator Lớp triển khai phép tính 21 hai số (cộng, trừ, nhân, chia) MyCal Lớp thực lựa chọn cho máy 19 tính bỏ túi để gọi đến phương thức tính tốn lớp Operator Main Chương trình gọi đến 29 luồng thực thi đưa kết Mô tả hoạt động lớp: Tên lớp Tên lớp Mô tả Tên phương thức Giá trị trả Operator Plus(float a, float b) a+b Div(float a, float b) a/b Mul(float a, float b) a*b Sub(float a, float b) a-b MyCal Cal(int choose, float Kết a, float b) phép tính a b Main Menu() Main() Mơ tả Thực phép tính cộng Thực phép tính chia Thực phép tính nhân Thực phép tính trừ Giá trị choose truyền vào lựa chọn người dùng để thực bốn phép tính (choose có giá trị từ đến 4) Choose = 1: thực phép tính cộng Choose = 2: thực phép tính trừ Choose = 3: thực phép tính nhân Choose = 4: thực phép tính chia Hiển thị danh sách lựa chọn phép tính cho người dùng Chương trình 14 Mô tả luồng thực thi ứng dụng Chương trình (hàm 𝑀𝑎𝑖𝑛) gọi đến 𝑚𝑒𝑛𝑢() để thực hiển thị danh sách lựa chọn người dùng chọn (từ đến thực phép tính, lại khỏi chương trình đanh thực thi) Người dùng nhập 𝑐ℎ𝑜𝑜𝑠𝑒 = Chương trình kiểm tra số người dùng vừa nhập, kiểm tra 𝑐ℎ𝑜𝑜𝑠𝑒 có thuộc [1,4] khơng, nhận thấy 𝑐ℎ𝑜𝑜𝑠𝑒 có thuộc, tiếp tục cho phép người dùng nhập vào hai số 𝑎 𝑏 Người dùng nhập 𝑎 = 𝑏 = Chương trình gọi đến phương thức 𝑐𝑎𝑙(𝑖𝑛𝑡 𝑐ℎ𝑜𝑜𝑠𝑒, 𝑖𝑛𝑡 𝑎, 𝑖𝑛𝑡 𝑏) lớp 𝑀𝑦𝐶𝑎𝑙 Tại phương thức 𝑐𝑎𝑙, lựa chọn 𝑐ℎ𝑜𝑜𝑠𝑒 người dùng kiểm tra 𝑐ℎ𝑜𝑜𝑠𝑒 = nên phép tính lựa chọn phép nhân Lúc hàm 𝑐𝑎𝑙 gọi đến phương thức 𝑝𝑙𝑢𝑠(𝑓𝑙𝑜𝑎𝑡 𝑎, 𝑓𝑙𝑜𝑎𝑡 𝑏) lớp 𝑂𝑝𝑒𝑟𝑎𝑡𝑜𝑟 Giá trị trả kết phép tính 𝑎 + 𝑏 Tại hàm 𝑐𝑎𝑙, giá trị nhận kết phép tính 𝑎 + 𝑏 mà phương thức 𝑝𝑙𝑢𝑠 trả Tại hàm 𝑚𝑎𝑖𝑛 lúc nhận kết từ hàm 𝑐𝑎𝑙 trả Kết in hình 3.1.2 Sinh ca kiểm thử Tập liệu có số thuộc tính (dữ liệu số) Để có liệu thuộc tính cho liệu, luận văn sử dụng JUnit để có ca kiểm thử để làm liệu đào tạo Luận văn sử dụng cơng cụ Eclemma để tính tốn độ bao phủ lớp, luồng thực thi, phương thức, nhánh cho ca kiểm thử Công cụ JaCoCo Metrics sử dụng để tính tốn độ phức tạp luồng thực thi cho ca kiểm thử Để có ca kiểm thử, luận văn sử dụng cơng cụ sinh ca kiểm thử randoop để có liệu từ chương trình luận văn xây dựng Qua công cụ randoop, sinh liệu gồm 216 ca kiểm thử bao gồm thuộc tính nhãn phân loại Nhãn phân loại có hai giá trị dư thừa không Bộ liệu chia gồm 159 trường hợp kiểm thử dư thừa, 57 trường hợp kiểm thử không dư thừa 15 3.1.3 Xây dựng liệu tiền xử lý Dữ liệu dùng để xây dựng liệu cho ca kiểm thử: - Hàm thực việc lựa chọn phép tính đưa kết mơ tả 𝑐𝑎𝑙(𝑖𝑛𝑡 𝑐ℎ𝑜𝑜𝑠𝑒, 𝑓𝑙𝑜𝑎𝑡 𝑎, 𝑓𝑙𝑜𝑎𝑡 𝑏) nên việc xây dựng ca kiểm thử thực dựa hàm - Việc lựa chọn 𝑐ℎ𝑜𝑜𝑠𝑒 phụ thuộc vào miền xác định 𝑐ℎ𝑜𝑜𝑠𝑒 Nhận thấy 𝑐ℎ𝑜𝑜𝑠𝑒 thuộc [1,4] nên giá trị 𝑐ℎ𝑜𝑜𝑠𝑒 liệu có giá trị: 1, 2, 3, giá trị xác định thực thi chương trình 0, giá trị hai đầu mút khơng khơng thực thi phép tính 100, -20 giá trị ngẫu nhiên không thực thi phép tính - Số thứ 𝑎 kiểu 𝑓𝑙𝑜𝑎𝑡, nên việc lựa chọn 𝑎 giá trị: 𝐹𝑙𝑜𝑎𝑡 𝑀𝐴𝑋_𝑉𝐴𝐿𝑈𝐸 𝐹𝑙𝑜𝑎𝑡 𝑀𝐼𝑁_𝑉𝐴𝐿𝑈𝐸 giá trị lớn giá trị bé kiểu liệu 𝐹𝑙𝑜𝑎𝑡 giá trị đặc biệt số âm số dương 1, −1 giá trị biên số âm số dương kiểu 𝐹𝑙𝑜𝑎𝑡 50.4596, −50.4596, 100, −100 Các số ngẫu nhiên thuộc kiểu liệu 𝐹𝑙𝑜𝑎𝑡 - Số thứ hai 𝑏 tương tự 𝑎, kiểu 𝐹𝑙𝑜𝑎𝑡 Nên việc lựa chọn tương tự 𝑎: 𝐹𝑙𝑜𝑎𝑡 𝑀𝐴𝑋_𝑉𝐴𝐿𝑈𝐸 𝐹𝑙𝑜𝑎𝑡 𝑀𝐼𝑁_𝑉𝐴𝐿𝑈𝐸 giá trị lớn giá trị bé kiểu liệu 𝐹𝑙𝑜𝑎𝑡 giá trị đặc biệt số âm số dương 1, −1 giá trị biên số âm số dương kiểu 𝐹𝑙𝑜𝑎𝑡 50.4596, −50.4596, 100, −100 Các số ngẫu nhiên thuộc kiểu liệu 𝐹𝑙𝑜𝑎𝑡 Bảng liệu mẫu liệu: ID choose 1 a 50.4596 b 50.4596 Nhãn phân loại (label) Không dư thừa (yes) Dư thừa so với liệu 𝐼𝐷 = (no) 50 50 0 yes Bộ liệu nhập đưa dạng tệp đuôi “.csv” 16 Sau xây dựng xong liệu, đưa liệu vào công cụ Weka để thực tiền xử lý liệu kết quả: Hình ảnh: Bộ liệu tiền xử lý 3.2 Thực nghiệm 3.2.1 Thực nghiệm sử dụng thuật tốn Nạve Bayes Thực nghiệm: luận văn chạy thực nghiệm qua cơng cụ Weka, sử dụng thuật tốn Nạve Bayes để tiến hành chạy phân loại từ liệu tiền xử lý Ban đầu chạy với tập liệu, sau thực tính tốn độ xác dựa vào liệu dùng để thử nghiệm Các bước thực với Weka: - Sau tiền xử lý, cần chuyển sang Tab Classify để tiến hành phân loại 17 - Sau chuyển qua Classify cần lựa chọn thuật tốn (đã có sẵn weka) để thực phân loại liệu Ở chọn bayes chọn mạng Naïve Bayes - Đã chọn thuật toán để phân loại Tiếp tục lựa chọn tham số để quan sát độ xác liệu mà đưa vào: Trước tiên hai giá trị Correct Incorrect giúp nhận định đánh giá kết dự đốn sai thực trình phân loại 18 Tiếp theo hai giá trị Precision, Recall (giúp đánh giá độ xác) - Lúc này, cần nhấn Start quan sát kết thực thi chương trình phân loại với thuật tốn Nạve Bayes ta kết quả: 19 - Đánh giá độ xác dựa tập liệu kiểm tra: Lựa chọn Supplied test set Nhấn Set lựa chọn liệu kiểm tra 20 Nhấn Start quan sát kết Kết Bộ liệu Độ xác Tập liệu đào tạo 94.44% Tập liệu thử nghiệm 85.71% 21 3.2.2 Thực nghiệm sử dụng thuật tốn J48 Thực nghiệm: Cũng với cơng cụ Weka, tơi sử dụng thuật tốn J48 để tiến hành phân loại từ liệu ca kiểm thử, sau tiến hành tính tốn độ xác dựa liệu thử nghiệm Tương tự trên, bước tiến hành Và kết thực với J48: - Kết liệu đào tạo - Dữ liệu kiểm tra Kết Bộ liệu Tập liệu đào tạo Tập liệu thử nghiệm Độ xác 97.22% 96.94% 22 KẾT LUẬN Từ việc nghiên cứu toàn phân lớp ca kiểm thử trình phát triển phần mềm, luận văn đưa phương pháp sử dụng khai phá liệu nhằm tối giản ca kiểm thử phát triển phần mềm Qua kết thực nghiệm đạt cho thấy mơ hình đưa hồn tồn khả thi áp dụng Các kết luận văn đạt được: - Nêu ý nghĩa trình kiểm thử vòng đời phát triển phần mềm Sự quan việc đưa ca kiểm thử xác hiệu nhằm rút gọn thời gian thực hiện, tiết kiệm chi phí - Trình bày phương pháp phân lớp liệu áp dụng vào phân lớp ca kiểm thử phần mềm, từ lọc tối giản tối đa ca kiểm thử dư thừa trùng lặp - Xây dựng dự liệu dựa phép tính cộng, trừ, nhân, chia tương tự chương trình máy tính bỏ túi - Chỉ phương pháp khai phá liệu phù hợp với liệu xây dựng số liệu cụ thể khẳng định hiệu phương pháp sử dụng Hướng pháp triển: - Từ liệu xây dựng phát triển lên thành chương trình tính tốn phức tạp hơn, đa dạng sử dụng mang tính thương mại nhiều ví dụ phần mềm tính tốn siêu thị chương trình quản lý hàng Điều đồng nghĩa với việc testcase sinh lớn phức tạp nhiều - Áp dụng kỹ thuật khai phá liệu, thuật toán giới thiệu luận văn vào liệu giúp phân loại, tối giản ca kiểm thử cho hiệu thử nghiệm tăng lên, giúp doanh nghiệp tiết kiệm thời gian chi phí mà đảm bảo chất lượng phần mềm ... nghiên cứu toàn phân lớp ca kiểm thử trình phát triển phần mềm, luận văn đưa phương pháp sử dụng khai phá liệu nhằm tối giản ca kiểm thử phát triển phần mềm Qua kết thực nghiệm đạt cho thấy mơ hình... thiết ca kiểm thử tối giản để tránh nhiều thời gian, tăng hiệu làm việc chất lượng phần mềm 2 CHƯƠNG 1: KHAI PHÁ DỮ LIỆU VÀ BÀI TOÁN PHÂN LỚP CÁC CA KIỂM THỬ 1.1 Khai phá liệu 1.1.1 Tại lại cần khai. .. kiệm chi phí - Trình bày phương pháp phân lớp liệu áp dụng vào phân lớp ca kiểm thử phần mềm, từ lọc tối giản tối đa ca kiểm thử dư thừa trùng lặp - Xây dựng dự liệu dựa phép tính cộng, trừ, nhân,