Publication Type
Conference Proceeding Article
Version
publishedVersion
Publication Date
4-2015
Abstract
A (Java) class provides a service to its clients (i.e., programs which use the class). The service must satisfy certain specifications. Different specifications might be expected at different levels of abstraction depending on the client's objective. In order to effectively contrast the class against its specifications, whether manually or automatically, one essential step is to automatically construct an abstraction of the given class at a proper level of abstraction. The abstraction should be correct (i.e., over-approximating) and accurate (i.e., with few spurious traces). We present an automatic approach, which combines testing, learning, and validation, to constructing an abstraction. Our approach is designed such that a large part of the abstraction is generated based on testing and learning so as to minimize the use of heavy-weight techniques like symbolic execution. The abstraction is generated through a process of abstraction/refinement, with no user input, and converges to a specific level of abstraction depending on the usage context. The generated abstraction is guaranteed to be correct and accurate. We have implemented the proposed approach in a toolkit named TLV and evaluated TLV with a number of benchmark programs as well as three real-world ones. The results show that TLV generates abstraction for program analysis and verification more efficiently.
Keywords
Program Abstraction, Automata Learning, Behavior Models, Symbolic Execution
Discipline
Software Engineering
Research Areas
Software and Cyber-Physical Systems
Publication
Proceedings of the 10th Joint Meeting on Foundations of Software Engineering, ESEC/FSE 2015, Bergamo, Italy, August 30-September 4
First Page
698
Last Page
709
ISBN
978145033675815
Identifier
10.1145/2786805.2786817
Publisher
ACM
City or Country
Bergamo, Italy
Citation
SUN, Jun; XIAO, Hao; LIU, Yang; LIN, Shang-Wei; and QIN, Shengchao.
TLV: Abstraction through testing, learning, and validation. (2015). Proceedings of the 10th Joint Meeting on Foundations of Software Engineering, ESEC/FSE 2015, Bergamo, Italy, August 30-September 4. 698-709.
Available at: https://ink.library.smu.edu.sg/sis_research/4975
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.
Additional URL
https://doi.org/10.1145/2786805.2786817