Luận án Tiến sĩ: Cải tiến ràng buộc xâu trong sinh dữ liệu kiểm thử tự động cho thực thi tượng trưng

Cải tiến ràng buộc xâu trong sinh dữ liệu kiểm thử tự động cho thực thi tượng trưng nhằm nâng cao hiệu quả kiểm thử phần mềm bằng phương pháp tối ưu hóa.

Tác giả

Luan An

Thể loại

Luận án tiến sĩ

Năm xuất bản

Số trang

105

Thời gian đọc

16 phút

Lượt xem

0

Lượt tải

0

Phí lưu trữ

40 Point

Tổng quan nhanh

Chủ đề:
Cải tiến ràng buộc xâu: Giải pháp sinh dữ liệu kiểm thử tự động
Số trang:
105 trang
Trường:
Học viện Khoa học và Công nghệ
Chuyên ngành:
Cơ sở toán học cho tin học
Tác giả:
Năm:

Tóm tắt nội dung luận án

I.Cải tiến ràng buộc xâu Giải pháp sinh dữ liệu kiểm thử tự động

Nghiên cứu này trình bày các cải tiến về ràng buộc xâu. Giải pháp này nhằm nâng cao hiệu quả sinh dữ liệu kiểm thử tự động. Ràng buộc xâu đóng vai trò quan trọng trong việc tạo các trường hợp kiểm thử hợp lệ. Đặc biệt, chương trình xử lý đầu vào phức tạp thường chứa nhiều ràng buộc xâu. Các phương pháp hiện tại gặp nhiều thách thức. Chúng thường khó xử lý hiệu quả các ràng buộc xâu phức tạp. Việc này dẫn đến dữ liệu kiểm thử không đầy đủ hoặc quá trình sinh dữ liệu chậm. Cải tiến giải quyết những hạn chế này. Mục tiêu là tạo ra dữ liệu kiểm thử chất lượng cao, tăng độ bao phủ kiểm thử. Hệ thống kiểm thử phần mềm tự động cần dữ liệu chính xác. Các cải tiến giúp đạt được mục tiêu này.

1.1. Tầm quan trọng của ràng buộc xâu trong kiểm thử tự động

Kiểm thử tự động đòi hỏi dữ liệu đầu vào chính xác. Ràng buộc xâu mô tả các yêu cầu về định dạng, độ dài, hoặc nội dung của dữ liệu. Chúng rất cần thiết để sinh dữ liệu kiểm thử. Nếu ràng buộc xâu không được xử lý đúng cách, dữ liệu kiểm thử sẽ không hợp lệ. Điều này ảnh hưởng đến chất lượng kiểm thử. Việc tạo dữ liệu kiểm thử tự động cho các ứng dụng web, xử lý văn bản, hoặc các hệ thống yêu cầu xác thực dữ liệu đều phụ thuộc vào ràng buộc xâu. Một ràng buộc xâu được giải quyết tốt giúp tạo ra các kịch bản kiểm thử thực tế.

1.2. Thách thức hiện tại khi sinh dữ liệu kiểm thử với ràng buộc xâu

Sinh dữ liệu kiểm thử với ràng buộc xâu đang đối mặt nhiều khó khăn. Một thách thức là sự phức tạp của các biểu thức chính quy. Việc giải quyết chúng tiêu tốn nhiều tài nguyên. Thách thức khác là "bùng nổ đường đi" trong thực thi biểu trưng. Số lượng đường đi tăng lên theo cấp số nhân. Các bộ giải ràng buộc hiện tại thường chậm hoặc không chính xác với ràng buộc xâu phức tạp. Điều này làm giảm hiệu suất của quá trình tạo dữ liệu kiểm thử. Cần có các cải tiến để xử lý hiệu quả những ràng buộc này.

1.3. Mục tiêu nghiên cứu Nâng cao hiệu quả sinh dữ liệu kiểm thử

Nghiên cứu này tập trung vào việc cải tiến các kỹ thuật giải ràng buộc xâu. Mục tiêu chính là tăng tốc độ và độ chính xác của quá trình sinh dữ liệu kiểm thử tự động. Giải pháp nhằm hỗ trợ tạo dữ liệu kiểm thử cho các hệ thống phần mềm phức tạp. Việc nâng cao độ bao phủ kiểm thử cũng là một mục tiêu quan trọng. Cải tiến giúp hệ thống kiểm thử tự động hoạt động hiệu quả hơn. Cuối cùng, nghiên cứu hướng tới việc giảm thiểu thời gian và công sức cần thiết cho việc tạo dữ liệu kiểm thử.

II.Kiểm thử phần mềm và thực thi biểu trưng Tạo dữ liệu kiểm thử

Kiểm thử phần mềm là giai đoạn cốt yếu trong chu trình phát triển. Mục tiêu chính là đảm bảo chất lượng và phát hiện lỗi. Có nhiều phương pháp kiểm thử, bao gồm kiểm thử hộp trắng và hộp đen. Kiểm thử hộp trắng tập trung vào cấu trúc bên trong của mã. Thực thi biểu trưng là một kỹ thuật mạnh mẽ trong kiểm thử hộp trắng. Kỹ thuật này tự động khám phá các đường đi thực thi. Từ đó, nó sinh ra dữ liệu kiểm thử phù hợp. Việc tạo dữ liệu kiểm thử hiệu quả giúp tăng độ bao phủ kiểm thử. Các ràng buộc xâu có vai trò then chốt trong quá trình này.

2.1. Tổng quan kiểm thử phần mềm Phương pháp và tiêu chí phủ

Kiểm thử phần mềm bao gồm nhiều giai đoạn. Các phương pháp phổ biến là kiểm thử chức năng và phi chức năng. Kiểm thử hộp trắng tập trung vào luồng điều khiển của mã nguồn. Tiêu chí phủ kiểm thử đánh giá mức độ bao phủ của các đường đi, câu lệnh, hoặc nhánh. Độ bao phủ kiểm thử cao đảm bảo nhiều phần của chương trình được kiểm tra. Điều này giảm thiểu rủi ro lỗi phần mềm. Các tiêu chí này định hướng quá trình sinh dữ liệu kiểm thử.

2.2. Thực thi biểu trưng Cơ chế tạo dữ liệu kiểm thử mạnh mẽ

Thực thi biểu trưng (Symbolic Execution) là một kỹ thuật phân tích chương trình. Nó thực thi chương trình với các giá trị đầu vào biểu trưng. Kỹ thuật này thu thập các điều kiện đường dẫn. Điều kiện này tạo thành các ràng buộc dữ liệu. Các ràng buộc sau đó được giải để sinh dữ liệu kiểm thử cụ thể. Thực thi biểu trưng giúp khám phá các đường đi ít được kiểm tra. Nó là một kỹ thuật sinh dữ liệu hiệu quả. Kiểm thử dựa trên mô hình thường sử dụng phương pháp này.

2.3. Vai trò của ràng buộc xâu trong thực thi biểu trưng

Trong thực thi biểu trưng, các thao tác trên xâu tạo ra ràng buộc xâu. Ví dụ, so sánh xâu, nối xâu, tìm kiếm mẫu xâu. Giải quyết các ràng buộc xâu này rất cần thiết. Nó giúp tạo dữ liệu kiểm thử chính xác cho các đầu vào kiểu xâu. Nếu bộ giải ràng buộc xâu không hiệu quả, quá trình tạo dữ liệu kiểm thử sẽ bị đình trệ. Các ràng buộc xâu là một phần không thể thiếu trong việc đảm bảo độ bao phủ kiểm thử toàn diện.

III.Mô hình hóa và giải ràng buộc xâu Kỹ thuật sinh dữ liệu hiệu quả

Việc mô hình hóa và giải ràng buộc xâu là trung tâm của quá trình sinh dữ liệu kiểm thử tự động. Các ràng buộc xâu thường phức tạp, đòi hỏi phương pháp tiếp cận đặc biệt. Nhiều kỹ thuật sinh dữ liệu đã được phát triển. Tuy nhiên, chúng vẫn còn hạn chế. Nghiên cứu này đề xuất các cải tiến về ràng buộc xâu. Nó tập trung vào việc tạo ra các mô hình ràng buộc hiệu quả hơn. Mục tiêu là giúp các bộ giải ràng buộc xử lý nhanh chóng. Điều này góp phần nâng cao chất lượng của kiểm thử phần mềm.

3.1. Các phương pháp mô hình hóa ràng buộc xâu hiện có

Các phương pháp mô hình hóa ràng buộc xâu truyền thống bao gồm dựa trên Bitvector và SMT. Phương pháp Bitvector ánh xạ xâu thành chuỗi bit. Tuy nhiên, nó tiêu tốn nhiều bộ nhớ và chậm với xâu dài. Các bộ giải SMT thường tích hợp lý thuyết xâu. Tuy nhiên, chúng có thể gặp khó khăn với các phép toán xâu phức tạp. Phương pháp sử dụng Otomat đã cho thấy tiềm năng. Tuy nhiên, việc áp dụng rộng rãi còn thách thức. Các phương pháp này cần cải tiến ràng buộc xâu để tối ưu hơn.

3.2. Cải tiến mô hình hóa Đồ thị và ràng buộc kiểu nguyên

Nghiên cứu đề xuất một phương pháp mới. Đó là mô hình hóa ràng buộc xâu bằng đồ thị. Biểu diễn đồ thị giúp trực quan hóa mối quan hệ giữa các ràng buộc. Đồng thời, nghiên cứu phát hiện thêm ràng buộc kiểu nguyên từ dữ liệu xâu. Ví dụ, độ dài xâu hoặc vị trí ký tự có thể tạo ra ràng buộc số. Việc kết hợp ràng buộc số và xâu giúp các bộ giải làm việc hiệu quả hơn. Ràng buộc dữ liệu trở nên rõ ràng hơn. Đây là kỹ thuật sinh dữ liệu tiên tiến.

3.3. Giải ràng buộc xâu sử dụng Otomat Một phương pháp tối ưu

Giải pháp đề xuất sử dụng Otomat để giải quyết ràng buộc xâu. Otomat hữu hạn không xác định (NFA) hoặc xác định (DFA) có thể biểu diễn quy tắc biểu thức chính quy. Các phép toán trên xâu được chuyển đổi thành các phép toán trên Otomat. Cách tiếp cận này giúp xử lý hiệu quả các ràng buộc biểu thức chính quy phức tạp. Nó cải thiện đáng kể tốc độ giải quyết ràng buộc. Giải pháp Otomat là một cải tiến ràng buộc xâu quan trọng. Nó tối ưu hóa quá trình tạo dữ liệu kiểm thử.

IV.Giải pháp cải tiến ràng buộc xâu Tăng độ bao phủ kiểm thử

Giải pháp cải tiến ràng buộc xâu mang lại nhiều lợi ích. Nó không chỉ tối ưu hóa quá trình giải quyết ràng buộc. Giải pháp còn giúp tăng đáng kể độ bao phủ kiểm thử của các ứng dụng phần mềm. Đặc biệt là các ứng dụng có nhiều đầu vào kiểu xâu. Các cải tiến giúp khắc phục những thách thức cố hữu của kiểm thử tự động. Ví dụ như vấn đề "bùng nổ đường đi" trong thực thi biểu trưng. Mục tiêu cuối cùng là đảm bảo kiểm thử phần mềm toàn diện. Hệ thống có thể phát hiện nhiều lỗi hơn.

4.1. Khắc phục bùng nổ đường đi Tối ưu hóa thực thi biểu trưng

Vấn đề bùng nổ đường đi là rào cản lớn trong thực thi biểu trưng. Quá nhiều đường đi thực thi phải được phân tích. Điều này dẫn đến hiệu suất thấp. Các cải tiến ràng buộc xâu giúp tinh chỉnh quá trình khám phá đường đi. Giải pháp loại bỏ các đường đi không khả thi sớm hơn. Nó ưu tiên các đường đi có khả năng dẫn đến lỗi. Việc này giảm đáng kể số lượng ràng buộc cần giải. Từ đó, tối ưu hóa toàn bộ quá trình sinh dữ liệu kiểm thử. Độ bao phủ kiểm thử vẫn được đảm bảo.

4.2. Xử lý ràng buộc hỗn hợp Mở rộng khả năng kiểm thử

Các ứng dụng thực tế thường có ràng buộc hỗn hợp. Chúng bao gồm cả ràng buộc xâu và ràng buộc số học. Các bộ giải truyền thống gặp khó khăn khi kết hợp chúng. Cải tiến ràng buộc xâu cho phép xử lý hiệu quả các ràng buộc hỗn hợp. Giải pháp chuyển đổi một phần ràng buộc xâu thành ràng buộc số. Điều này giúp tận dụng sức mạnh của các bộ giải SMT cho cả hai loại. Khả năng tạo dữ liệu kiểm thử cho kịch bản phức tạp được mở rộng. Kiểm thử phần mềm trở nên toàn diện hơn.

4.3. Tiền xử lý ràng buộc Nâng cao hiệu suất giải quyết

Quá trình tiền xử lý là một bước quan trọng. Nó giúp biến đổi các ràng buộc xâu thô. Chúng được chuyển đổi thành dạng dễ xử lý hơn cho bộ giải. Ví dụ, các ràng buộc trùng lặp được loại bỏ. Các ràng buộc đơn giản được giải ngay lập tức. Tiền xử lý giúp giảm độ phức tạp của bài toán giải ràng buộc. Điều này tăng tốc độ toàn bộ quá trình sinh dữ liệu kiểm thử. Nó cũng giúp cải thiện độ chính xác. Hiệu suất của kiểm thử tự động được nâng cao rõ rệt.

V.Thực nghiệm và ứng dụng Kiểm thử dựa trên mô hình hiện đại

Các cải tiến ràng buộc xâu được đánh giá thông qua các thực nghiệm kỹ lưỡng. Mục tiêu là xác nhận hiệu quả của phương pháp đề xuất. Thực nghiệm so sánh giải pháp mới với các kỹ thuật sinh dữ liệu hiện có. Kết quả cho thấy sự cải thiện đáng kể về hiệu suất. Nó cũng tăng độ bao phủ kiểm thử cho các ứng dụng thực tế. Việc tích hợp các cải tiến này vào các công cụ kiểm thử dựa trên mô hình sẽ mang lại lợi ích lớn. Điều này giúp hiện đại hóa kiểm thử phần mềm.

5.1. Thiết lập môi trường thực nghiệm và đánh giá kết quả

Môi trường thực nghiệm được xây dựng cẩn thận. Các chương trình kiểm thử được chọn có nhiều thao tác xâu phức tạp. Các tiêu chí đánh giá bao gồm thời gian sinh dữ liệu, số lượng ràng buộc được giải, và độ bao phủ kiểm thử. Kết quả được thu thập và phân tích chi tiết. Dữ liệu thực nghiệm chứng minh hiệu quả của cải tiến ràng buộc xâu. Nó cho thấy khả năng vượt trội so với các phương pháp trước đó trong sinh dữ liệu kiểm thử.

5.2. So sánh hiệu quả với các phương pháp sinh dữ liệu kiểm thử

Nghiên cứu tiến hành so sánh trực tiếp. Phương pháp cải tiến ràng buộc xâu được so sánh với các kỹ thuật sinh dữ liệu truyền thống. Đặc biệt là các kỹ thuật dựa trên SMT và Bitvector. Kết quả chỉ ra rằng giải pháp mới giải quyết các ràng buộc xâu nhanh hơn. Đồng thời, nó đạt được độ bao phủ kiểm thử cao hơn. Điều này đặc biệt đúng với các ràng buộc dữ liệu phức tạp. Phân tích này khẳng định tính ưu việt của phương pháp đề xuất.

5.3. Tiềm năng ứng dụng Kiểm thử phần mềm và hệ thống phức tạp

Cải tiến ràng buộc xâu có tiềm năng ứng dụng rộng lớn. Nó có thể tích hợp vào các công cụ kiểm thử tự động hiện có. Giải pháp hỗ trợ kiểm thử dựa trên mô hình cho các hệ thống lớn. Ví dụ như hệ thống quản lý dữ liệu, ứng dụng web, hoặc phần mềm nhúng. Việc tạo dữ liệu kiểm thử hiệu quả hơn giúp giảm chi phí và thời gian phát triển. Nó cũng góp phần nâng cao chất lượng tổng thể của kiểm thử phần mềm.

Mục lục chi tiết luận án

LỜI CAM ĐOAN
LỜI CẢM ƠN
DANH MỤC THUẬT NGỮ VÀ TỪ VIẾT TẮT
DANH MỤC BẢNG BIỂU
DANH MỤC HÌNH VẼ
MỞ ĐẦU
1. CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM VÀ THỰC THI BIỂU TRƯNG
1.1. Kiểm thử phần mềm
1.1.1. Các khái niệm cơ bản
1.1.2. Các phương pháp kiểm thử
1.1.3. Kỹ thuật kiểm thử hộp trắng dòng điều khiển
1.1.3.1. Kiểm thử hộp trắng dòng điều khiển theo hướng động
1.1.3.2. Kiểm thử hộp trắng dòng điều khiển theo hướng tĩnh
1.1.4. Các tiêu chí phủ kiểm thử
1.1.4.1. Đồ thị dòng điều khiển
1.1.4.2. Đường kiểm thử
1.1.5. So sánh kiểm thử hộp trắng dòng điều khiển theo hướng tĩnh và động
1.1.6. Thách thức trong kiểm thử phần mềm
1.2. Thực thi biểu trưng
1.2.1. Tổng quan về thực thi biểu trưng
1.2.2. Thực thi biểu trưng tĩnh
1.2.3. Thực thi biểu trưng động
1.2.4. Thực thi Concolic
1.2.5. Thực thi biểu trưng với các lời gọi phương thức
1.2.6. Ràng buộc xâu và vai trò của giải ràng buộc xâu
1.3. Kết luận chương 1
2. CHƯƠNG 2: THỰC THI BIỂU TRƯNG VÀ MÔ HÌNH HÓA RÀNG BUỘC
2.1. Bùng nổ đường đi
2.2. Mô hình hóa bộ nhớ
2.3. Thực thi biểu trưng và công cụ mở rộng
2.3.1. Thực thi biểu trưng và kiểm thử phần mềm
2.3.2. Thực thi biểu trưng trên ngôn ngữ Java
2.3.3. Giải các ràng buộc và thực thi biểu trưng
2.4. Ràng buộc hỗn hợp và cải tiến trong giải ràng buộc xâu
2.4.1. Xây dựng lại ràng buộc
2.4.2. Quá trình tiền xử lý
2.4.3. Sinh các ràng buộc xâu và kết quả thực hiện
2.4.4. Giải ràng buộc sử dụng Otomat
2.5. Kết luận chương 2
3. CHƯƠNG 3: GIẢI RÀNG BUỘC XÂU
3.1. Các vấn đề liên quan đến Bitvector và bộ thỏa mãn SMT (satisfiability modulo theories)
3.1.1. Lý thuyết thỏa mãn SMT
3.1.2. Giải ràng buộc xâu dựa trên phương pháp BitVector
3.1.3. Giải ràng buộc xâu dựa trên phương pháp sử dụng OTOMAT
3.2. Đề xuất giải ràng buộc xâu trong thực thi biểu trưng
3.2.1. Mô hình hoá ràng buộc xâu sử dụng đồ thị
3.2.2. Phát hiện thêm ràng buộc kiểu nguyên trên dữ liệu xâu
3.3. Thực nghiệm và đánh giá kết quả
3.4. Kết luận chương 3
KẾT LUẬN VÀ KIẾN NGHỊ
DANH MỤC CÔNG TRÌNH CỦA TÁC GIẢ
TÀI LIỆU THAM KHẢO
Xem trước tài liệu
Tải đầy đủ để xem toàn bộ nội dung
Luận án tiến sĩ toán học một số cải tiến về ràng buộc xâu trong sinh dữ liệu kiểm thử tự động cho thực thi tượng trưng

Tải xuống file đầy đủ để xem toàn bộ nội dung

Tải đầy đủ (105 trang)

Trích đoạn nội dung luận án

Tải xuống để đọc toàn bộ

BỘ GIÁO DỤC VÀ ĐÀO TẠO VIỆN HÀN LÂM KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM HỌC VIỆN KHOA HỌC VÀ CÔNG NGHỆ ----------------------------- TÔ HỮU NGUYÊN MỘT SỐ CẢI TIẾN VỀ RÀNG BUỘC XÂU TRONG SINH DỮ LIỆU KIỂM THỬ TỰ ĐỘNG CHO THỰC THI TƢỢNG TRƢNG LUẬN ÁN TIẾN SĨ TOÁN HỌC Hà Nội - 2020 BỘ GIÁO DỤC VÀ ĐÀO TẠO VIỆN HÀN LÂM KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM HỌC VIỆN KHOA HỌC VÀ CÔNG NGHỆ ----------------------------- TÔ HỮU NGUYÊN MỘT SỐ CẢI TIẾN VỀ RÀNG BUỘC XÂU TRONG SINH DỮ LIỆU KIỂM THỬ TỰ ĐỘNG CHO THỰC THI TƢỢNG TRƢNG LUẬN ÁN TIẾN SĨ TOÁN HỌC Chuyên ngành : Cơ sở toán học cho tin học Mã số: 9 46 01 10 Ngƣời hƣớng dẫn khoa học: 1. Nguyễn Trƣờng Thắng 2. Đặng Văn Đức Hà Nội - 2020 i MỤC LỤC MỤC LỤC .i LỜI CAM ĐOAN. iii LỜI CẢM ƠN .iv DANH MỤC THUẬT NGỮ VÀ TỪ VIẾT TẮT .v DANH MỤC BẢNG BIỂU .vi DANH MỤC HÌNH VẼ.

vii MỞ ĐẦU. TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM VÀ THỰC THI BIỂU TRƢNG. Kiểm thử phần mềm. Các khái niệm cơ bản.2 Các phƣơng pháp kiểm thử.

Kỹ thuật kiểm thử hộp trắng dòng điều khiển. Kiểm thử hộp trắng dòng điều khiển theo hƣớng động .2 Kiểm thử hộp trắng dòng điều khiển theo hƣớng tĩnh. Các tiêu chí phủ kiểm thử. Đồ thị dòng điều khiển.

Đƣờng kiểm thử. So sánh kiểm thử hộp trắng dòng điều khiển theo hƣớng tĩnh và động. Thách thức trong kiểm thử phần mềm. Thực thi biểu trƣng.

Tổng quan về thực thi biểu trƣng. Thực thi biểu trƣng tĩnh. Thực thi biểu trƣng động .4 Thực thi Concolic. Thực thi biểu trƣng với các lời gọi phƣơng thức.

Ràng buộc xâu và vai trò của giải ràng buộc xâu. Kết luận chƣơng 1. THỰC THI BIỂU TRƢNG VÀ MÔ HÌNH HÓA RÀNG BUỘC. Bùng nổ đƣờng đi.

Mô hình hóa bộ nhớ. Thực thi biểu trƣng và công cụ mở rộng. Thực thi biểu trƣng và kiểm thử phần mềm. Thực thi biểu trƣng trên ngôn ngữ Java.

Giải các ràng buộc và thực thi biểu trƣng. Ràng buộc hỗn hợp và cải tiến trong giải ràng buộc xâu. Xây dựng lại ràng buộc. Quá trình tiền xử lý.

Sinh các ràng buộc xâu và kết quả thực hiện. Giải ràng buộc sử dụng Otomat. Kết luận chƣơng 2. GIẢI RÀNG BUỘC XÂU.

Các vấn đề liên quan đến Bitvector và bộ thỏa mãn SMT (satisfiability modulo theories). Lý thuyết thỏa mãn SMT. Giải ràng buộc xâu dựa trên phƣơng pháp BitVector. Giải ràng buộc xâu dựa trên phƣơng pháp sử dụng OTOMAT.

Đề xuất giải ràng buộc xâu trong thực thi biểu trƣng .1 Mô hình hoá ràng buộc xâu sử dụng đồ thị .2 Phát hiện thêm ràng buộc kiểu nguyên trên dữ liệu xâu. Thực nghiệm và đánh giá kết quả. Kết luận chƣơng 3. 85 KẾT LUẬN VÀ KIẾN NGHỊ.86 DANH MỤC CÔNG TRÌNH CỦA TÁC GIẢ .87 TÀI LIỆU THAM KHẢO .88 iii LỜI CAM ĐOAN Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi đƣợc hoàn thành dƣới sự hƣớng dẫn tận tình của tập thể hƣớng dẫn gồm.

Các kết quả đƣợc viết chung với các tác giả khác đã đƣợc sự nhất trí của đồng tác giả khi đƣa vào luận án. Các kết quả nêu trong luận án là trung thực và chƣa từng đƣợc công bố trong bất kỳ công trình nào trƣớc thời gian công trình của tôi và cộng sự đƣợc công bố. Hà Nội, ngày….năm … Tác giả luận án iv LỜI CẢM ƠN Trƣớc hết, tác giả xin bày tỏ lòng biết ơn chân thành và sâu sắc tới các thầy giáo hƣớng dẫn, TS. Nguyễn Trƣờng Thắng và PGS.

Sự tận tình giúp đỡ, chỉ bảo, động viện tận tình và quí báu mà các thầy đã dành cho tác giả trong suốt quá trình thực hiện luận án là không thể nào kể hết đƣợc. Xin chân thành cảm ơn các thầy các cô, các nhà khoa học thuộc Viện Công nghệ thông tin và Học viện khoa học và Công nghệ đã tận tình giúp đỡ và tạo một môi trƣờng làm việc hết sức thuận lợi giúp tác giả thực hiện tốt công việc nghiên cứu của mình. Xin chân thành cảm ơn Ban Giám Hiệu Trƣờng đại học Công nghệ thông tin và Truyền thông – Đại học Thái Nguyên đã hết sức tạo điều kiện về thời gian và công việc để tác giả có thể tập trung hoàn thành quá trình học tập, nghiên cứu của mình. Đặc biệt xin gửi lời cảm ơn đến các thầy cô, các bạn đồng nghiệp trong Khoa Công nghệ thông tin đã động viên, giúp đỡ tác giả trong suốt quá trình nghiên cứu.

Cuối cùng, xin gửi lời cảm ơn sâu sắc nhất tới gia đình, bạn bè và ngƣời thân, những ngƣời đã luôn là nguồn động viên để tác giả có thể học tập và nghiên cứu, luôn sẻ chia những khó khăn vất vả trong quá trình nghiên cứu và hoàn thiện đề tài. Hà Nội, ngày…. Tác giả luận án v DANH MỤC THUẬT NGỮ VÀ TỪ VIẾT TẮT Từ viết tắt Từ đầy đủ JPF Java Path Finder MJI Model Java Interface DFA Deterministic Finite Automaton PC Điều kiện đƣờng dẫn (path condition) QTKT Quy trình kiểm thử SAT Boolean satisfiability problem SDLC Software Development Life Cycle SE Thực thi biểu trƣng (Symbolic Execution) SET Cây thực thi biểu trƣng (Symbolic Execution Tree) SMT Satisfiability Modulo Theories SQA Software quality assurance STLC Software Test Life Cycle TPPM Thành phần phần mềm UT Kiểm thử đơn vị - Unit Testing VSUnit Visual Studio Unit Testing vi DANH MỤC BẢNG BIỂU Bảng 1. Ví dụ về thực thi biểu trƣng động.

So sánh thực thi Concolic với thực thi biểu trƣng. Minh họa việc chuyển đổi từ mã nguồn Java sang mã Jimple. Mô tả ràng buộc xâu. Xây dựng các ràng buộc cho các phép toán trên xâu.

Xây dựng ràng buộc tƣơng ứng với các phép toán trên xâu. Kết quả đánh giá mô hình cải tiến trên bộ dữ liệu. 79 vii DANH MỤC HÌNH VẼ Hình 1. Mối quan hệ giữa phát triển phần mềm và kiểm thử phần mềm.

Quy trình chung của kiểm thử hộp trắng theo hƣớng động. Ví dụ về chèn mã nguồn trong DMS/SRT. Mã nguồn hàm triangle sau khi thêm mã nguồn. Quy trình chung của kiểm thử hộp trắng theo hƣớng tĩnh.

Các cấu trúc điều khiển phổ biến. Ví dụ về ý tƣởng thực hiện cụ thể của thực thi biểu trƣng. Cây thực thi biểu trƣng. Thực thi biểu trƣng với phƣơng thức nhận đầu vào là đối tƣợng.

Cây thực thi biểu trƣng đƣợc quản lý riêng. Thực thi biểu trƣng trên lời gọi phƣơng thức. Mô hình hoạt động của JPF. Sơ đồ trạng thái trong quá trình kiểm thử.

Biểu diễn sơ đồ kiến trúc mức cao của JPF. Ví dụ về trừu tƣợng hoá dữ liệu. Một ví dụ khác về trừu tƣợng hoá dữ liệu. Quy trình sàng lọc dữ liệu.

Thuật toán giải ràng buộc hỗn hợp. Đồ thị sau khi loại bỏ phép toán equals. Các ràng buộc không thỏa mãn sau khi loại bỏ phép toán equals. Các đỉnh mới đại diện cho độ dài xâu đƣợc bổ sung.

Giải ràng buộc xâu dựa trên Otomat. Phƣơng thức giải ràng buộc phủ định. Sơ đồ mô hình hoá ràng buộc xâu sử dụng đồ thị .4: Thuật toán giải ràng buộc xâu. Chƣơng trình Java kiểm thử.

Kết quả sinh dữ liệu biểu trƣng trên một số phép toán trên xâu. Code kiểm thử. Kết quả đánh giá mô hình cải tiến trên bộ dữ liệu. Chƣơng trình Java.

83 1 MỞ ĐẦU Kiểm thử phần mềm (testing) là một trong những hoạt động quan trọng nhất trong chu trình phát triển phần mềm. Theo số liệu thống kê thực tế, kiểm thử phần mềm chiếm tới 50-60% tổng chi phí toàn bộ quy trình phát triển phần mềm. Để giảm chi phí kiểm thử và tăng mức độ tin cậy của phần mềm, các nhà nghiên cứu đang cố gắng tự động hoá các hoạt động phục vụ công việc kiểm thử phần mềm [1, 2]. Một cách tổng quát, với mỗi kỹ thuật đƣợc dùng trong một giai đoạn kiểm thử động (dynamic run-time testing) thì bất cứ phần mềm nào cũng có thể đƣợc phân ra làm hai công đoạn con: chuẩn bị các ca kiểm thử (test case) cho việc kiểm tra phần mềm và thực hiện chạy chƣơng trình cần kiểm thử trên một nền tảng hỗ trợ các nghiệp vụ kiểm thử (testing framework) với các ca kiểm thử đã có.

Công việc đầu tiên và hết sức quan trọng đó là chuẩn bị bộ dữ liệu kiểm thử. Việc này thƣờng đƣợc làm thủ công nên cần rất nhiều nhân lực để tạo ra bộ dữ liệu đầy đủ, có tính bao phủ cao (coverage criteria) trên toàn bộ các đƣờng tính toán (computation paths) của chƣơng trình. Các ca kiểm thử bao gồm dữ liệu kiểm thử và các giá trị đầu ra mong muốn. Một trong các hoạt động quan trọng để giảm chi phí kiểm thử phần mềm là sinh các ca kiểm thử một cách tự động và có tính đầy đủ.

Các tổ chức phát triển phần mềm thƣờng phải chi phí một lƣợng lớn về tài chính cho các hoạt động liên quan đến kiểm thử phần mềm. Tính hiệu quả của tiến trình xác minh và thẩm định phụ thuộc nhiều vào số lỗi đƣợc tìm ra và đƣợc sửa chữa trƣớc khi sản phẩm đƣợc chuyển giao. Điều này đồng nghĩa với quan điểm chất lƣợng của phần mềm phụ thuộc chặt chẽ vào chất lƣợng các ca kiểm thử đƣợc sinh ra. Trong những năm qua, nhiều nghiên cứu của các nhà khoa học trên thế giới nhằm ―sinh dữ liệu kiểm thử một cách tự động‖ [3, 4] để giảm thiểu chi phí cho phần mềm.

Có hai cách tiếp cận căn bản để sinh dữ liệu kiểm thử đó là dựa vào mã nguồn (code) và dựa vào mô hình (model). Đối với phƣơng pháp dựa vào mã nguồn là phƣơng pháp cho khả năng bao phủ cao, có khả năng loại bỏ các dòng lệnh không cần thiết chứa các tiềm ẩn gây lỗi nhƣng cần thiết phải có khả năng tối ƣu tính toán của các phần mềm phân tích kiểm thử, do vậy gần đây có nhiều nghiên cứu tập trung vào phƣơng pháp này [5, 6, 7]. 2 Trong những năm qua, nhiều nghiên cứu về việc sinh các ca kiểm thử một cách tự động nhƣ: sinh các ca kiểm thử dựa vào đặc tả, sinh các ca kiểm thử dựa vào mô hình, sinh ca kiểm thử hƣớng đƣờng dẫn và kỹ thuật thông minh. Tuy nhiên, kiểm thử dựa vào thực thi biểu trƣng đã và đang là hƣớng nghiên cứu đƣợc nhiều ngƣời quan tâm.

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

Trích dẫn luận án này

Tô Hữu Nguyên (2020). Cải tiến ràng buộc xâu trong sinh dữ liệu kiểm thử tự động [Luận án tiến sĩ, Học viện Khoa học và Công nghệ]. LuanAn.net. https://luanan.net/tai-lieu-khac/cai-tien-rang-buoc-xau-trong-sinh-du-lieu-kiem-thu-tu-dong-thuc-thi-tuong-trung

Câu hỏi thường gặp

Luận án "Cải tiến ràng buộc xâu trong sinh dữ liệu kiểm thử tự động" nghiên cứu về vấn đề gì?

Cải tiến ràng buộc xâu trong sinh dữ liệu kiểm thử tự động cho thực thi tượng trưng nhằm nâng cao hiệu quả kiểm thử phần mềm bằng phương pháp tối ưu hóa.

Luận án "Cải tiến ràng buộc xâu trong sinh dữ liệu kiểm thử tự động" được bảo vệ tại trường nào?

Luận án này được bảo vệ tại Học viện Khoa học và Công nghệ. Năm bảo vệ: 2020.

Luận án "Cải tiến ràng buộc xâu trong sinh dữ liệu kiểm thử tự động" thuộc chuyên ngành gì?

Luận án "Cải tiến ràng buộc xâu trong sinh dữ liệu kiểm thử tự động" thuộc chuyên ngành Cơ sở toán học cho tin học. Danh mục: Tài liệu khác.

Luận án "Cải tiến ràng buộc xâu trong sinh dữ liệu kiểm thử tự động" có bao nhiêu trang?

Luận án "Cải tiến ràng buộc xâu trong sinh dữ liệu kiểm thử tự động" có 105 trang. Bạn có thể xem trước một phần tài liệu ngay trên trang web trước khi tải về.

Cách tải luận án "Cải tiến ràng buộc xâu trong sinh dữ liệu kiểm thử tự động" về máy như thế nào?

Để tải luận án về máy, bạn nhấn nút "Tải xuống ngay" trên trang này, sau đó hoàn tất thanh toán phí lưu trữ. File sẽ được tải xuống ngay sau khi thanh toán thành công. Hỗ trợ qua Zalo: 0559 297 239.

Luận án liên quan

Chia sẻ tài liệu: Facebook Twitter