Danh mục

Cải tiến công cụ sinh dữ liệu thử Java PathFinder bởi tối ưu các ràng buộc

Số trang: 4      Loại file: pdf      Dung lượng: 506.76 KB      Lượt xem: 11      Lượt tải: 0    
tailieu_vip

Phí lưu trữ: miễn phí Tải xuống file đầy đủ (4 trang) 0
Xem trước 1 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài viết Cải tiến công cụ sinh dữ liệu thử Java PathFinder bởi tối ưu các ràng buộc đề xuất việc áp dụng thuật toán tối ưu các ràng buộc - biểu diễn các lộ trình thực thi mã nguồn, nhằm giảm thời gian thực thi nhưng vẫn đảm bảo hiệu quả bao phủ. Giải pháp cải tiến được thử nghiệm trên tập các chương trình Java khác nhau và cho kết quả rất khả quan.
Nội dung trích xuất từ tài liệu:
Cải tiến công cụ sinh dữ liệu thử Java PathFinder bởi tối ưu các ràng buộc 104 Lê Thị Mỹ Hạnh, Trần Hoàng Dũng, Nguyễn Thanh Bình CẢI TIẾN CÔNG CỤ SINH DỮ LIỆU THỬ JAVA PATHFINDER BỞI TỐI ƯU CÁC RÀNG BUỘC IMPROVING THE JAVA PATHFINDER TOOL FOR GENERATING TEST DATA BY OPTIMIZING CONSTRAINTS Lê Thị Mỹ Hạnh1, Trần Hoàng Dũng2, Nguyễn Thanh Bình1 1 Trường Đại học Bách khoa, Đại học Đà Nẵng; ltmhanh@dut.udn.vn, ntbinh@dut.udn.vn 2 Trường Cao đẳng Lương thực - Thực phẩm; dungdnt@gmail.com Tóm tắt - Sinh dữ liệu thử là một trong các giai đoạn quan trọng Abstract - Test data generation is one of the most important and và quyết định trong kiểm thử phần mềm. Các kỹ thuật sinh dữ liệu crucial phases in software testing. Structural test data generation thử cấu trúc dựa trên mã nguồn để tạo ra dữ liệu thử nhằm phát techniques are based on source code to create test data, which hiện lỗi của người lập trình. Kỹ thuật sinh dữ liệu thử sử dụng thực can uncover programmer's faults. A test data generation technique thi ký hiệu được cài đặt trong công cụ Java PathFinder để sinh dữ using symbolic execution is implemented in the Java PathFinder liệu thử cho các chương trình Java. Tuy nhiên, hiệu năng công cụ tool to generate test data for Java programs. However, Java Java PathFinder còn hạn chế, đó là thời gian thực thi khá lớn. PathFinder has a performance limitation: execution time is quite Trong bài báo này, chúng tôi đề xuất việc áp dụng thuật toán tối ưu big. In this paper, we propose applying an optimization algorithm các ràng buộc - biểu diễn các lộ trình thực thi mã nguồn, nhằm for constraints - representing execution paths in programs - in order giảm thời gian thực thi nhưng vẫn đảm bảo hiệu quả bao phủ. Giải to reduce the execution time but ensure the coverage pháp cải tiến được thử nghiệm trên tập các chương trình Java khác effectiveness. The experiment on different Java programs shows a nhau và cho kết quả rất khả quan. promising result of the proposed solution. Từ khóa - kiểm thử; sinh dữ liệu thử; thực thi ký hiệu; Java Key words - testing; test data generation; symbolic execution; PathFinder; tối ưu ràng buộc Java PathFinder; constraint optimization 1. Đặt vấn đề Mục tiêu quan trọng của thực thi ký hiệu trong kiểm thử Với sự phát triển nhanh chóng của công nghệ thông tin phần mềm là để khám phá càng nhiều đường dẫn thực thi trong vài thập kỷ gần đây, công nghiệp phần mềm đang dần chương trình khác nhau trong một khoảng thời gian nhất trở thành ngành mũi nhọn ở hầu hết các quốc gia trên thế định; và với mỗi đường dẫn (1) tạo ra một tập hợp các giá giới, kéo theo là sự mở rộng về quy mô cũng như chất trị đầu vào cụ thể để thực thi đường dẫn đó, và (2) kiểm tra lượng của các sản phẩm phần mềm. Tuy nhiên, một phần sự hiện diện của các loại lỗi khác nhau như lỗi chưa bắt mềm không bao giờ là hoàn hảo, và các vấn đề về hỏng hóc ngoại lệ, lỗ hổng bảo mật, và thất lạc bộ nhớ... Một trong phần mềm luôn là một nguy cơ lớn; những lỗi phần mềm những thế mạnh chính của thực thi ký hiệu là khả năng sinh dù là nhỏ nhất cũng có thể gây ra thiệt hại và ảnh hưởng các dữ liệu thử cụ thể, cho phép tạo ra các bộ dữ liệu thử nghiêm trọng. Do đó hoạt động kiểm thử phần mềm được có độ bao phủ cao. Hơn nữa, theo quan điểm tìm kiếm lỗi, đặt ra như một nhu cầu cấp thiết, giúp ngăn chặn và khắc kỹ thuật này cung cấp cho các nhà phát triển các dữ liệu phục các lỗi tiềm ẩn bên trong phần mềm chưa được phát đầu vào cụ thể gây ra lỗi, có thể được sử dụng để xác nhận hiện. Nhằm giảm chi phí cho việc kiểm thử thủ công khi và gỡ rối các lỗi độc lập với các công cụ thực thi ký hiệu các phần mềm đang dần trở nên phức tạp hơn, đồng thời sinh ra nó. tăng tính hiệu quả và tin cậy của quá trình kiểm thử, hệ Đã có nhiều công trình nghiên cứu áp dụng phương thống kiểm thử phần mềm dựa trên cơ chế sinh dữ liệu thử pháp thực thi ký hiệu để sinh dữ liệu thử cho các ngôn ngữ tự động đang được quan tâm và tập trung nghiên cứu. lập trình như .NET, C, Java và cho ra đời nhiều công cụ Nhiều cách tiếp cận cho việc sinh dữ liệu thử tự động kiểm thử như CREST, jCUTE, KLEE, Java PathFinder... đã được đề xuất, trong đó phân tích tĩnh dựa trên thực thi Trong phạm vi bài báo này, chúng tôi triển khai cách ký hiệu (SE - Symbolic Execution) [1, 2] được xem là một tiếp cận sinh dữ liệu thử dựa trên thực thi ký hiệu cho ngôn phương pháp hiệu quả, có thể phát hiện các lỗi phức tạp ngữ Java; đây là một ngôn ngữ lập trình đa nền tảng và có mà các phương pháp thông thường tốn nhiều công sức để phạm vi sử dụng rất lớn trong ngành công nghiệp phần xử lý. Ý tưởng của thực thi ký hiệu là sử dụng các giá trị mềm. Ngoài việc áp dụng kỹ thuật thực thi ký hiệu và giải tượng trưng, thay vì phân tích chương trình với các giá trị ...

Tài liệu được xem nhiều: