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 dựa tìm kiếm

Luận văn trình bày các 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 với thuật toán leo đồi và Tabu-search.

Trường đại học

Đại học Bách khoa Hà Nội

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

Luận văn cao học

2014

75
2
0

Phí lưu trữ

30 Point

Tóm tắt

I. Khái niệm cơ bản về kiểm thử cấu trúc chương trình dựa trên tìm kiếm

Kiểm thử cấu trúc chương trình dựa trên tìm kiếm là một phương pháp kiểm thử hiện đại kết hợp giữa phân tích cấu trúc chương trìnhcác thuật toán tìm kiếm để phát hiện lỗi một cách hiệu quả. Phương pháp này sử dụng đồ thị dòng điều khiển để biểu diễn các con đường thực thi trong chương trình, sau đó áp dụng các thuật toán tối ưu hóa để tìm các test case có khả năng phát hiện lỗi cao nhất. Điều này giúp giảm số lượng test case cần thiết trong khi vẫn đảm bảo độ phủ cao. Kỹ thuật này đặc biệt hữu ích trong việc kiểm thử các chương trình phức tạp với nhiều nhánh điều kiện và vòng lặp.

1.1. Định nghĩa kiểm thử dựa trên tìm kiếm

Kiểm thử dựa trên tìm kiếm là quá trình sử dụng các thuật toán tìm kiếm tự động để tạo ra các test case nhằm phát hiện lỗi trong phần mềm. Phương pháp này giảm bớt công sức thủ công và nâng cao độ chính xác trong việc kiểm thử. Các thuật toán như leo đồi, Tabu search được áp dụng để tìm kiếm các đường thực thi khó phát hiện, từ đó tạo ra những test case chất lượng cao.

1.2. Vai trò của đồ thị dòng điều khiển

Đồ thị dòng điều khiển (CFG) là nền tảng quan trọng của kiểm thử cấu trúc. Nó biểu diễn tất cả các con đường thực thi có thể của chương trình, giúp xác định các điểm kiểm thử quan trọng. Bằng cách phân tích CFG, các nhà kiểm thử có thể xác định những nút cần phủcác điều kiện cần kiểm thử một cách toàn diện.

II. Các thuật toán tìm kiếm trong kiểm thử cấu trúc

Để áp dụng kiểm thử dựa trên tìm kiếm, có hai thuật toán chính được sử dụng: thuật toán leo đồi (Hill Climbing)thuật toán Tabu search. Thuật toán leo đồi là phương pháp tối ưu địa phương, di chuyển từ một giải pháp hiện tại sang giải pháp tốt hơn trong vùng lân cận. Tuy đơn giản nhưng có thể bị mắc kẹt tại cực tiểu địa phương. Thuật toán Tabu search khắc phục hạn chế này bằng cách sử dụng danh sách cấm (tabu list) để tránh quay trở lại các giải pháp đã xét. Cả hai thuật toán đều có những ưu và nhược điểm riêng, tùy vào bài toán kiểm thử cụ thể.

2.1. Thuật toán leo đồi cơ bản

Thuật toán leo đồi hoạt động bằng cách bắt đầu từ một test case ngẫu nhiên, sau đó liên tục di chuyển sang các test case lân cận có giá trị hàm mục tiêu cao hơn. Quá trình tiếp tục cho đến khi đạt được cực tiểu địa phương. Phương pháp này nhanh nhưng có nguy c险bị mắc kẹt, đặc biệt trên các bề mặt không lồi.

2.2. Thuật toán Tabu search nâng cao

Tabu search cải tiến leo đồi bằng cách duy trì bộ nhớ tabu list ghi lại các bước đã thực hiện. Điều này cho phép thuật toán thoát khỏi cực tiểu địa phương và khám phá không gian tìm kiếm rộng hơn. Cơ chế quay lui cho phép tìm kiếm tiếp tục khi không còn lựa chọn tốt hơn.

III. Quy trình kiểm thử cấu trúc dựa trên tìm kiếm

Quy trình kiểm thử cấu trúc dựa trên tìm kiếm bao gồm các bước: (1) Xây dựng đồ thị dòng điều khiển từ mã nguồn, (2) Định nghĩa hàm đánh giá để đo mức độ tốt của test case, (3) Chọn thuật toán tìm kiếm phù hợp, (4) Chạy thuật toán để tìm kiếm test case tối ưu, (5) Thực thi test case trên chương trình. Mục tiêu là phủ được tất cả các đường dẫn, nhánh điều kiện hoặc câu lệnh quan trọng. Phương pháp này giúp tối ưu hóa số lượng test case và nâng cao hiệu quả phát hiện lỗi.

3.1. Định nghĩa hàm đánh giá

Hàm đánh giá (fitness function) là yếu tố quyết định trong kiểm thử dựa trên tìm kiếm. Hàm này định lượng mức độ gần gũi giữa trạng thái hiện tại và mục tiêu kiểm thử. Ví dụ, nó có thể tính khoảng cách từ một điểm test đến một nhánh chưa được phủ. Hàm đánh giá tốt sẽ hướng dẫn thuật toán tìm kiếm hiệu quả đến các vùng quan trọng.

3.2. Lựa chọn và cài đặt thuật toán

Việc lựa chọn thuật toán tìm kiếm phù hợp phụ thuộc vào đặc điểm bài toán kiểm thử. Leo đồi phù hợp với các bài toán đơn giản, trong khi Tabu search tỏ hiệu quả hơn trên các bài toán phức tạp có nhiều điểm cực tiểu. Cài đặt thích hợp các tham số của thuật toán cũng rất quan trọng để đạt kết quả tốt nhất.

IV. Ứng dụng thực tiễn và kết quả thực nghiệm

Các kỹ thuật kiểm thử cấu trúc dựa trên tìm kiếm đã được áp dụng thành công trên nhiều chương trình kiểm thử khác nhau. Thực nghiệm cho thấy thuật toán Tabu search thường cho kết quả tốt hơn leo đồi cơ bản trong việc phát hiện lỗi. Tỷ lệ phủ code đạt được cao hơn trong thời gian ngắn hơn. Phương pháp này đặc biệt hiệu quả trong kiểm thử các điều kiện phức tạpvòng lặp lồng nhau. Tuy nhiên, hiệu suất vẫn phụ thuộc vào chất lượng hàm đánh giátham số cài đặt của từng thuật toán.

4.1. Kết quả thực nghiệm so sánh

Các thí nghiệm so sánh giữa leo đồiTabu search cho thấy: Tabu search đạt tỷ lệ phủ nhánh cao hơn 15-25%, số lượng test case cần thiết ít hơn, và thời gian tìm kiếm nhanh hơn. Trên các chương trình phức tạp, ưu thế của Tabu search càng rõ rệt. Kết quả này chứng minh hiệu quả của kiểm thử dựa trên tìm kiếm trong thực tiễn.

4.2. Hướng phát triển tương lai

Kiểm thử cấu trúc dựa trên tìm kiếm có tiềm năng phát triển cao. Các hướng cải tiến bao gồm: kết hợp machine learning để tối ưu hàm đánh giá, áp dụng thuật toán di truyền hoặc particle swarm optimization, và tích hợp với tools kiểm thử tự động. Điều này sẽ mở ra những cơ hội mới trong kiểm thử phần mềm hiện đại.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI. Nếu bạn thấy nội dung không chính xác hoặc có vấn đề, vui lòng Báo lỗi nội dung.

28/12/2025
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

Trích đoạn nội dung tài liệu

Chương 1: Giới thiệu tổng quan về kiểm thử phần mèm và các kỹ thuật kiểm. thử cầu trúc chương trinh. Chương này trình bảy về các quy trình, các khải niệm, kỹ thuật kiểm thứ phân mềm và 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 nảy trình bảy về khải niệm vả mô hình chung của kiểm thử dựa tìm kiểm, lợi ích vả các thuật toản áp dụng kỹ thuật này. Chương 3: Thực nghiệm và đánh giá kết quả. Phân cuối củng của luận văn sẽ trình bảy các thực nghiệm của kỹ thuật kiểm thử dựa tìm kiểm vao bài toán kiểm thử cho chương trình phân loại tam giác. Từ đỏ so sánh và đánh giả ưu điểm và cải tiền so với các kỹ thuật kiêm thử đơn giản.

——————————————- Nguyễn Thanh Bắc 9 Lớp 13BCNTT2 - Khoá 2013B Luan van cao hoc PHAN MO DAU 1. Ly do chon dé tai Với sự phát triển nhanh chóng của ngành công nghệ thông tin nói chung và công nghệ phần mềm noi riêng, việc phát triển phân mẻm ngảy cảng được hỗ trợ bởi nhiều công cụ tiên tiên nhằm giúp cho chất lượng vả hiệu quả trở nên tốt hơn Tuy nhiên, vì độ phức tạp của phản mêm và những giới hạn về thời gian, chỉ phí nên cho dù các hoạt động đảm bao chất lượng phan mem va kiém thử phần mềm. ngảy cảng chặt chế và khoa học nhưng không the dap ứng được tỉnh đúng đắn của phẩn mềm. Các lỗi vẫn luôn tiềm an trong moi san phẩm phần mềm có thể gây ra những thiệt hại khôn lường khi triển khai thực tế Kiểm thử phần mêm lả một trong những hoạt động quan trọng trong tiên trình phát triển phần mềm.

Nó góp một phân rất lớn trong việc đánh giá chất lượng. của một phân mềm và lả quy trình bắt buộc trong các dự án phát triển phần mềm. trên thể giới cũng như trong 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ử các hệ thông phức tạp đỏi hỏi rất nhiều nguồn tải nguyên và chỉ phí cao. Thứ hai, tiền trình phát triển phản mềm luôn trải qua nhiêu hoạt động biến đổi thông tin, su mat mát thông tin trong quá trình biên đổi là yêu tổ chính làm cho hoạt động. kiểm thử khó khăn. Thứ ba, kiểm thử chưa được chủ trọng trong đảo tạo con người Cuỗi củng, không tồn tại kỹ thuật kiểm thử cho phép khẳng định một phần mềm hoản toản đúng đắn hay không chửa lỗi.

Mục tiêu và nhiệm vụ nghiên cứu Với mục dich phat hiện lỗi, kiểm thử phản mềm thường phải trải qua các bước: tạo dữ liệu thử, thực thi phần mềm trên dữ liệu thử và quan sát kết quả nhận được. Trong các bước này, bước tạo dữ liệu đóng vai trỏ quan trọng nhất, bởi vì chúng ta không thẻ tạo ra mọi dữ liệu từ miền vào của chương trình, mả chúng ta chỉ có thể tạo ra các dữ liệu thử có khả năng phát hiện lôi cao nhất. Vẫn đề đặt ra là làm sao đề đánh giá được khả năng phát hiện lỗi của một bộ dữ liệu thử? Nguyễn Thanh Bắc ä Lớp 13BCNTT2 - Khoá 2013B Luan van cao hoc PHAN MO DAU 1. Ly do chon dé tai Với sự phát triển nhanh chóng của ngành công nghệ thông tin nói chung và công nghệ phần mềm noi riêng, việc phát triển phân mẻm ngảy cảng được hỗ trợ bởi nhiều công cụ tiên tiên nhằm giúp cho chất lượng vả hiệu quả trở nên tốt hơn Tuy nhiên, vì độ phức tạp của phản mêm và những giới hạn về thời gian, chỉ phí nên cho dù các hoạt động đảm bao chất lượng phan mem va kiém thử phần mềm.

ngảy cảng chặt chế và khoa học nhưng không the dap ứng được tỉnh đúng đắn của phẩn mềm. Các lỗi vẫn luôn tiềm an trong moi san phẩm phần mềm có thể gây ra những thiệt hại khôn lường khi triển khai thực tế Kiểm thử phần mêm lả một trong những hoạt động quan trọng trong tiên trình phát triển phần mềm. Nó góp một phân rất lớn trong việc đánh giá chất lượng. của một phân mềm và lả quy trình bắt buộc trong các dự án phát triển phần mềm.

trên thể giới cũng như trong 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ử các hệ thông phức tạp đỏi hỏi rất nhiều nguồn tải nguyên và chỉ phí cao. Thứ hai, tiền trình phát triển phản mềm luôn trải qua nhiêu hoạt động biến đổi thông tin, su mat mát thông tin trong quá trình biên đổi là yêu tổ chính làm cho hoạt động.

kiểm thử khó khăn. Thứ ba, kiểm thử chưa được chủ trọng trong đảo tạo con người Cuỗi củng, không tồn tại kỹ thuật kiểm thử cho phép khẳng định một phần mềm hoản toản đúng đắn hay không chửa lỗi. Mục tiêu và nhiệm vụ nghiên cứu Với mục dich phat hiện lỗi, kiểm thử phản mềm thường phải trải qua các bước: tạo dữ liệu thử, thực thi phần mềm trên dữ liệu thử và quan sát kết quả nhận được. Trong các bước này, bước tạo dữ liệu đóng vai trỏ quan trọng nhất, bởi vì chúng ta không thẻ tạo ra mọi dữ liệu từ miền vào của chương trình, mả chúng ta chỉ có thể tạo ra các dữ liệu thử có khả năng phát hiện lôi cao nhất.

Vẫn đề đặt ra là làm sao đề đánh giá được khả năng phát hiện lỗi của một bộ dữ liệu thử? Nguyễn Thanh Bắc ä Lớp 13BCNTT2 - Khoá 2013B Luan van cao hoe DANH MUC CAC TU VIET TAT STT | Từ viết tắt Tên đầy đủ Giải thích 1 cs Current Solution Giải pháp hiện tai 2 | LT Lódgieimlibill |ĐeMHseeiibiRmikWoiHuiEn 2 3 | §T Short-term tabu list | Danhsáchtabulưutữtạmthời 4 CFG Control Flow Graph | Đồ thị luông điều khiển 5 TSG Tabu Search Generator 6 | BS Best Solution Giải pháp tốt nhất 7 BKS Best Known Solution | Giai phap tot nhat hién co Nguyên Thanh Bắc fi Lớp 13BCNTT2 - Khoá 2013B. Luan van cao hoc LOI CAM DOAN 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" là do bản thân tôi tự thực hiện dưới sự hướng dân của PGS. Huỳnh Quyết Thắng - Viện Công nghệ thông tin và Truyền. thông - Đại học Bách khoa Hà Nội; các thông tin số liệu vả kết quả trong Luận văn có nguồn góc rõ ràng, nội dung của Luận văn chưa từng được công bố trong bắt kỳ một công trình nghiên cứu nảo ở trong nước.

Hà Nội, tháng 12 năm 2014 Tac gia Luan van Nguyễn Thanh Bắc Nguyễn Thanh Bắc 4 Lớp 13BCNTT2 - Khoá 2013B Luan van cao hoc LOI CAM DOAN 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" là do bản thân tôi tự thực hiện dưới sự hướng dân của PGS. Huỳnh Quyết Thắng - Viện Công nghệ thông tin và Truyền. thông - Đại học Bách khoa Hà Nội; các thông tin số liệu vả kết quả trong Luận văn có nguồn góc rõ ràng, nội dung của Luận văn chưa từng được công bố trong bắt kỳ một công trình nghiên cứu nảo ở trong nước. Hà Nội, tháng 12 năm 2014 Tac gia Luan van Nguyễn Thanh Bắc Nguyễn Thanh Bắc 4 Lớp 13BCNTT2 - Khoá 2013B Luan van cao hoc DANH MUC CAC BANG Bảng 2.

Định nghĩa hàm đánh giá f,j”(#). Định nghĩa hàm đảnh giá fp„(#).-- th hhnree 36 Bảng 3. Bảng kết quả thực nghiệm thuật toán leo đôi cơ bản. Bảng kết quả thực nghiệm thuật toán leo đổi dốc đứng 53 Bảng 3.

Bảng kết quả thực nghiệm thuật toán Tabu-search. Nguyễn Thanh Bắc 6 Lớp 13BCNTT2 - Khoá 2013B Luan van cao hoc PHAN MO DAU 1. Ly do chon dé tai Với sự phát triển nhanh chóng của ngành công nghệ thông tin nói chung và công nghệ phần mềm noi riêng, việc phát triển phân mẻm ngảy cảng được hỗ trợ bởi nhiều công cụ tiên tiên nhằm giúp cho chất lượng vả hiệu quả trở nên tốt hơn Tuy nhiên, vì độ phức tạp của phản mêm và những giới hạn về thời gian, chỉ phí nên cho dù các hoạt động đảm bao chất lượng phan mem va kiém thử phần mềm. ngảy cảng chặt chế và khoa học nhưng không the dap ứng được tỉnh đúng đắn của phẩn mềm.

Các lỗi vẫn luôn tiềm an trong moi san phẩm phần mềm có thể gây ra những thiệt hại khôn lường khi triển khai thực tế Kiểm thử phần mêm lả một trong những hoạt động quan trọng trong tiên trình phát triển phần mềm. Nó góp một phân rất lớn trong việc đánh giá chất lượng. của một phân mềm và lả quy trình bắt buộc trong các dự án phát triển phần mềm. trên thể giới cũng như trong 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ử các hệ thông phức tạp đỏi hỏi rất nhiều nguồn tải nguyên và chỉ phí cao. Thứ hai, tiền trình phát triển phản mềm luôn trải qua nhiêu hoạt động biến đổi thông tin, su mat mát thông tin trong quá trình biên đổi là yêu tổ chính làm cho hoạt động. kiểm thử khó khăn.

Thứ ba, kiểm thử chưa được chủ trọng trong đảo tạo con người Cuỗi củng, không tồn tại kỹ thuật kiểm thử cho phép khẳng định một phần mềm hoản toản đúng đắn hay không chửa lỗi. Mục tiêu và nhiệm vụ nghiên cứu Với mục dich phat hiện lỗi, kiểm thử phản mềm thường phải trải qua các bước: tạo dữ liệu thử, thực thi phần mềm trên dữ liệu thử và quan sát kết quả nhận được. Trong các bước này, bước tạo dữ liệu đóng vai trỏ quan trọng nhất, bởi vì chúng ta không thẻ tạo ra mọi dữ liệu từ miền vào của chương trình, mả chúng ta chỉ có thể tạo ra các dữ liệu thử có khả năng phát hiện lôi cao nhất. Vẫn đề đặt ra là làm sao đề đánh giá được khả năng phát hiện lỗi của một bộ dữ liệu thử? Nguyễn Thanh Bắc ä Lớp 13BCNTT2 - Khoá 2013B Luan van cao hoc DANH MUC CAC BANG Bảng 2.

Định nghĩa hàm đánh giá f,j”(#). Định nghĩa hàm đảnh giá fp„(#).-- th hhnree 36 Bảng 3. Bảng kết quả thực nghiệm thuật toán leo đôi cơ bản. Bảng kết quả thực nghiệm thuật toán leo đổi dốc đứng 53 Bảng 3.

Bảng kết quả thực nghiệm thuật toán Tabu-search. Nguyễn Thanh Bắc 6 Lớp 13BCNTT2 - Khoá 2013B Luan van cao hoe DANH MỤC HÌNH VẼ Hình 1. Quy trình kiểm thử phần mềm. Minh hoạ kiêm thử hộp trắng.

Minh hoạ kiểm thử hộp đen. giã 4: nhãN hs gi seal) Hình 1. Quy trình kiểm thử cầu trúc. Các thành phần cơ bản của đồ thị chương.

Các câu trúc điều khiển phỏ biển của chương trình. Mã nguồn của hảm foo và đỏ thị dòng điều khiển của nó.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ