0

Các kỹ thuật kiểm thử cấu trúc chương trình theo hướng tiếp cận kiểm thử dựa

82 227 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

Tài liệu liên quan

Thông tin tài liệu

Ngày đăng: 25/07/2017, 21:34

Luận văn cao học MỤC LỤC LỜI CAM ĐOAN .4 DANH MỤC HÌNH VẼ DANH MỤC CÁC BẢNG DANH MỤC CÁC TỪ VIẾT TẮT PHẦN MỞ ĐẦU Lý chọn đề tài Mục tiêu nhiệm vụ nghiên cứu Bố cục luận văn CHƢƠNG TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM VÀ KIỂM THỬ CẤU TRÚC 10 1.1 Tổng quan kiểm thử phần mềm 10 1.1.1 Lý kiểm thử phần mềm 10 1.1.2 Vai trò kiểm thử phần mềm 10 1.1.3 Mục đích kiểm thử phần mềm .11 1.1.4 Quy trình kiểm thử phần mềm 11 1.2 Các kỹ thuật kiểm thử phần mềm 12 1.2.1 Kỹ thuật kiểm thử hộp trắng (White-Box Testing) 12 1.2.2 Kỹ thuật kiểm thử hộp đen (Black-Box Testing) .13 1.2.3 Kỹ thuật kiểm thử hộp xám (Gray-Box Testing) .14 1.3 Kiểm thử cấu trúc khái niệm .14 1.3.1 Khái niệm kiểm thử cấu trúc 14 1.3.2 Đồ thị luồng điều khiển 16 1.3.3 Phủ kiểm thử cấu trúc 17 1.4 Các phƣơng pháp kiểm thử cấu trúc .18 1.4.1 Kiểm thử theo câu lệnh .18 1.4.2 Kiểm thử theo đƣờng dẫn 19 1.4.3 Kiểm thử cấu trúc điều kiện .19 1.4.4 Kiểm thử theo vòng lặp 19 1.5 Kết chƣơng 20 Nguyễn Thanh Bắc Lớp 13BCNTT2 - Khoá 2013B Luận văn cao học CHƢƠNG PHƢƠNG PHÁP KIỂM THỬ DỰA TÌM KIẾM VÀ CÁC THUẬT TOÁN 23 2.1 Khái niệm kiểm thử dựa tìm kiếm 23 2.2 Lịch sử phát triển kiểm thử dựa tìm kiếm 23 2.3 Tìm kiếm Heuristic 25 2.3.1 Khái niệm 25 2.3.2 Các nguyên lý .26 2.4 Thuật toán leo đồi (Hill climbing - Pearl 1984) .26 2.4.1 Thuật toán leo đồi 27 2.4.2 Thuật toán leo đồi dốc đứng .29 2.4.3 Đánh giá hai thuật toán leo đồi 30 2.5 Thuật toán Tabu-search 31 2.5.1 Tƣ tƣởng .31 2.5.2 Sơ đồ thuật toán Tabu-search 32 2.5.3 Mục tiêu giải pháp TSG 32 2.5.4 Hàm đánh giá 33 2.5.5 Chọn lựa nút subgoal 36 2.5.6 Sinh ứng cử viên hàng xóm 37 2.5.7 Tabu list: nhớ TSG 38 2.5.8 Quá trình quay lui .39 2.6 Kết chƣơng 41 CHƢƠNG THỬ NGHIỆM ÁP DỤNG CÁC THUẬT TOÁN KIỂM THỬ DỰA TÌM KIẾM TRONG KIỂM THỬ CẤU TRÚC .44 3.1 Mô tả toán 44 3.2 Thử nghiệm áp dụng cài đặt thuật toán leo đồi 45 3.2.1 Ý tƣởng .45 3.2.2 Sơ đồ thuật toán 45 3.3 Thử nghiệm áp dụng cài đặt thuật toán leo đồi dốc đứng 47 3.3.1 Ý tƣởng .47 3.3.2 Sơ đồ thuật toán 47 Nguyễn Thanh Bắc Lớp 13BCNTT2 - Khoá 2013B Luận văn cao học 3.4 Thử nghiệm áp dụng cài đặt thuật toán Tabu-search 49 3.4.1 Ý tƣởng .49 3.4.2 Thuật toán 49 3.4.3 Sơ đồ thuật toán 50 3.5 Thực nghiệm đánh giá 52 3.5.1 Mô tả kết thực nghiệm 52 3.5.2 Kết thực nghiệm 53 3.5.3 Nhận xét đánh giá .54 3.6 Kết chƣơng 55 KẾT LUẬN VÀ KIẾN NGHỊ 56 A Kết luận: 56 B Kiến nghị: .57 C Hƣớng phát triển đề tài: 57 TÀI LIỆU THAM KHẢO .58 PHỤ LỤC .59 Mã nguồn chung ba thuật toán: 59 Mã nguồn cài đặt thuận toán leo đồi 65 Mã nguồn cài đặt thuận toán leo đồi dốc đứng .70 Mã nguồn cài đặt thuận toán Tabu-search 76 Nguyễn Thanh Bắc Lớp 13BCNTT2 - Khoá 2013B Luận văn cao học LỜI CAM ĐOAN Tôi xin cam đoan: Luận văn "Các kỹ thuật kiểm thử cấu trúc chƣơng trình theo hƣớng tiếp cận kiểm thử dựa tìm kiếm" thân tự thực dƣới hƣớng dẫn PGS.TS Huỳnh Quyết Thắng - Viện Công nghệ thông tin Truyền thông - Đại học Bách khoa Hà Nội; thông tin số liệu kết Luận văn có nguồn gốc rõ ràng, nội dung Luận văn chƣa đƣợc công bố công trình nghiên cứu nƣớc Hà Nội, tháng 12 năm 2014 Tác giả Luận văn Nguyễn Thanh Bắc Nguyễn Thanh Bắc Lớp 13BCNTT2 - Khoá 2013B Luận văn cao học DANH MỤC HÌNH VẼ Hình 1.1 Quy trình kiểm thử phần mềm 12 Hình 1.2 Minh hoạ kiểm thử hộp trắng 12 Hình 1.3 Minh hoạ kiểm thử hộp đen 13 Hình 1.4 Quy trình kiểm thử cấu trúc 15 Hình 1.5 Các thành phần đồ thị chƣơng 16 Hình 1.6 Các cấu trúc điều khiển phổ biến chƣơng trình 16 Hình 1.7 Mã nguồn hàm foo đồ thị dòng điều khiển 17 Hình 2.1 Quá trình phát triển kiểm thử dựa tìm kiếm .24 Hình 2.2 Tỉ lệ áp dụng dựa tìm kiếm để kiểm thử phần mềm 24 Hình 2.3 Ví dụ kiểm thử tốt đƣợc chứa nút ni mà có hai nút nj nk 34 Hình 2.4 Ví dụ lựa chọn nút subgoal .37 Hình 2.5 Ví dụ mô tả trình quay lui 40 Hình 3.1 Biểu đồ luồng liệu toán phân loại tam giác .44 Nguyễn Thanh Bắc Lớp 13BCNTT2 - Khoá 2013B Luận văn cao học DANH MỤC CÁC BẢNG Bảng 2.1 Định nghĩa hàm đánh giá fnjni( ̅ ) 35 Bảng 2.2 Định nghĩa hàm đánh giá fpni( ̅ ) 36 Bảng 3.1 Bảng kết thực nghiệm thuật toán leo đồi .53 Bảng 3.2 Bảng kết thực nghiệm thuật toán leo đồi dốc đứng 53 Bảng 3.3 Bảng kết thực nghiệm thuật toán Tabu-search 54 Nguyễn Thanh Bắc Lớp 13BCNTT2 - Khoá 2013B Luận văn cao học DANH MỤC CÁC TỪ VIẾT TẮT STT Từ viết tắt Tên đầy đủ Giải thích CS Current Solution Giải pháp LT Long-term tabu list Danh sách tabu lƣu trữ vĩnh viễn ST Short-term tabu list Danh sách tabu lƣu trữ tạm thời CFG Control Flow Graph Đồ thị luồng điều khiển TSG Tabu Search Generator BS Best Solution Giải pháp tốt BKS Best Known Solution Giải pháp tốt có Nguyễn Thanh Bắc Lớp 13BCNTT2 - Khoá 2013B Luận văn cao học PHẦN MỞ ĐẦU Lý chọn đề tài Với phát triển nhanh chóng ngành công nghệ thông tin nói chung công nghệ phần mềm nói riêng, việc phát triển phần mềm ngày đƣợc hỗ trợ nhiều công cụ tiên tiến nhằm giúp cho chất lƣợng hiệu trở nên tốt Tuy nhiên, độ phức tạp phần mềm giới hạn thời gian, chi phí nên cho dù hoạt động đảm bảo chất lƣợng phần mềm kiểm thử phần mềm ngày chặt chẽ khoa học nhƣng đáp ứng đƣợc tính đắn phần mềm Các lỗi tiềm ẩn sản phẩm phần mềm gây thiệt hại khôn lƣờng triển khai thực tế Kiểm thử phần mềm hoạt động quan trọng tiến trình phát triển phần mềm Nó góp phần lớn việc đánh giá chất lƣợng phần mềm quy trình bắt buộc dự án phát triển phần mềm giới nhƣ nƣớc Tuy nhiên, hoạt động kiểm thử thƣờng gặp nhiều khó khăn Thứ nhất, kiểm thử hệ thống phức tạp đòi hỏi nhiều nguồn tài nguyên chi phí cao Thứ hai, tiến trình phát triển phần mềm trải qua nhiều hoạt động biến đổi thông tin, mát thông tin trình biến đổi yếu tố làm cho hoạt động kiểm thử khó khăn Thứ ba, kiểm thử chƣa đƣợc trọng đào tạo ngƣời Cuối cùng, không tồn kỹ thuật kiểm thử cho phép khẳng định phần mềm hoàn toàn đắn hay không chứa lỗi Mục tiêu nhiệm vụ nghiên cứu Với mục đích phát lỗi, kiểm thử phần mềm thƣờng phải trải qua bƣớc: tạo liệu thử, thực thi phần mềm liệu thử quan sát kết nhận đƣợc Trong bƣớc này, bƣớc tạo liệu đóng vai trò quan trọng nhất, tạo liệu từ miền vào chƣơng trình, mà tạo liệu thử có khả phát lỗi cao Vấn đề đặt để đánh giá đƣợc khả phát lỗi liệu thử? Nguyễn Thanh Bắc Lớp 13BCNTT2 - Khoá 2013B Luận văn cao học Do đó, luận văn tập trung nghiên cứu nội dung sau:  Tìm hiểu kỹ thuật kiểm thử đảm bảo chất lƣợng phần mềm kỹ thuật kiểm thử cấu trúc chƣơng trình  Áp dụng phƣơng pháp kiểm thử dựa tìm kiếm kiểm thử cấu trúc  Thực nghiệm đánh giá kết áp dụng kỹ thuật sinh liệu dựa tìm kiếm cho kiểm thử cấu trúc Bố cục luận văn Chương 1: Giới thiệu tổng quan kiểm thử phần mềm kỹ thuật kiểm thử cấu trúc chƣơng trình Chƣơng trình bày quy trình, khái niệm, kỹ thuật kiểm thử phần mềm việc lựa chọn kiểu kiểm thử cho hệ thống phần mềm Chương 2: Phƣơng pháp kiểm thử dựa tìm kiếm Chƣơng trình bày khái niệm mô hình chung kiểm thử dựa tìm kiếm, lợi ích thuật toán áp dụng kỹ thuật Chương 3: Thực nghiệm đánh giá kết Phần cuối luận văn trình bày thực nghiệm kỹ thuật kiểm thử dựa tìm kiếm vào toán kiểm thử cho chƣơng trình phân loại tam giác Từ so sánh đánh giá ƣu điểm cải tiến so với kỹ thuật kiểm thử đơn giản Nguyễn Thanh Bắc Lớp 13BCNTT2 - Khoá 2013B Luận văn cao học CHƢƠNG TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM VÀ KIỂM THỬ CẤU TRÚC 1.1 Tổng quan kiểm thử phần mềm Kiểm thử phần mềm trình khảo sát hệ thống hay thành phần dƣới điều kiện xác định, quan sát ghi lại kết đánh giá khía cạnh hệ thống thành phần [4] Kiểm thử phần mềm tiến trình hay tập hợp tiến trình đƣợc thiết kế để đảm bảo mã máy tính thực theo mà chúng đƣợc thiết kế để làm không thực thứ không mong muốn Đây pha quan trọng trình phát triển hệ thống, giúp cho ngƣời xây dựng hệ thống khách hàng thấy đƣợc hệ thống đáp ứng đƣợc yêu cầu đặt chƣa 1.1.1 Lý kiểm thử phần mềm Lý việc kiểm thử để từ thấy đƣợc ý nghĩa việc xây dựng ca kiểm thử hiệu Có số lý hoạt động kiểm thử phần mềm nhƣ sau Lý thứ nhất, khía cạnh xem xét sản phẩm, ngƣời phát triển muốn kiểm tra phần mềm nhƣ phần tử hệ thống hoạt động cần phải thực thông qua hoạt động kiểm thử phẩn mềm Lý quan trọng thứ hai thực tốt hoạt động kiểm thử, hạn chế đƣợc chi phí cho thất bại lỗi gây sau 1.1.2 Vai trò kiểm thử phần mềm Thực tế chứng minh hoạt động kiểm thử có vai trò vô quan trọng tiến trình phát triển phần mềm Vai trò đƣợc thể qua chi phí hiệu hoạt động kiểm thử mang lại Về mặt chi phí, hoạt động kiểm thử chiếm khoảng 40% tổng công sức phát triển phần mềm chiếm tới 30% tổng thời gian phát triển Ngoài với phần mềm có ảnh hƣởng tới sinh mạng chi phí kiểm thử gấp từ đến lần tổng chi phí khác cộng lại [1] Nguyễn Thanh Bắc 10 Lớp 13BCNTT2 - Khoá 2013B Luận văn cao học } } System.out.print("\n Subgoal sau xoa:"); for (inti = 0; i
- Xem thêm -

Xem thêm: Các kỹ thuật kiểm thử cấu trúc chương trình theo hướng tiếp cận kiểm thử dựa , Các kỹ thuật kiểm thử cấu trúc chương trình theo hướng tiếp cận kiểm thử dựa ,

Từ khóa liên quan