Affiliation:
1. University of Illinois at Urbana-Champaign
Abstract
In
unit testing
, a program is decomposed into units which are collections of functions. A part of unit can be tested by generating inputs for a single entry function. The entry function may contain pointer arguments, in which case the inputs to the unit are
memory graphs
. The paper addresses the problem of automating unit testing with memory graphs as inputs. The approach used builds on previous work combining
symbolic
and
concrete execution
, and more specifically, using such a combination to
generate test inputs
to explore all feasible execution paths. The current work develops a method to represent and track constraints that capture the behavior of a symbolic execution of a unit with memory graphs as inputs. Moreover, an efficient constraint solver is proposed to facilitate incremental generation of such test inputs. Finally, CUTE, a tool implementing the method is described together with the results of applying CUTE to real-world examples of C code.
Publisher
Association for Computing Machinery (ACM)
Cited by
158 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Marco: A Stochastic Asynchronous Concolic Explorer;Proceedings of the 46th IEEE/ACM International Conference on Software Engineering;2024-02-06
2. Knowledge transfer based many-objective approach for finding bugs in multi-path loops;Complex & Intelligent Systems;2024-01-24
3. Neural-Based Test Oracle Generation: A Large-Scale Evaluation and Lessons Learned;Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering;2023-11-30
4. Adonis
: Practical and Efficient Control Flow Recovery through OS-level Traces;ACM Transactions on Software Engineering and Methodology;2023-11-24
5. Translation Validation of Information Leakage of Compiler Optimizations;IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems;2023-11