Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 63 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
63
Dung lượng
1,72 MB
Nội dung
NGƠ THỊ THANH BÌNH BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - Ngô Thị Thanh Bình CƠNG NGHỆ THƠNG TIN ỨNG DỤNG HỌC MÁY TRONG KIỂM THỬ PHẦN MỀM LUẬN VĂN THẠC SĨ KỸ THUẬT CÔNG NGHỆ THÔNG TIN 2016B Hà Nội – 2019 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Ngơ Thị Thanh Bình ỨNG DỤNG HỌC MÁY TRONG KIỂM THỬ PHẦN MỀM Chuyên ngành: Công nghệ thông tin LUẬN VĂN THẠC SĨ KỸ THUẬT CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC : PGS TS Phạm Văn Hải Hà Nội – 2019 CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ Họ tên tác giả luận văn: Ngô Thị Thanh Bình Đề tài luận văn: Ứng dụng học máy kiểm thử phần mềm Chuyên ngành: Công nghệ thông tin Mã số SV: CB160533 Tác giả, Người hướng dẫn khoa học Hội đồng chấm luận văn xác nhận tác giả sửa chữa, bổ sung luận văn theo biên họp Hội đồng ngày 26/10/2019 với nội dung sau: # Nội dung chỉnh sửa Mục lục Trang Thống định nghĩa: Sửa cách dịch “agent” từ “máy” thành “hệ thống” Làm rõ đóng góp khoa học đề tài, khác biệt đóng góp thêm so với tài liệu mục tham khảo số [32] luận văn Làm rõ cấu trúc, cách hoạt động mạng nơ-ron nhân tạo mơ hình đề xuất, bổ sung hình vẽ Thể rõ tính hiệu mơ hình đề xuất so với số mơ hình truyền thống Lỗi tả Ngày 2.2.2, 3.2, 3.3 5.1 Hình 3.1, Mục 43 3.3.2 Hình 4.3, 4.4, 49-52 4.6, Mục 4.3 tháng 11 năm 2019 Giáo viên hướng dẫn Tác giả luận văn PSG TS Phạm Văn Hải Ngơ Thị Thanh Bình CHỦ TỊCH HỘI ĐỒNG 29, 39, 42 55 LỜI CAM ĐOAN Những kiến thức trình bày luận văn tơi tìm hiểu, nghiên cứu trình bày theo kiến thức tổng hợp cá nhân Kết nghiên cứu luận văn chưa công bố cơng trình khác Trong q trình làm luận văn, tơi có tham khảo tài liệu có liên quan ghi rõ nguồn tài liệu tham khảo Tơi xin cam đoan cơng trình nghiên cứu tơi tơi khơng chép Tôi xin chịu trách nhiệm, sai, xin chịu hình thức kỉ luật theo quy định Hà Nội, ngày 21 tháng 11 năm 2019 Học viên Ngô Thị Thanh Bình LỜI CÁM ƠN Để hồn thành luận văn này, nhận giúp đỡ nhiều cá nhân, tập thể, tổ chức Trước hết, tơi xin bày tỏ lịng biết ơn sâu sắc tới PGS TS Phạm Văn Hải, Phó giáo sư Công nghệ thông tin, Viện Công nghệ thông tin & Truyền thông, Đại học Bách khoa Hà Nội nhiệt tình hướng dẫn tạo điều kiện thuận lợi cho tơi nghiên cứu hồn thành luận văn cách tốt Tôi xin gửi lời cảm ơn tới anh chị em bạn theo học Cao học, Đại học Viện Công nghệ thông tin & Truyền thông, Đại học Bách khoa Hà Nội giúp đỡ tơi q trình nghiên cứu có nhiều ý kiến góp ý quý báu giúp tơi hồn thiện luận văn Cuối cùng, tơi xin gửi lời cảm ơn tới gia đình bạn bè, người bên cạnh, động viên, giúp đỡ suốt trình nghiên cứu thực luận văn Học viên Ngơ Thị Thanh Bình MỤC LỤC DANH MỤC HÌNH VẼ VÀ SƠ ĐỒ DANH MỤC BẢNG MỞ ĐẦU Lý chọn đề tài Tính cấp thiết đề tài Mục đích nghiên cứu 10 Phạm vi nghiên cứu 10 Bố cục luận văn 11 CHƯƠNG NGHIÊN CỨU TỔNG QUAN 12 1.1 Giới thiệu kiểm thử phần mềm 12 1.1.1 Kiểm thử phương pháp kiểm thử khác 12 1.1.2 Kiểm thử tự động 14 1.2 Bài toán tối ưu kiểm thử phần mềm 15 1.2.1 Một số nghiên cứu 16 1.2.2 Bài toán kiểm thử phần mềm 19 1.3 Tổng kết chương 21 CHƯƠNG THU THẬP DỮ LIỆU KIỂM THỬ PHẦN MỀM VÀ TỔNG QUAN VỀ HỌC MÁY 23 2.1 Mơi trường thu thập tiền xử lí liệu 23 2.1.1 Thu thập tiền xử lí 24 2.1.2 Phân tích đặc trưng liệu 25 2.2 Học tăng cường 27 2.2.1 Quy trình Markov 27 2.2.2 Học máy tăng cường 29 2.2.3 Cập nhật chiến lược 30 2.2.4 Q-Learning 31 2.3 Học sâu 32 2.3.1 Mạng nơ-ron nhân tạo 32 2.3.2 Thuật toán tối ưu 34 2.3.3 Học tăng cường sâu 35 2.4 Tổng kết chương 37 CHƯƠNG MƠ HÌNH HỌC MÁY CHO TỐI ƯU KIỂM THỬ PHẦN MỀM 38 3.1 Bài toán tối ưu kiểm thử 38 3.2 Mơ hình học máy tăng cường cho toán kiểm thử 39 3.2.1 Không gian trạng thái – hành động 40 3.2.2 Hàm phần thưởng 41 3.3 Mạng học sâu 42 3.3.1 Xây dựng liệu học cho mạng nơ-ron 42 3.3.2 Cấu trúc mạng nơ-ron 43 3.4 Lập lịch kiểm thử đưa vào CI 44 3.5 Tổng kết chương 44 CHƯƠNG CÀI ĐẶT VÀ THỰC NGHIỆM 46 4.1 Cài đặt chương trình 46 4.1.1 Môi trường phát triển thử nghiệm 46 4.1.2 Phương pháp đo độ xác 46 4.2 Dữ liệu thử nghiệm 47 4.3 Kết thử nghiệm 48 4.4 So sánh với nghiên cứu liên quan 52 CHƯƠNG KẾT LUẬN 55 5.1 Kết đạt 55 5.2 Định hướng phát triển 56 DANH MỤC HÌNH VẼ VÀ SƠ ĐỒ Hình 2.1 Quy trình thu thập liệu 24 Hình 2.2 Tương tác hệ thống môi trường 29 Hình 2.3 Biểu diễn học sâu 32 Hình 2.4 Biến thiên truyền ngược theo quy tắc chuỗi 34 Hình 2.5 Mạng tăng cường học sâu 35 Hình 3.1 Tương tác hệ thống môi trường 39 Hình 3.2 Mơ hình mạng nơ ron đề xuất 43 Hình 3.3 Kiểm thử quy trình CI 44 Hình 4.1 Thất bại theo trường hợp kiểm thử liệu Paint Control 48 Hình 4.2 Thất bại theo trường hợp kiểm thử liệu Rails 48 Hình 4.3 Kết liệu thử nghiệm liệu 49 Hình 4.4 Kết liệu thử nghiệm liệu 50 Hình 4.5 So sánh với phương pháp ngẫu nhiên 51 Hình 4.6 So sánh với phương pháp có xếp 52 DANH MỤC BẢNG Bảng 1.1 Ưu tiên kiểm thử dựa liệu lịch sử 17 Bảng 1.2 Ưu tiên kiểm thử dựa ràng buộc thời gian 17 Bảng 2.1 Dữ liệu kiểm thử thô 24 Bảng 2.2 Thông tin chung liệu 25 Bảng 3.1 Thông số cho NetworkAgent 42 MỞ ĐẦU Lý chọn đề tài Kiểm thử ngành công nghiệp phần mềm tập trung vào xác minh xác nhận khả hệ thống phần mềm đáp ứng thuộc tính chức cần thiết [1] Giai đoạn kiểm thử quy trình phát triển phần mềm giai đoạn quan trọng bao gồm chi phí, thời gian nguồn lực [2] Do phát triển nhanh với độ phức tạp phần mềm tăng lên [3], nhiều ý kiến cho kiểm thử trở thành khâu quan trọng tốn thời gian vòng đời phát triển phần mềm [4] Hơn nữa, kĩ thuật ứng dụng kiểm thử giải toán kiểm thử lĩnh vực hẹp, chưa thực tự động [5] Ngồi điều đó, phối hợp thực kiểm thử viên (Tester) phần mềm cịn hạn chế ứng dụng thực tiễn Khơng ngoại lệ, Việt Nam quy trình kiểm thử phụ thuộc nhiều vào hoạt động thủ công với thời gian, chi phí cao mà chưa đem lại hiệu tương xứng [6] Hiện nay, số kỹ thuật trí tuệ nhân tạo kĩ thuật học máy thông minh áp dụng nhiều lĩnh vực khác nhau, có kiểm thử phần mềm [7] Điểm hạn chế giải phần lĩnh vực kiểm thử phần mềm lĩnh vực hẹp Đã có nhiều cơng trình nghiên cứu riêng rẽ lĩnh vực kiểm thử học máy Việc thiếu nghiên cứu ứng dụng kĩ thuật học máy phù hợp vào mục đích kiểm thử phần mềm mơ hình đề xuất ứng dụng học máy trình bày luận văn Tác giả đề xuất phương pháp tối ưu hóa kiểm thử phần mềm dựa học máy tăng cường kết hợp mạng nơ-ron nhân tạo Kết sử dụng để tích hợp vào quy trình phát triển phần mềm thực tế Tính cấp thiết đề tài Thực tế, có nhiều yếu tố tác động vịng đời phát triển phần mềm dẫn đến việc tiếp cận để cải thiện việc kiểm thử khó phức tạp [8] Các nghiên cứu Hình 4.1 Thất bại theo trường hợp kiểm thử liệu Paint Control Hình 4.2 Thất bại theo trường hợp kiểm thử liệu Rails 4.3 Kết thử nghiệm Biểu diễn hiệu hệ thống với ba hàm phần thưởng khác hai liệu thể Hình 4.3 Hình 4.4 Mỗi hàm phần tưởng tương ứng với dòng kết hợp với phương pháp hành động học tăng cường: Q-learning truyền thống dùng bảng mạng nơ-ron Có thể thấy hiệu thể tốt hai liệu hàm phần thưởng Trường hợp thất bại 48 (tcfail) sử dụng mạng nơ-ron hỗ trợ hành động học tăng cường Ban đầu, máy chưa có nhiều hiểu biết việc kiểm thử nên có kết tệ chưa nhận biết kiểm thử thất bại sau việc nhận kết từ hàm phần thưởng cải thiện dẫn tới hiệu tăng đáng kể Hiệu mơ hình thể rõ liệu thứ (PaintControl) với 300 vòng CI liệu thứ hai (Rails) với 2000 vịng CI cho thấy tính hiệu mơ hình có liên quan đáng kể tới độ dài giai đoạn kiểm thử áp dụng Tuy nhiên, phần liệu Rails có trường hợp kiểm thử thất bại đáng kể Hình 4.3 Kết liệu thử nghiệm liệu 49 Hình 4.4 Kết liệu thử nghiệm liệu Tuy nhiên, điều thấy hiệu khơng ổn định mà có biến động Những biến động hiểu nhiễu liệu, trường hợp kiểm thử thất bại với nhiều lí khác khó để dự đốn Ví dụ số NAPFD giảm mạnh, lí giải vịng CI đó, số lượng lớn trường hợp kiểm thử đưa vào số lượng lớn trường hợp kiểm thử thất bại khiến mơ hình khó dự đốn Kết trung bình NAPFD liệu Paincontrol 0.686 cao kết 0.51 báo [32] nằm mức từ nghiên cứu khác sử dụng thông số hiệu (xấp xỉ 0.5 ~ 0.6) [60] [11] Kết liệu Rails, vốn lớn nhiều lại có tỉ lệ kiểm thử thất bại thấp, thực khó khăn để mơ hình hiệu Tuy nhiên, biểu diễn hình, hiệu khơng tệ với vài biến động 50 Để đánh giá hiệu phương pháp, mơ hình ứng dụng học máy so sánh với phương pháp ngẫu nhiên phương pháp có xếp, nhắc tới Chương Dù hai phương pháp khơng địi hỏi nhiều tính tốn mơ hình đề xuất chúng hướng tiếp cận với thông tin liệu giải tốn áp dụng thực tế Hai Hình 4.5 Hình 4.6 thể kết so sánh với liệu Paincontrol dựa so sánh kết trung bình NAPFD vịng chạy 30 lần Kết dương thể mơ hình sử dụng học máy cho kết tốt hơn, kết q âm thể mơ hình so sánh cho kết tốt Trong vòng CI đầu tiên, thấy phương pháp so sánh cho kết tốt hơn, nhiên, sau, máy ưu tiên hóa với hiệu tốt mơ hình so sánh với vài biến động Kết tương tự với liệu cịn lại với thời gian thích nghi lâu hiệu tương tự Hình 4.5 So sánh với phương pháp ngẫu nhiên 51 Hình 4.6 So sánh với phương pháp có xếp 4.4 So sánh với nghiên cứu liên quan Các nghiên cứu liên quan thời gian gần lĩnh vực tối ưu hóa kiểm thử phần mềm trình bày Chương Bản thân nghiên cứu lại tiếp cận toán theo hướng khác Trong [27] đề xuất phương pháp gán xác suất lựa chọn cho trường hợp kiểm thử Khái niệm tuổi lỗi giới thiệu cơng trình Nếu lỗi khơng bị phát chạy thử, tuổi lỗi tăng lên [28] giới thiệu kỹ thuật dựa liệu lịch sử với phương pháp tiếp cận trọng tâm chi phí Một mơ-đun sử dụng để lưu hồ sơ liệu mức độ nghiêm trọng chi phí trước trường hợp kiểm thử [29] đề cập việc tìm thứ tự thực tối ưu trường hợp kiểm thử khơng có giải pháp cố định [30] đề xuất FATCP (Ưu tiên trường hợp kiểm thử nhận biêt lỗi) tận dụng thông tin lỗi lịch sử cách sử dụng kỹ thuật định vị lỗi FATCP vượt trội so với phương pháp ưu tiên phương pháp bao phủ nhánh ưu tiên độ bao phủ [31] đề xuất MCCTCP 52 (TCP nhận thức chi phí sửa đổi) dựa lịch sử thực trường hợp kiểm thử MCCTCP khơng cần phân tích mã nguồn cung cấp thơng tin lịch sử trường hợp kiểm thử cho GA (thuật toán di truyền) Kỹ thuật xác lập ưu tiên kiểm thử có giới hạn thời gian nghiên cứu [33] sử dụng GA giải thuật di truyền để xác định liệu phù hợp [34] cho thấy việc sử dụng giải mã Knapsack để kết thúc hoạt động kiểm thử khoảng thời gian quy định [35] sử dụng Kỹ thuật ILP (Lập trình tuyến tính số nguyên) để ưu tiên kiểm thử môi trường bị giới hạn thời gian Hạn chế phương pháp dựa ILP địi hỏi nhiều thời gian phân tích nên tốn thời gian cho kiểm thử lớn [36] trích dẫn ví dụ tổ chức phát triển phần mềm có kiểm thử hồi quy gồm 30.000 trường hợp kiểm thử Phải 1000 máy để chạy tất việc kiểm thử Các tác giả đưa thực tế quan trọng không đặt giới hạn thời gian, việc ưu tiên không hiệu chi phí Một số cơng trình khác có ứng dụng học máy kiểm thử phần mềm [12] đề xuất sử dụng học máy nhiều kỹ thuật xử lý thông tin mờ để tối ưu trường hợp kiểm thử môi trường công nghiệp Các cách tiếp cận khác bao gồm sử dụng học máy bán-giám sát để phân nhóm để cải thiện kĩ thuật kiểm thử [61] hay học chủ động để phân loại kiểm thử [62], kết hợp học máy cắt nhỏ chương trình để ưu tiên trường hợp kiểm thử hồi quy [63], ưu tiên trường hợp kiểm thử dựa phương pháp phân cụm [64] Mặc dù có nhiều cách tiếp cận khác để tối ưu hóa cho kiểm thử hồi quy, thách thức việc áp dụng hầu hết chúng thực tế nằm phức tạp chi phí tính tốn nói chung bắt buộc để thu thập phân tích thơng số kiểm thử khác cần thiết cho mức độ ưu tiên, độ tuổi, độ bao phủ kiểm thử,… Ngược lại, cách tiếp cận mơ hình luận văn dựa học tăng cường (RL) phương pháp đơn giản, sử dụng kết lịch sử kinh nghiệm 53 phương pháp từ chu kỳ tích hợp liên tục trước Hơn nữa, mơ hình thích ứng phù hợp với môi trường động với thay đổi thường xuyên mã kiểm thử, phát triển kiểm thử 54 CHƯƠNG KẾT LUẬN 5.1 Kết đạt Luận văn trình bày phương pháp cải tiến việc ứng dụng học máy vào kiểm thử phần mềm tự động, dựa khai thác đặc trưng từ liệu lịch sử đề xuất mơ hình cho liệu Một số kết bật luận văn thể sau: Luận văn trình bày mơ hình tốn học cho tốn tối ưu tiên hóa lựa chọn trường hợp kiểm thử dựa nghiên cứu báo liên quan, có tốn ưu tiên hóa trường hợp kiểm thử thích nghi có ràng buộc thời gian Luận văn bao gồm nghiên cứu việc đặc trưng liệu kiểm thử phần mềm bối cảnh ứng dụng tự động Tích hợp liên tục (CI) Tinh chỉnh cải thiện mơ hình học máy tăng cường, cấu trúc mơ hình, phương pháp dựa ứng dụng mạng nơ-ron làm nhớ để định Đây mơ hình sử dụng rộng rãi xong chứng minh tính thích hợp cho liệu mơ hình kiểm thử Chương trình thử nghiệm chạy liệu với tảng command-line, có tính ứng dụng cao đưa vào hệ thống tích hợp liên tục thực Phương pháp đề xuất thực nghiệm với liệu quy mô vừa lớn, kết hiệu mức 60%, kết chấp nhận so với nghiên cứu toán lĩnh vực So với nghiên cứu liên quan, luận văn đề xuất việc cải thiện học sâu hướng tiếp cận chưa ứng dụng nhiều học tăng cường thay thuật tốn truyền thống sử dụng lượng liệu lịch sử thực thi mà chưa cần quan tâm tới mã nguồn, chức (thông tin hộp trắng) phần mềm Do khác biệt luận văn với nghiên cứu liên quan nằm việc cải thiện mô hình 55 mạng nơ-ron học máy tăng cường việc tiền xử lí liệu trước đưa vào mơ hình 5.2 Định hướng phát triển Phương pháp đề xuất luận văn có khả ứng dụng tốt tối ưu hỗ trợ kiểm thử với kết tương đối tốt Tuy nhiên, cải thiện phát triển sau: Mở rộng mơ hình học máy: mơ hình có giai đoạn tiền-huấn luyện máy có nhiều hiểu biết ưu tiên hóa kiểm thử trước thực thực Có thể cải thiện việc việc sử dụng liệu trước đưa vào quy trình CI Mở rộng liệu: Hiện tại, số khía cạnh liệu sử dụng, phát triển thêm với việc sử dụng thêm nhiều đặc trưng khác để làm rõ lí kiểm thử thất bại, mối liên hệ mã nguồn trường hợp thất bại 56 TÀI LIỆU THAM KHẢO [1] W E Lewis, Software testing and continuous quality improvement, CRC press, 2016 [2] P C Jorgense, Software Testing: A Craftsman’s Approach, Boca Raton, FL, USA: CRCPress, Inc., 1995 [3] Q T M Godfrey, "Growth, evolution, and structural change in open source software," in 4th international workshop on principles of softwareevolution, ACM, 2001 [4] A P O G B C F M Y Zhauniarovich, "Towards black box testing of android app," in 2015 10th International Conference on Availability, Reliability and Security (ARES), Toulouse, France, 2015 [5] M K N L L J M V P A Laplante, "Building caring healthcare systems in the internet of things," EEE Systems Journal, 2017 [6] K Cường, "Tỷ lệ kỹ sư kiểm thử phần mềm VN thấp," 15 2011 [Online] Available: https://vnexpress.net/so-hoa/ty-le-ky-su-kiem-thu-phanmem-o-vn-con-thap-1513971.html [7] "AI in Testing: The third wave of automation," CloudQA, [Online] Available: https://cloudqa.io/ai-in-testing-the-third-wave-of-automation/ [Accessed 2019] [8] G G A P A Z M Beller, "When, how, and why developers (do not) test in their ides," in 10th Joint Meeting on Foundations of Software Engineering, 2015 [9] G Rothermel and M Harrold, "Analyzing regression test selection techniques," IEEE Transactions on Software Engineering , vol 22, no 8, pp 529 - 551, 1996 [10] G Rothermel, R Untch, C Chu and M Harrold, "Prioritizing test cases for regression testing," in Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis, Portland, Oregon, USA, 2000 [11] A Ansaria, A Khanb, A Khanc and K Mukadam, "Optimized Regression Test using Test Case Prioritization," in 7th International Conference on Communication, Computing and Virtualization 2016, 2016 [12] B Busjaeger and T Xie, "Learning for Test Prioritization: An Industrial Case Study," in Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, Seattle, WA, USA, 57 2016 [13] C Kaner, "Exploratory testing," in Quality Assurance Institute Worldwide Annual Soft-ware Testing Conference, Orlando, FL, 2006 [14] W W Royce, "Managing the development of large software systems,," Proceedings of IEEE WESCON, no 26, pp 1-9, 1970 [15] J Voas and G McGraw, Software Fault Injection, Hoboken, NJ: John Wiley & Sons, 1998 [16] M N Dhingra, "Contingent study of black box and white box testing techniques," International Journal of Current Engineering and Technology, 2014 [17] A Kolawa and D Huizinga, Automated Defect Prevention: Best Practices in Software Management, Wiley-IEEE Computer Society Press, 2007 [18] K Beck, Test-Driven Development by Example, Vaseem: Addison Wesley, 2002 [19] D Graham, Foundations of Software Testing: ISTQB Certification, Int Thomson Business Press, 2006 [20] I C B M M H A Leitner, "Reconciling manual and automatedtesting: The autotest experience," in 40th AnnualHawaii International Conference, 2007 [21] R Ramler, "Economic Perspectives in Test Automation: Balancing Automated and Manual Testing with Opportunity Cost," in International Workshop on Automation of Software Test, Shanghai, China, 2006 [22] S Berner, R Weber and R Keller, "Observations and lessons learned from automated testing," in IEEE, Saint Louis, MO, USA, USA, 2005 [23] P K Chittimalli and M J Harrold, "Re-computing Coverage Information to Assist Regression Testing," in 2007 IEEE International Conference on Software Maintenance, Paris, France, 2007 [24] G U R C C H M Rothermel, "Prioritizing test cases for regression testing," IEEE Trans Software Eng, vol 27, pp 929-948, 2001 [25] W M J L S M A Wong, "Effect of test setminimization on fault detection effectiveness," Software – Practice and Experience, vol 28, p 347–369, 1998 [26] N M A V S Juristo, "Reviewing 25 Years of Testing Technique Experiments," Empirical Software Engineering, vol 9, pp 7-44, 2004 [27] J.-M Kim and A Porter, "A history-based test prioritization technique for regression testing in resource constrained environments," in Proceedings of the 58 24th International Conference on Software Engineering, Orlando, FL, USA, USA, 2002 [28] H R H B J Park, "Historical value-based approach for cost-cognizant test case prioritization to improve the effectiveness of regression testing," in The 2nd IEEE International Conference on Secure System Integration and Reliability Improvement, 2008 [29] Y K A A A M P S Fazlalizadeh, "Prioritizing test cases for resource constraint environments using historical test case performance data," in 2009 2nd IEEE International Conference on Computer Science and Information Technology, Beijing, China, 2009 [30] S B J Kim, "An effective fault aware test case prioritization by incorporating a fault localization technique," in Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, New York, NY, USA, 2010 [31] Y P K H C Huang, "A history-based cost-cognizant test case prioritization technique in regression testing," Journal of Systems and Software, vol 85, no 3, pp 626-637, 2012 [32] A G D M M M Helge Spieker, "Reinforcement Learning for Automatic Test Case Prioritization and Selection in Continuous Integration," in Proceedings of 26th International Symposium on Software Testing and Analysis, Santa Barbara, CA, USA, 2017 [33] M L S , G M K , R S R Kristen R Walcott, "Time-Aware Test Suite Prioritization," in Proceedings of the ACM/SIGSOFT International Symposium on Software Testing and Analysis, Portland, Maine, USA, 2006 [34] K R W , M B , G M K , M L S Sara Alspaugh, "Efficient Time-Aware Prioritization with Knapsack Solvers," in Proceedings of the 1st ACM international workshop on Empirical assessment of software engineering languages and technologies: held in conjunction with the 22nd IEEE/ACM International Conference on Automated Software Engineering (ASE), Atlanta, Georgia, USA, 2007 [35] S.-s H , C G , T X , H M Lu Zhang, "Time-aware test-case prioritization using integer linear programming," in Proceedings of the eighteenth international symposium on Software testing and analysis, Chicago, IL, USA, 2009 [36] H Do, S Mirarab, L Tahvildari and G Rothermel, "The Effects of Time Constraints on Test Case Prioritization: A Series of Controlled Experiments," IEEE Transactions on Software Engineering , vol 36, no 5, pp 593 - 617, 59 2010 [37] D You, Z Chen, B Xu, B Luo and C Zhang, "An empirical study on the effectiveness of time-aware test case prioritization techniques," in Proceedings of the 26th ACM Symposium on Applied Computing, Taichung, Taiwan, 2011 [38] K C S R S R Stanislav Kirdey, "Lerner — using RL agents for test case scheduling," Netflix, 22 May 2019 [Online] Available: https://medium.com/netflix-techblog/lerner-using-rl-agents-for-test-casescheduling-3e0686211198 [Accessed June 2019] [39] R H U C C M J H Gregg Rothermel, "Prioritizing Test Cases For Regression Testing," in Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis , Portland, Oregon, USA, 2000 [40] "The Paint Control Dataset of Testing Results," ABB Robotics, 2016 [Online] Available: https://new.abb.com/products/robotics [41] S E G R Jingjing Liang, "The Rails Dataset of Testing Results from Travis CI," 2018 [Online] Available: https://github.com/elbaum/CI-Datasets [Accessed 2019] [42] S J Russell and P Norvig, Artificial Intelligence: A Modern Approach, vol 3, Prentice Hall, 2009 [43] A G B Richard S Sutton, "Adaptive computation and machine learning," in Reinforcement Learning: An Introduction, MIT Press, 1998 [44] G Tesauro, "Temporal difference learning and TD-Gammon," Communications of the ACM, vol 38, no 3, pp 58-68, 1995 [45] K K D S A A R J V M G B A G M R A K F G O S P C B A S I A H K D K Volodymyr Mnih, "Human-level control through deep reinforcement learning," Nature , vol 518, p 529–533, 2015 [46] P D Christopher J.C.H Watkins, "Technical Note Q-Learning," Machine Learning, vol 8, no 3-4, p 279–292, 1992 [47] R Bellman, Dynamic programming, Courier Corporation, 2013 [48] F Rosenblat, "The perceptron: A probabilistic model for information storage and organization in the brain," Psychological Review, p 65–386, 1958 [49] K Hornik, "Approximation capabilities of multilayer feedforward networks," Neural Networks, vol 4, no 2, pp 251-257, 1991 [50] P J Werbos, Beyond regression: New tools for prediction and analysis inthe behavioral sciences, MA, USA: Doctoral Dissertation, Applied Mathematics, 60 Harvard University, 1974 [51] R Hecht-Nielsen, "Theory of the backpropagation neural network," Neural Networks, vol 1, no 1, p 445, 1988 [52] D P K v J Ba, "Adam: A Method for Stochastic Optimization," in 3rd International Conference for Learning Representations, San Diego, 2015 [53] G H Tijmen Tieleman, "Lecture 6.5-rmsprop: Divide the gradientby a running average of its recent magnitude," COURSERA: Neural networksfor machine learning, 2012 [54] Y B A C Ian Goodfellow, Deep Learning, MIT Press, 2016 [55] H v Hasselt and M A Wiering, "Reinforcement Learning in Continuous Action Spaces," in 2007 IEEE International Symposium on Approximate Dynamic Programming and Reinforcement Learning, Honolulu, HI, USA, 2007 [56] L.-J Lin, "Self-Improving Reactive Agents Based on Reinforcement Learning, Planning and Teaching," Machine Learning, vol 8, no 3-4, p 293–321, 1992 [57] G D J Fred L Van Rossum, The Python Language Reference Manual (Python Manual), Network Theory Ltd., 2011 [58] A Géron, Hands-On Machine Learning with Scikit-Learn and TensorFlow, O'Reilly Media, 2017 [59] X Qu, M B Cohen and K M Woolf, "Combinatorial Interaction Regression Testing: A Study of Test Case Generation and Prioritization," in Conference: Software Maintenance, 2007 [60] B Jiang and W Chan, "Input-based adaptive randomized test case prioritization: A local beam search approach," Journal of Systems and Software, vol 105, pp 91-106, 2015 [61] S Chen, Z Chen, Z Zhao, B Xu and Y Feng, "Using semi-supervised clustering to improve regression test selection techniques," in 2011 Fourth IEEE International Conference on Software Testing, Verification and Validation, Berlin, Germany , 2011 [62] J F Bowring, J M Rehg and M J Harrold, "Active learning for automatic classification of software behavior," in Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis, Boston, Massachusetts, USA, 2004 61 [63] F Wang, S.-C Yang and Y.-L Yang, "Regression Testing Based on Neural Networks and Program Slicing Techniques," in Practical Applications of Intelligent Systems, AINSC, 2011, pp 409-418 [64] G Chaurasia, S Agarwal and S S Gautam, "Clustering based novel test case prioritization technique," in 2015 IEEE Students Conference on Engineering and Systems (SCES), Allahabad, India , 2015 [65] D Dang, "Open Source Test Automation: Riding the Second Wave," in STAREAST 2016 - Software Testing Conference, 2016 [66] J M B A B.-H U Kanewala, "Predicting metamorphic relations for testing scientific software: a machine learning approach using graph kernels," Software: Testing, Verification and Reliability , vol 26, no 3, pp 245-269, 2016 [67] N K F H S A I S Basri, "Predicting effort for requirementchanges during software development," in Seventh Symposiumon Information and Communication Technology, ACM, 2016 62 ... ưu hóa kiểm thử phần mềm 1.1 Giới thiệu kiểm thử phần mềm Phần giới thiệu kiểm thử phần mềm, khái niệm xung quanh kiểm thử phần mềm tự động hóa kiểm thử 1.1.1 Kiểm thử phương pháp kiểm thử khác... nghiên cứu riêng rẽ lĩnh vực kiểm thử học máy Việc thiếu nghiên cứu ứng dụng kĩ thuật học máy phù hợp vào mục đích kiểm thử phần mềm mơ hình đề xuất ứng dụng học máy trình bày luận văn Tác giả... phần mềm cao 1.2 Bài toán tối ưu kiểm thử phần mềm Kiểm thử hồi quy chiếm 80% ngân sách kiểm thử [23] Việc thực yêu cầu thay đổi mới, kiểm tra lại phần mềm, sửa lỗi nhanh phần quan trọng kiểm thử