نوع مقاله : مقاله پژوهشی
نویسندگان
دانشکده مهندسی کامپیوتر، دانشگاه صنعتی خواجه نصیرالدین طوسی، تهران، ایران.
چکیده
کلیدواژهها
موضوعات
عنوان مقاله [English]
نویسندگان [English]
Software testing is an important and necessary matter in the development process of any software. Nowadays, an important part of software testing is performed automatically. In automated software testing, there may be obstacles that make the test difficult. One of these obstacles is the infeasible paths in the control flow graph obtained from the source code of the software under test. Infeasible paths are paths that cannot be traversed by any input. The existence of such paths can cause problems in various fields such as test data generation, security and etc., leading to a waste of resources. In order to prevent the mentioned problems, detection of infeasible paths can be very critical. But recognizing these paths in large software can be a time-consuming task due to the large amount of codes and the high number of paths in the control flow graph. In this article, a method is proposed that can increase the infeasible paths detection speed by applying reinforcement learning algorithms. In this method, the speed of the Z3 SMT solver has been increased by using the DQN agent. Z3 is a tool used to check the satisfiability of formulas constructed from the conditions in the control flow graph for detecting infeasible paths. In fact, in this paper, the techniques provided by Z3 are learned using reinforcement learning, and then by selecting and applying these techniques based on the learning performed, the solving speed increases. As the speed of the Z3 tool increases, the speed of all algorithms and methods that use this tool to detect infeasible paths in control flow graphs will also increase. Also, the Z3 tool is applicable in any field where problems can be reduced to the satisfiability of a formula, and improving its performance in those fields can also be effective. The proposed method in this article has been tested on QF_NRA and QF_NIA logics. In the experiments, it is shown that using the proposed method, the speed of the Z3 solver can be increased up to 4.7 times. Furthermore, in the conducted experiments using this method, the speed of Z3 increased by an average of 1.954 times in QF_NRA logic and 1.687 times in QF_NIA logic.
کلیدواژهها [English]