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 Tác giả Lê Thị Mỹ Hạnh, Trần Hoàng Dũng[.]
Trang 1CẢ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 Tác giả: Lê Thị Mỹ Hạnh, Trần Hoàng Dũng, Nguyễn Thanh Bình Trường Đại học Bách khoa, Đại học Đà Nẵng; ltmhanh@dut.udn.vn, ntbinh@dut.udn.vn
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 và quyết định trong kiểm thử phần mềm Các kỹ thuật sinh dữ liệu thử cấu trúc dựa trên mã nguồn để tạo ra dữ liệu thử nhằm phát 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 thi ký hiệu được cài đặt trong công cụ Java PathFinder để sinh dữ liệu thử cho các chương trình Java Tuy nhiên, hiệu năng công cụ Java PathFinder còn hạn chế, đó là thời gian thực thi khá lớn 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 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
Từ khóa: Kiểm thử, Sinh dữ liệu thử, Thực thi ký hiệu, Java PathFinder, Tối ưu ràng buộc
Abstract:
Test data generation is one of the most important and crucial phases in software testing Structural test data generation techniques are based on source code to create test data, which can uncover programmer's faults A test data generation technique using symbolic execution is implemented in the Java PathFinder tool to generate test data for Java programs However, Java PathFinder has a performance limitation: execution time is quite big In this paper, we propose applying an optimization algorithm for constraints - representing execution paths in programs -
in order to reduce the execution time but ensure the coverage effectiveness The experiment on different Java programs shows a promising result of the proposed solution
Key words: Testing; Test data generation; Symbolic execution; Java PathFinder; Constraint optimization