Áp dụng thuật toán di truyền trong các dữ liệu kiểm thử phần mềm

22 777 1
Áp dụng thuật toán di truyền trong các dữ liệu kiểm thử phần mềm

Đ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

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - NGUYỄN THỊ QUỲNH NGA ÁP DỤNG THUẬT TOÁN DI TRUYỀN TRONG SINH CÁC DỮ LIỆU KIỂM THỬ PHẦN MỀM Chuyên ngành : Khoa học máy tính Mã số: 60.48.01.01 TĨM TẮT LUẬN VĂN THẠC SĨ HÀ NỘI – 2013 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 Huỳnh Quyết Thắng 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 MỞ ĐẦU 1.1 Lý chọn đề tài Thuật toán di truyền lập dựa sở lý thuyết Darwin giới thiệu lần Holland (1975), sau Goldberg (1989) Đến năm 1992 Michalewicz phát triển hoàn thiện phương pháp này; từ thuật tốn di truyền áp dụng lĩnh vực khác Kiểm thử phần mềm trình thực chương trình hệ thống với mục đích tìm kiếm lỗi Không giống hệ thống vật lý, hầu hết lỗi phần mềm lỗi thiết kế Xây dựng liệu thử nghiệm kiểm thử phần mềm địi hỏi chi phí lớn biết sử dụng phương pháp để tạo liệu thử nghiệm quan trọng Theo nghiên cứu: 50% chi phí phát triển phần mềm dành cho phần thử nghiệm Vì vây, việc sinh liệu tự động giúp chương trình thử nghiệm cung cấp liệu thử nghiệm cho phần mềm hiệu việc giảm chi phí tăng chất lượng kiểm thử Vì thế, em chọn đề tài " áp dụng thuật toán di truyền sinh liệu kiểm thử phần mềm" Nội dung luận văn gồm 04 chương Chương 1: Bài toán áp dụng thuật toán di truyền sinh liệu kiểm thử phần mềm Chương 2: Các kỹ thuật kiểm thử phần mềm Chương 3: Thuật toán di truyền Chương 4: Áp dụng thuật toán di truyền sinh liệu kiểm thử tự động CHƯƠNG 1: BÀI TOÁN ÁP DỤNG THUẬT TOÁN DI TRUYỀN SINH DỮ LIỆU KIỂM THỬ PHẦN MỀM 1.1 Đặt vấn đề Việc xác minh xác thực phần mềm thông qua kiểm thử động lĩnh vực kỹ thuật phần mềm mà tiến triển theo hướng tự động hóa bị chậm lại Đặc biệt tự động thiết kế sinh liệu kiểm thử Kiểm thử phần mềm kỹ thuật sử dụng để đạt tin tưởng người tiêu dùng Quá trình kiểm thử hệ thống phần mềm nhiệm vụ lớn tốn nhiều thời gian Theo Tai [1980], Ince [1987]: 50% chi phí phát triển phần mềm dành cho phần thử nghiệm [4] Vì mà có nhiều nghiên cứu nhằm tìm công cụ kiểm thử phần mềm tự động để giảm chi phí phát triển phần mềm Do đó, sinh liệu kiểm thử tự động công cụ hỗ trợ giúp thử nghiệm chương trình để sản xuất liệu thử nghiệm cho phần mềm Lý tưởng nhất, phần mềm kiểm tra đảm bảo khơng có lỗi phần mềm, thực tế, cho thấy lỗi phần mềm xuất Thậm chí cách phát phản ứng chúng, kiểm thử hệ thống khơng thể chứng minh hồn tồn khơng có lỗi Một mục tiêu kiểm thử phần mềm tìm lỗi tìm lỗi cấu trúc chương trình Tuy nhiên, vấn đề định ngừng thử nghiệm phần mềm, ví dụ khơng có lỗi tìm thấy hay sau khoảng thời gian tìm kiếm, số lỗi tìm thấy Trong ngành kỹ nghệ phần mềm, năm 1979, có quy tắc tiếng là: “Trong dự án lập trình điển hình, xấp xỉ 50% thời gian 50% tổng chi phí sử dụng kiểm thử chương trình hay hệ thống phát triển” [2] Và nay, sau gần phần kỷ, quy tắc cịn Đã có nhiều ngôn ngữ, hệ thống phát triển với cơng cụ tích hợp cho lập trình viên sử dụng phát triển ngày linh động Nhưng kiểm thử đóng vai trị quan trọng dự án phát triển phần mềm [15] Nói chung mục tiêu kiểm thử phần mềm thiết kế số lượng tối thiểu ca kiểm thử biết lỗi phần mềm Như đề cập kiểm thử phần mềm tốn thời gian thế, kiểm thử phần mềm tự động làm giảm đáng kể chi phí phát triển phần mềm Ngồi cịn có số lợi ích sau: việc chuẩn bị thử nghiệm thực trước, lần chạy thử nghiệm nhanh đáng kể tự tin kết thử nghiệm tăng lên Tuy nhiên, kiểm thử phần mềm tự động trình đơn giản Trong nhiều năm qua, nhiều nhà nghiên cứu đề xuất phương pháp khác để tạo liệu kiểm thử tự động, tức phương pháp khác cho phát triển liệu thử nghiệm[16] Sự phát triển kỹ thuật hỗ trợ việc tự động hóa kiểm thử phần mềm dẫn đến tiết kiệm chi phí đáng kể Như ứng dụng kỹ thuật nhân tạo công nghệ phần mềm Một số nhà nghiên cứu sử dụng ứng dụng để kiểm thử phần mềm, để làm điều phải có thuật tốn tìm kiếm phù hợp mơ luyện kim, thuật tốn di truyền, tối ưu hóa đàn kiến lựa chọn tốt cho sinh liệu kiểm thử tự động [16] Một số nhà nghiên cứu áp dụng thuật toán di truyền sinh liệu kiểm thử phần mềm, ngành khoa học máy tính, tìm kiếm lời giải tối ưu cho toán vấn đề đặc biệt nhà nghiên cứu quan tâm Mục đích thuật tốn tìm lời giải tốt thời gian nhỏ Các thuật tốn tìm kiếm danh sách, đồ thị sử dụng phương pháp đơn giản trực quan thuật tốn tìm kiếm metaheuristic áp dụng tri thức cấu trúc không gian tìm kiếm nhằm giảm thời gian cần thiết cho việc tìm kiếm sử dụng nhiều với khơng gian tìm kiếm nhỏ [5] Tuy nhiên, thực tiễn có nhiều tốn tối ưu với khơng gian tìm kiếm lớn cần phải giải Vì vậy, việc đòi hỏi thuật giải chất lượng cao sử dụng kỹ thuật trí tuệ nhân tạo đặc biệt cần thiết giải tốn có khơng gian tìm kiếm lớn GA kỹ thuật tìm kiếm lời giải tối ưu đáp ứng yêu cầu nhiều toán ứng dụng Thuật toán di truyền (GA) sử dụng thành công để tự động sinh liệu kiểm thử cho phát triển phần mềm ADA83 Các liệu kiểm thử lấy từ cấu trúc chương trình với mục đích qua nhánh Các nghiên cứu sử dụng hàm fitness, biến đầu vào thể mã nhị phân giống hình ảnh nhớ máy Điểm mạnh GA việc xử lý liệu đầu vào có cấu trúc số phức, vị từ phức tạp, hàm chưa biết biến đầu vào Vì vậy, vấn đề sinh liệu kiểm thử vấn đề tối ưu hóa Kiểm thử ngẫu nhiên sử dụng so sánh hiệu liệu kiểm thử sinh GA Lợi GA thơng qua việc tìm kiếm q trình tối ưu hóa, kiểm thử nâng cao chúng gần biên miền Thuật toán di truyền đưa nhiều cải tiến so với kiểm thử ngẫu nhiên miền nhỏ Phân tích đột biến sử dụng để thiết lập chất lượng liệu kiểm thử sinh ưu điểm, nhược điểm chúng 4 Thủ tục phần mềm khác với cấu trúc liệu đầu vào (số nguyên, ký tự, mảng, ghi), cấu trúc chương trình với điều kiện 'if' vịng lặp Nhiều thử nghiệm cho thấy, GA cần thời gian để CPU đạt giải pháp toàn cục so với kiểm thử ngẫu nhiên 1.2 Đối tượng nghiên cứu - Các kỹ thuật kiểm thử phần mềm: kiểm thử hộp trắng, kiểm thử hộp đen kiểm thử hộp xám; đó, kiểm thử hộp trắng nhấn mạnh - Lý thuyết sở thuật toán di truyền - Thủ tục khơng có điều kiện vịng lặp hàm có cấu trúc phức tạp như: thủ tục giải phương trình bậc hai hàm tìm kiếm nhị phân 1.3 Giải pháp công nghệ Luận văn sử dụng ngôn ngữ lập trình pascal để viết chương trình cho thủ tục hàm 1.4 Kết chương Chương I trình bày lợi việc sử dụng thuật toán di truyền sinh liệu kiểm thử tự động so với kiểm thử tự động Và chương đưa đối tượng nghiên cứu giải pháp công nghệ 5 CHƯƠNG 2: CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM Mục tiêu kiểm thử phải thiết kế trường hợp kiểm thử có khả cao việc phát nhiều lỗi với thời gian công sức tối thiểu Do đó, chia kỹ thuật kiểm thử thành ba loại: - Kỹ thuật kiểm thử hộp đen (Black - box Testing) hay gọi kỹ thuật kiểm thử chức (Functional Testing) - Kỹ thuật kiểm thử hộp trắng (White - box Testing) hay gọi kỹ thuật kiểm thử cấu trúc (Structural Testing) - Kỹ thuật kiểm thử hộp xám (Gray - box Testing) 2.1 Các kỹ thuật kiểm thử phần mềm 2.1.1 Kiểm thử hộp đen Trong kiểm thử hộp đen, cấu trúc cách xử lý chương trình kiểm tra khơng quan trọng Mục đích đặc tả điều kiện vào chương trình mà không cần quan tâm đến đặc điểm kỹ thuật Trong phương pháp này, liệu thử nghiệm cho phần mềm xây dựng từ đặc điểm kỹ thuật 2.1.2 Kiểm thử hộp trắng Đây ca thiết kế theo phương pháp sử dụng cấu trúc điều khiển thiết kế thủ tục để lấy ca kiểm thử 2.1.3 Kiểm thử hộp xám Kiểm thử hộp xám địi hỏi phải có truy cập tới cấu trúc liệu giải thuật bên giống kiểm thử hộp trắng cho mục đích thiết kế ca kiểm thử, kiểm thử mức người sử dụng hay mức hộp đen Việc thao tác tới liệu đầu vào định dạng liệu đầu không rõ ràng, giống “hộp xám” Do đó, kiểm thử hộp xám dạng kiểm thử tốt, có kết hợp kỹ thuật kiểm thử hộp đen hộp trắng 2.2 Sinh liệu kiểm thử tự động Kiểm thử tự động kiểm thử toàn diện, mang lại lợi ích như: giảm thời gian, cơng sức, nhân lực chi phí cho kiểm thử phần mềm 2.2.1 Sinh đường dẫn kiểm thử Sinh liệu kiểm thử đường dẫn kiểm thử hệ thống phần mềm sử dụng tiêu chí kiểm thử mà phủ đường dẫn, phủ lệnh, phủ nhánh…Hệ thống tự động sinh liệu kiểm thử phù hợp với yêu cầu lựa chọn 2.2.2 Đặc tả liệu Điểm xuất phát kiểm thử liệu từ đặc tả liệu nằm phương thức kiểm thử hộp đen Phương thức tạo ca kiểm thử liệu kiểm thử 2.2.3 Kiểm thử ngẫu nhiên Kiểm thử ngẫu nhiên lựa chọn tùy ý liệu kiểm thử từ miền đầu vào sau liệu kiểm thử áp dụng cho chương trình thử nghiệm Ưu điểm thực đơn giản tốn thời gian chạy 2.3 Kết chương Kiểm thử phần mềm sử dụng rộng rãi nhiều ứng dụng với việc nghiên cứu thử nghiệm khác Trong chương tác giả tập hợp tài liệu nội để trình bày tổng quan khác biệt số kỹ thuật kiểm thử phần mềm như: kiểm thử hộp đen, kiểm thử hộp trắng, kiểm thử hộp xám phương pháp sinh liệu kiểm thử tự động Kiểm thử hộp đen trọng vào việc kiểm tra quan hệ vào chức giao diện bên ngồi, thích hợp cho hệ thống phần mềm lớn hay thành phần quan trọng chúng Kiểm thử hộp trắng xem xét chương trình mức độ chi tiết phù hợp kiểm tra mô-đun nhỏ Kiểm thử hộp trắng khơng đầy đủ kiểm thử hết lệnh không chứng tỏ kiểm thử hết trường hợp Ngồi khơng thể kiểm thử hết đường vòng lặp lớn Trong chương cho ta thấy tư tưởng việc sinh liệu kiểm thử thuật toán di truyền hiệu so với sử dụng kiểm thử ngẫu nhiên 7 CHƯƠNG 3: THUẬT TOÁN DI TRUYỀN Những vấn đề tối ưu hóa xảy lĩnh vực, đặc biệt lĩnh vực kĩ thuật Chính vậy, nhiều phương pháp tối ưu hóa phát triển Tuy nhiên, phương pháp thường mắc lỗi với hàm khơng liên tục khơng tính đạo hàm điểm hàm bị nhiễu Chính vậy, phương pháp tốt xử lý hàm phát triển Trong khứ, cách tiếp cận sinh học vật lí thu hút ý việc giúp đỡ phát triển phương pháp tối ưu hóa, bao gồm hệ thống thần kinh, thuật tốn di truyền Chương giải thích đặc điểm phương thức Thuật toán di truyền Ngay sau ví dụ tối ưu hóa sử dụng Thuật toán di truyền 3.1 Giới thiệu thuật toán di truyền Thuật toán di truyền đại diện điển hình cho phương pháp trình tìm kiếm dựa phân tích gen thuyết Darwin tồn kẻ mạnh (thuyết chọn lọc tự nhiên) Có trao đổi ngẫu nhiên cấu trúc thông tin quần thể nhiễm sắc thể nhân tạo GA phiên máy tính thuyết tiến hóa sinh học tạo kết tốt việc giải vấn đề tối ưu hóa Trong việc kiểm thử phần mềm, bản, ý tưởng tìm kiếm miền cho biến đầu vào mà thỏa mãn mục tiêu việc kiểm thử 3.2 Ứng dụng thuật toán di truyền Thuật toán di truyền ứng dụng nhiều lĩnh vực 3.3 Đặc trưng thuật toán di truyền 3.3.1 Quần thể Một quần thể giống danh sách có nhiều khách (database – sở liệu) Nó chứa thông tin cá thể thành viên 3.3.1.1 Sự giao thoa phương án tối ưu hóa mức thấp 3.3.1.2 Chuẩn bị 3.3.1.3 Đại diện/Cách biểu diễn nhiễm sắc thể 3.3.2 Sự thích nghi Sự thích nghi thể chất lượng nhiễm sắc thể so với mức tối ưu toàn cục 8 3.3.3 Sự chọn lọc Toán tử chọn lọc chọn cá thể từ hệ để trở thành bố mẹ cho trình kết hợp lại bao gồm lai ghép đột biến Có nhiều cách khác để chọn lựa cá thể, ví dụ phương pháp ngẫu nhiên dựa giá trị thích nghi 3.3.3.1 Chọn lọc dựa giá trị phẩm chất 3.3.3.2 Chọn lọc ngẫu nhiên 3.3.4 Lai ghép Lai ghép diễn mức độ cá nhân Trước trình diễn ra, cá thể biểu diễn dạng nhị phân Trong lai ghép, bố mẹ trao đổi thông tin dạng chuỗi – vật liệu di truyền vị trí nhiễm sắc thể để tạo chuỗi Quá trình lai ghép tìm kiếm gen vượt trội vật liệu di truyền Mục đích trình để tạo cá thể tốt dựa kết hợp thông tin di truyền từ cá thể bố mẹ từ hệ trước 3.3.4.1 Lai ghép đơn 3.3.4.2 Lai ghép kép 3.3.4.3 Lai ghép đồng loạt 3.3.5 Sự đột biến Quá trình đột biến thay đổi ngẫu nhiên giá trị bit, từ thay đổi ngẫu nhiên số đặc tính Trong mã nhị phân, điều đơn giản có nghĩa thay đổi trạng thái gen từ sang ngược lại 3.3.5.1 Đột biến thông thường 3.3.5.2 Đột biến tính tốn trước 3.3.6 Sự tồn Phương pháp tồn định xem nhiễm sắc thể cá thể cũ tồn bị loại bỏ Để hồn thành cơng việc này, q trình chép phần cá thể tới quần thể bố mẹ, dựa phẩm chất cá thể tương tự trình chọn lọc 3.3.6.1 SURVIVE_1 3.3.6.2 SURVIVE_2 3.3.6.3 SURVIVE_3 3.3.6.4 SURVIVE_4 3.3.6.5 SURVIVE_5 3.4 Cấu trúc thuật toán di truyền Cấu trúc GA thể Hình 3.1, mã tương ứng Hình 3.2, t số hệ P quần thể t:= Bắt đầu {Khởi tạo quần thể ngẫu nhiên } Khởi tạo P(t) Khởi tạo quần thể {Khi điều kiện dừng chưa thỏa lặp} While not kết thúc Đánh giá thích nghi Đánh giá độ thích nghi P(t) Chọn lọc P(t+1) từ P(t) {Kết hợp gen cha mẹ Chọn lọc chọn lọc} Kết hợp P(t+1) với việc sử dụng lai ghép Lai ghép Đột biến đột biến Tồn t:= t + Thủ tục tồn {Hết lặp} end Điều kiện dừng Thỏa Kết thúc Khơng Hình 3.1 Sơ đồ cấu trúc thuật toán GA 3.5 Kết chương Hình 3.2 Mơ thuật tốn GA 10 Như ví dụ phần miêu tả, mục tiêu đạt phương án tối ưu cho hàm Cách thức làm việc GA miêu tả kỹ với ví dụ Những đặc điểm GA nêu đây:  Tập trung vào nhiễm sắc thể với thích nghi trung bình  Lợi dụng thơng tin số lượng lớn giá trị xử lí tập thể nhỏ  Ngăn chặn việc tìm kiếm bị tắc nghẽn điểm tối ưu tạm thời  Lợi dụng kiến thức cũ lưu trữ quần thể phương thức để tạo phương thức có hiệu chất lượng cao Trong trường hợp trình chọn lọc dựa phần phù hợp quần thể ban đầu tạo ngẫu nhiên với kích thước N nhanh chóng tạo tập hợp với N cá thể tốt GA cân lại sức ép chọn lọc phương pháp di truyền (lai ghép đột biến) tiến tới đồng hóa cách tạo đa dạng hóa dạng alen tập hợp lại chúng 11 CHƯƠNG 4: ÁP DỤNG THUẬT TOÁN DI TRUYỀN SINH CÁC DỮ LIỆU KIỂM THỬ TỰ ĐỘNG 4.1 Áp dụng thuật toán di truyền số ngẫu nhiên kiểm thử phần mềm Thuật toán di truyền hình thành phương pháp tìm kiếm thích nghi theo nghĩa thay đổi liệu thử nghiệm từ hệ tiếp theo, để tối ưu hóa hàm fitness Nó ngược lại với kiểm thử ngẫu nhiên, kiểm thử ngẫu nhiên tạo liệu thử nghiệm mà không cần khái niệm liệu trước Trong phần mơ tả giao tiếp phần mềm kiểm tra công cụ kiểm tra sử dụng hai phương pháp: thuật toán di truyền số ngẫu nhiên Phương pháp số ngẫu nhiên sử dụng việc thử nghiệm chiến lược để so sánh với thuật toán di truyền 4.1.1 Thử nghiệm sử dụng kiểm thử ngẫu nhiên Để đo lường hiệu thử nghiệm sử dụng thuật toán di truyền, thử nghiệm ngẫu nhiên thực Các hệ ngẫu nhiên kiểm thử kiểm tra để xác định thành viên miền đó, với xác suất đồng liên quan đến lực lượng miền Trong số trường hợp, hội kiểm tra hàm, miền có liên quan tới tồn miền giảm thiểu Lúc này, số ngẫu nhiên sử dụng nhằm sinh liệu thử nghiệm mà không sử dụng thơng tin phản hồi từ thử nghiệm trước Các thủ tục thử nghiệm với mong muốn nhánh thông qua 4.1.2 Cây đồ thị luồng điều khiển Cấu trúc chương trình hay thủ tục thể biểu đồ luồng điều khiển Xét ví dụ đưa hình 4.1 mơ tả sau: 12 if A B A 1214 P2 64 99% 19.4 >1294 P3 96 100% 13.4 1286 P4 128 100% 11.8 1510 P5 160 100% 9.1 1456 Ta thấy, với kích thước khác kết khác Việc thực thử nghiệm khác đưa đến điều tốt số lượng thử nghiệm cần thiết nhằm thỏa mãn tất nhánh 4.2.1.3 So sánh lai ghép Bảng 4.6 Kết sử dụng toán tử lai ghép Xác suất Lai ghép đơn Lai ghép kép Lai ghép đồng 0.1 96.4% 19.5 95.4% 19.5 99.1% 15.9 0.2 97.6% 17.9 96.7% 18.9 99.6% 16 0.3 97.5% 16.8 97% 18.8 100% 14.9 0.4 98% 16.9 97.5% 17.4 100% 14.8 0.5 98.4% 16.4 98.2% 18.2 100% 13.4 0.75 98.6% 17.2 98.3% 16.3 99.4% 15.4 0.9 98.1% 17.4 98% 16.8 99% 16.2 Kết thử nghiệm cho thấy lai ghép đồng đạt phủ nhánh tốt so với hai phương pháp 4.2.1.4 Đột biến Bảng 4.7 Kết sử dụng xác suất đột biến Pm Xác suất Pm Kết Thử nghiệm 0.05 82.2% 36.9 >4621 0.025 95.6% 28.2 >3011 0.01 100% 13.4 1287 0.005 87.4% 17.3 >2662 17 0.002 63.2% 14.4 >4407 Có thể thấy, xác suất đột biến làm tăng khả không tốt, điều tương tự việc sinh liệu ngẫu nhiên thuật tốn di truyền khơng thể sử dụng điểm mạnh để tạo kết tốt thay đổi nhiễm sắc thể lớn 4.2.1.5 Sử dụng đột biến 4.2.2 Kết phương trình bậc hai Nhiều thử nghiệm tiến hành để nghiên cứu kết hợp toán tử, xác suất phương pháp tốt cho thuật toán di truyền thể qua vấn đề sau: - Lai ghép đồng với Pc=0.5, kích thước quần thể PSZ=96, xác suất đột biến Pm=0.01, SURVIVE_5 với PS =0.5 , xác suất equality PE =0.3, hàm fitness, mã nhị phân cường độ đại diện tìm thấy cách thiết lập tốt 4.2.3 Tiểu kết Để so sánh hiệu việc sử dụng thuật toán di truyền, thử nghiệm ngẫu nhiên túy đưa Nếu đầu vào tạo phạm vi ± 100 với xác suất thống 7354 kiểm tra ngẫu nhiên đạt phủ nhánh đầy đủ (100% 76,6 hệ Trong đó, sử dụng thuật tốn di truyền 1287 thử nghiệm, phủ nhánh đầy đủ đạt 100% 13,4 hệ Do thời gian đạt phủ nhánh sử dụng phương pháp di truyền nhanh so với kiểm thử ngẫu nhiên.và sử dụng thuật tốn di truyền tối ưu tồn cục (D=0) tìm thấy sớm 4.3 Áp dụng thuật tốn di truyền kiểm thử hàm/thủ tục có cấu trúc phức tạp 4.3.1 Tìm kiếm nhị phân 18 Function BINARY_SEARCH(x:integer):integer; Var Low, High, Mid: integer; C A(MID)=x return Tim_thay: boolean; Begin A(MID)x While (Low lần If A[Mid] = x then Tim_thay:= true Else If a[Mid] < x then Low := Mid +1 Else High := Mid – 1; End; If Tim_thay then BINARY_SEARCH := Mid Else BINARY_SEARCH := 0; End; Hình 4.3 Cây luồng điều khiển chương trình phần mềm cho tìm kiếm nhị phân 4.3.2 Kết thủ tục tìm kiếm Khi điều kiện vịng lặp ‘while…do’ phụ thuộc vào số mảng, khơng thể kiểm tra cho lần lặp trừ định nghĩa mảng thay đổi Chiến lược thử nghiệm lặp lặp lại lần, lần nhiều lần lặp Kết thí nghiệm mô tả bảng 4.8 Bảng 4.8 Kết thủ tục tìm kiếm nhị phân cho kiểm thử vòng lặp Hàm fitness nghịch đảo SELECTION_R mã bit 66.4% 53 SELECTION_F 10 bit bit 98.8% 45.4 61.6% 66.6 10 bit 95.6% 45.7 19 >6503 thử >1628 thử >7457 thử nghiệm nghiệm >2103 thử nghiệm nghiệm 4.3.4 Tiểu kết Để nhận số lượng xác liệu kiểm thử cho kiểm thử ngẫu nhiên số lượng hệ tối đa tăng lên 300000, khơng có 6.9% thử nghiệm thành công Kết thể bảng 4.9 Bảng 4.9 Kết thử nghiệm ngẫu nhiên với số lượng vòng lặp xác định trước NITS =1 Nits Tốc độ thành công Thử nghiệm 100% 1261 40325 100% 666 21312 100% 83 2656 10 100% 2.6 83 Kết cho Nits = kiểm thử ngẫu nhiên cho thấy nhiều kiểm thử yêu cầu Số lượng thử nghiệm cần thiết sử dụng kiểm thử ngẫu nhiên tỉ lệ thuận với số lượng giải pháp toàn cục phạm vi giá trị ngẫu nhiên sinh NITS = trung bình có 40001 liệu kiểm thử phải tạo để sinh tối ưu toàn cục Con số trùng với kết xác định thực nghiệm NITS = 10 có 512 giải pháp tồn cục địi hỏi 79 ca kiểm thử Để thử nghiệm đầy đủ vịng lặp có 48640 ca kiểm thử u cầu so với 871 thử nghiệm đạt với GA, kiểm thử với thuật tốn di truyền thử nghiệm so với kiểm thử ngẫu nhiên tốc độ đạt phủ nhanh 20 KẾT LUẬN Việc nghiên cứu áp dụng thuật toán di truyền vào nhiều lĩnh vực thực thời gian dài, quan tâm tầm quan trọng, cần thiết lĩnh vực, đặc biệt ngành công nghiệp kiểm thử phần mềm GA sử dụng để giải loạt vấn đề hàng ngày kỹ thuật học máy hàm tối ưu Luận văn tác giả với đề tài: “áp dụng thuật toán di truyền sinh liệu kiểm thử phần mềm” hoàn thành Đề tài giải vấn đề sau: Trình bày khái niệm kỹ thuật kiểm thử phần mềm sinh liệu kiểm thử tự động Tìm hiểu đặc điểm, đặc trưng, ứng dụng thuật toán di truyền đưa ví dụ tối ưu hóa sử dụng thuật toán di truyền Luận văn áp dụng thuật toán di truyền vào thủ tục hàm khơng có điều kiện vịng lặp, có cấu trúc phức tạp để sinh liệu kiểm thử phần mềm chứng minh tính khả thi Thủ tục giải phương trình bậc hai hàm tìm kiếm nhị phân sử dụng cho thấy liệu kiểm thử tạo GA tốt so với kiểm thử ngẫu nhiên tạo Việc liệu kiểm thử sinh qua nút đạt phủ nhánh nhanh sử dụng GA so với kiểm thử ngẫu nhiên Trong tương lai luận văn phát triển theo hướng sau:  Tiếp tục nghiên cứu sở lý thuyết thuật toán di truyền vấn đề nghiên cứu tối ưu khác  Nghiên cứu việc áp dụng GA vào thủ tục giải tốn tam giác, tìm kiếm tuyến tính để có cách nhìn sâu hiệu GA so với kiểm thử ngẫu nhiên  Tìm hiểu hàm fitness Hamming sử dụng cho GA để so sánh với hàm fitness nghịch đảo mà GA hay sử dụng ... Bài toán áp dụng thuật toán di truyền sinh liệu kiểm thử phần mềm Chương 2: Các kỹ thuật kiểm thử phần mềm Chương 3: Thuật toán di truyền Chương 4: Áp dụng thuật toán di truyền sinh liệu kiểm thử. .. động CHƯƠNG 1: BÀI TOÁN ÁP DỤNG THUẬT TOÁN DI TRUYỀN SINH DỮ LIỆU KIỂM THỬ PHẦN MỀM 1.1 Đặt vấn đề Việc xác minh xác thực phần mềm thông qua kiểm thử động lĩnh vực kỹ thuật phần mềm mà tiến triển... thử phần mềm sinh liệu kiểm thử tự động Tìm hiểu đặc điểm, đặc trưng, ứng dụng thuật toán di truyền đưa ví dụ tối ưu hóa sử dụng thuật toán di truyền Luận văn áp dụng thuật toán di truyền vào

Ngày đăng: 13/02/2014, 11:06

Hình ảnh liên quan

Cấu trúc của GA được thể hiện trong Hình 3.1, mã tương ứng như trong Hình 3.2, trong đó t là số thế hệ  và P là quần thể  - Áp dụng thuật toán di truyền trong các dữ liệu kiểm thử phần mềm

u.

trúc của GA được thể hiện trong Hình 3.1, mã tương ứng như trong Hình 3.2, trong đó t là số thế hệ và P là quần thể Xem tại trang 11 của tài liệu.
Hình 4.1 Ví dụ về đồ thị luồng điều khiển - Áp dụng thuật toán di truyền trong các dữ liệu kiểm thử phần mềm

Hình 4.1.

Ví dụ về đồ thị luồng điều khiển Xem tại trang 14 của tài liệu.
Ta có các bảng kết quả thể hiện các thế hệ của quần thể thông qua thuật toán di truyền - Áp dụng thuật toán di truyền trong các dữ liệu kiểm thử phần mềm

a.

có các bảng kết quả thể hiện các thế hệ của quần thể thông qua thuật toán di truyền Xem tại trang 14 của tài liệu.
Bảng 4.2 Thế hệ thứ hai Pi  A B  Số  - Áp dụng thuật toán di truyền trong các dữ liệu kiểm thử phần mềm

Bảng 4.2.

Thế hệ thứ hai Pi A B Số Xem tại trang 15 của tài liệu.
Bảng 4.3 Quần thể con cái sinh ra bởi GA - Áp dụng thuật toán di truyền trong các dữ liệu kiểm thử phần mềm

Bảng 4.3.

Quần thể con cái sinh ra bởi GA Xem tại trang 15 của tài liệu.
Hình 4.2 Cây luồng điều khiển và chương trình phần mềm cho thủ tục bậc hai - Áp dụng thuật toán di truyền trong các dữ liệu kiểm thử phần mềm

Hình 4.2.

Cây luồng điều khiển và chương trình phần mềm cho thủ tục bậc hai Xem tại trang 16 của tài liệu.
Bảng 4.5 Kết quả của kích thước dân số - Áp dụng thuật toán di truyền trong các dữ liệu kiểm thử phần mềm

Bảng 4.5.

Kết quả của kích thước dân số Xem tại trang 18 của tài liệu.
Hình 4.3 Cây luồng điều khiển và chương trình phần mềm cho tìm kiếm nhị phân - Áp dụng thuật toán di truyền trong các dữ liệu kiểm thử phần mềm

Hình 4.3.

Cây luồng điều khiển và chương trình phần mềm cho tìm kiếm nhị phân Xem tại trang 20 của tài liệu.
Bảng 4.9 Kết quả thử nghiệm ngẫu nhiên với số lượng vòng lặp được xác định trước NITS = 1  - Áp dụng thuật toán di truyền trong các dữ liệu kiểm thử phần mềm

Bảng 4.9.

Kết quả thử nghiệm ngẫu nhiên với số lượng vòng lặp được xác định trước NITS = 1 Xem tại trang 21 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan