ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƢỜNG ĐẠI HỌC BÁCH KHOA --------------------------- ĐOÀN XUÂN DUY HỆ HỖ TRỢ LẬP LỊCH DỰ ÁN KIỂM THỬ PHẦN MỀM VỚI DỮ LIỆU SCHEDULING DECISION SUPPORT SYSTEM USING HISTORY FOR SOFTWARE TESTING PROJECTS Ngành : KHOA HỌC MÁY TÍNH Mã số: 60.01 LUẬN VĂN THẠC SĨ TP. HỒ CHÍ MINH, tháng 1. CÔNG TRÌNH ĐƢỢC HOÀN THÀNH TẠI TRƢỜNG ĐẠI HỌC BÁCH KHOA – ĐHQG - HCM Cán bộ hƣớng dẫn khoa học : PGS.TS Quản Thành Thơ.
(Ghi rõ họ, tên, học hàm, học vị và chữ ký) Cán bộ chấm nhận xét 1 : PGS.TS Bùi Hoài Thắng. (Ghi rõ họ, tên, học hàm, học vị và chữ ký) Cán bộ chấm nhận xét 2 : TS. (Ghi rõ họ, tên, học hàm, học vị và chữ ký) Luận văn thạc sĩ đƣợc bảo vệ tại Trƣờng Đại học Bách Khoa, ĐHQG Tp. Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: (Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ) 1.
Dƣơng Tuấn Anh. Nguyễn Đức Dũng .TS Bùi Hoài Thắng. Huỳnh Tƣờng Nguyên. Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trƣởng Khoa quản lý chuyên ngành sau khi luận văn đã đƣợc sửa chữa (nếu có).
CHỦ TỊCH HỘI ĐỒNG TRƢỞNG KHOA KH&KTMT ĐẠI HỌC QUỐC GIA TP.HCM CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƢỜNG ĐẠI HỌC BÁCH KHOA Độc lập - Tự do - Hạnh phúc NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: Đoàn Xuân Duy. Ngày, tháng, năm sinh: 27/9/1991. Ngành: Khoa Học Máy Tính. TÊN ĐỀ TÀI: XÂY DỰNG HỆ HỖ TRỢ LẬP LỊCH DỰ ÁN KIỂM THỬ PHẦN MỀM VỚI DỮ LIỆU.
NHIỆM VỤ VÀ NỘI DUNG: Xây dựng hệ hỗ trợ lập lịch cho dự án kiểm thử phần mềm với giải thuật xấp xỉ nhằm tìm đƣợc lịch thực hiện testcase có tổng thời gian thực hiện tối ƣu và phù hợp với nguồn nhân lực hiện tại trong các lịch có cùng tổng thời gian tối ƣu thực hiện để giảm chi phí và rủi ro khi thực hiện theo lịch. NGÀY GIAO NHIỆM VỤ : 04/09/2017. NGÀY HOÀN THÀNH NHIỆM VỤ: 10/07/2017 - 03/12/2017. CÁN BỘ HƢỚNG DẪN : PGS.TS Quản Thành Thơ.
CÁN BỘ HƢỚNG DẪN TRƢỞNG KHOA KH & KTMT (Họ tên và chữ ký) (Họ tên và chữ ký) PGS.TS QUẢN THÀNH THƠ 2 LỜI CẢM ƠN Tôi xin gửi lời cảm ơn chân thành và sâu sắc đến PGS. Quản Thành Thơ, ngƣời Thầy đã tận tình chỉ bảo tôi trong suốt quá trình thực hiện luận văn và tạo mọi điều kiện tốt nhất để tôi có thể hoàn thành luận văn này. Tôi xin cảm ơn quý thầy cô ở trƣờng Đại học Bách Khoa đã truyền đạt các kiến thức cần thiết trong quá trình học tập tại trƣờng. Tôi xin cảm ơn gia đình, bạn bè và đồng nghiệp đã động viên và tạo mọi điều kiện thuận lợi để tôi có thể tiếp tục theo đuổi việc học tập và nghiên cứu.
3 TÓM TẮT Dựa vào những tri thức đã biết và các công trình khoa học có liên quan về lập lịch công việc, công trình nghiên cứu xây dựng một tiêu chí đánh giá độ phù hợp của testcase đối với tester và áp dụng giải thuật lập lịch xấp sỉ phù hợp vào việc giải quyết mô hình bài toán lập lịch kiểm thử dự án phần mềm. Cuối cùng công trình nghiên cứu tiến hành xây dựng hệ hỗ trợ lập lịch Based on the knowledge of known and the scientific work related to scheduling, the research proposed a selection criterion to evaluate the suitability between testcase and tester then appling the approximate scheduling for solving the software project scheduling problem model. Finally, the research builds a support system for testing software project scheduling. 4 LỜI CAM ĐOAN Tôi cam đoan rằng, ngoại trừ các kết quả tham khảo từ các công trình khác nhƣ đã ghi rõ trong luận văn, các công việc trình bày trong luận văn là do chính tôi thực hiện và chƣa có phần nội dung nào của luận văn này đƣợc nộp để lấy một bằng cấp ở trƣờng này hoặc trƣờng khác.
5 Mục lục Chƣơng 1: Tổng quan về đề tài. Giới thiệu đề tài. Mục tiêu, phạm vi và đối tƣợng nghiên cứu. Mục tiêu nghiên cứu.
Đối tƣợng và phạm vi nghiên cứu. Ý nghĩa thực tiễn và khoa học của đề tài. Ý nghĩa thực tiễn. Ý nghĩa khoa học.
10 Chƣơng 2: Các công trình nghiên cứu khoa học liên quan. Mô hình bài toán lập lịch kiểm thử dự án phần mềm:. Lƣợc khảo các công trình nghiên cứu khoa học liên quan. Lập lịch dùng giải thuật di truyền (Genetic Algorithm).
Lập lịch dùng mô phỏng luyện kim (Simulated Annealing). Lập lịch dùng giải thuật đàn kiến (Ant Colony Algorithm). Lập lịch dùng tìm kiếm Tabu (Tabu Search). Lập lịch dùng giải thuật tối ƣu bầy đàn (Particle Swarm Optimization).
14 Chƣơng 3: Triển khai các giải thuật lập lịch đả lƣợc khảo với tiêu chí điểm chọn15 3. Đề xuất tiêu chí điểm chọn. Quá trình tạo cơ sở tri thức điểm chọn.1 Thu thập và tinh chỉnh dữ liệu.2 Xây dựng công thức tính tiêu chí điểm chọn. Ứng dụng tiêu chí điểm chọn vào các giải thuật đã lƣợc khảo .1 Giải thuật di truyền cho lập lịch kiểm thử dự án phần mềm .2 Giải thuật mô phỏng luyện kim cho lập lịch kiểm thử dự án phần mềm .3 Giải thuật đàn kiến cho lập lịch kiểm thử dự án phần mềm .4 Giải thuật tìm kiếm Tabu cho lập lịch kiểm thử dự án phần mềm .5 Giải thuật tối ƣu bầy đàn cho lập lịch kiểm thử dự án phần mềm.
32 Chƣơng 4: Thực nghiệm các giải pháp lập lịch đả áp dụng tiêu chí điểm chọn. Mục tiêu thực nghiệm. Triển khai thực nghiệm. Lựa chọn tập mẫu thực nghiệm thực tế.
Kết quả thực nghiệm. Nhận xét về kết quả thực nghiệm. 39 Chƣơng 5: Xây dựng hệ hỗ trợ lập lịch dự án kiểm thử phần mềm. Hệ hỗ trợ lập lịch dự án kiểm thử phần mềm.
Kết quả xây dựng. 40 Chƣơng 6: Kết luận. Những điều đạt đƣợc. Những điều chƣa đƣợc.
Hƣớng phát triển trong tƣơng lai. 43 Tài liệu tham khảo. 45 7 Chƣơng 1: Tổng quan về đề tài Giới thiệu đề tài, mục tiêu và phạm vi nghiên cứu. Tiếp theo trình bày về ý nghĩa thực tiễn và khoa học đặt đƣợc từ công trình nghiên cứu.
Giới thiệu đề tài Theo truyền thống lập lịch test case thì các test case đƣợc chia tuần tự cho từng tester. Đối với việc kiểm thử cho hệ thống lớn thì số lƣợng tập các test case cần thực hiện để đảm bảo chất lƣợng của một hệ thống phần mềm tăng trƣởng rất nhanh theo sự phức tạp của hệ thống, khiến áp lực công việc cần thực hiện kiểm thử tăng lên nhằm đáp ứng việc phản hồi kết quả kiểm thử nhanh chóng do các chỉnh sửa ứng dụng theo sự thay đổi yêu cầu của khách hàng và mong muốn rút ngắn thời gian hoàn thành sản phẩm. Điều này đƣợc thể hiện rõ ràng nhất trong giai đoạn kiểm thử hồi quy liên tục, khi một tập lớn các test case có thứ tự hay không có thứ tự thực hiện đƣợc kiểm thử lặp đi lặp lại thƣờng xuyên theo từng phiên bản phần mềm Để rút ngắn thời gian thực hiện kiểm thử thì ta có nhiều phƣơng pháp khác nhau nhƣ lựa chọn test case theo độ ƣu tiên và giảm tập hợp các test case không quan trọng để tăng tốc độ thực hiện kiểm thử phần mềm [1]. Ngoài ra chúng ta cũng cần một lịch phân công kiểm thử cụ thể tập test case cho các tester sao cho lịch có tổng thời gian thực hiện thực hiện các test case (makespan) là ngắn nhất và phù hợp với tình huống nhất trên tổng số các lịch có cùng makespan để tránh rủi ro khi thực hiện.
Vì vậy việc lập lịch cho dự án kiểm thử phần mềm đã trở thành một yếu tố quan trọng trong giai đoạn kiểm thử của công nghiệp sản xuất phần mềm ứng dụng. Lập lịch kiểm thử dự án phần mềm là một khía cạnh cụ thể của bài toán lập lịch công việc. Bài toán lập lịch là một trong những vấn đề tổ hợp khó khăn nhất thuộc đa thức không xác định; có nghĩa là vấn đề không thể giải quyết đƣợc trong thời gian đa thức. Vì vậy, việc giải quyết vấn đề lập lịch công việc tối ƣu đã thu hút đƣợc sự chú ý của nhiều nhà nghiên cứu vì tầm quan trọng thực tế và độ phức phức tạp [2].
Hiện nay, phƣơng pháp tìm kiếm lịch công việc chủ yếu bao gồm hai loại là lập lịch theo phƣơng pháp chính xác và lập lịch theo phƣơng pháp xấp xỉ. Phƣơng pháp chính xác đòi hỏi thời gian tính toán dài trong các trƣờng hợp tìm kiếm trên không gian lớn, chẳng hạn nhƣ nhánh cận (branch & bound), các phƣơng pháp lập trình tuyến tính (linear program), phƣơng pháp phân rả (decomposition method), hội tụ (convergence). Trong nhiều trƣờng hợp thực tế để giải quyết tìm kiếm lịch công việc thì các phƣơng pháp xấp 8 xỉ ngày trở nên phù hợp hơn cả vì cho lịch phân công gần với tối ƣu và có thời gian tính toán nhanh hơn rất nhiều. Trong các phƣơng pháp xấp xỉ thì các phƣớng pháp thuộc meta-heuristics có kết quả lập lịch công việc tối ƣu tốt và đƣợc đánh giá cao nhƣ giải thuật di truyền (genetic algorithm-GA) [3-4], mô phỏng luyện kim (simulated annealing-SA) [5-8], giải thuật đàn kiến (ant colonoy algorithm-ACO) [9- 11], tìm kiếm Tabu (Tabu search-TS) [12-14], tối ƣu bầy đàn (particle swarm optimization-PSO) [16-18].
Công trình nghiên cứu là tập trung lƣợc khảo các giải thuật xấp xỉ nổi bật thuộc meta-heuristics để chọn ra giải thuật tối ƣu phù hợp cho việc lập lịch kiểm thử dự án phần mềm và tìm ra cách thức xác định độ phù hợp của các test case đối với đối tƣợng thực thi. Từ đó xây dựng hệ hỗ trợ lập lịch cho dự án kiểm thử phần mềm áp dụng tiêu chí độ phù hợp vào giải thuật xấp xỉ để tìm lịch thực hiện test case có makespan tối ƣu và phù hợp tình huống thực tế. Mục tiêu, phạm vi và đối tƣợng nghiên cứu 1. Mục tiêu nghiên cứu Dựa vào những tri thức đã biết và các công trình khoa học có liên quan về lập lịch công việc, công trình nghiên cứu sẽ tìm hiểu các ý tƣởng lập lịch theo phƣơng pháp xấp xỉ nhằm lựa chọn giải thuật phù hợp vào việc giải quyết bài toán lập lịch kiểm thử dự án phần mềm.
Bên cạnh đó công trình nghiên cứu còn tìm cách xây dựng một tiêu chí đánh giá độ phù hợp của test case đối với tester làm cơ sở tri thức cho lựa chọn tester thực thi test case.