CITRUS: Automated Unit Testing Tool for Real-world C++ Programs
C++ is popular in many application domains for its extensibility, flexibility, and high performance. At the same time, however, C++ is infamous for its complex syntax and semantics. Thus, it is challenging to write correct C++ programs and the need to automatically test C++ programs has been high. Unfortunately, due to the high complexity of C++ (e.g., template instantiation, complex STL types, etc.), there are almost no automated testing tool publicly available for real-world C++ programs.
We have developed a new automated unit testing tool CITRUS that resolves the aforementioned complexity of C++ programs. After analyzing the source code of a target C++ program P, CITRUS automatically generates test driver files for P, each of which consists of various method calls of P. Then, to improve the test coverage of P, it generates more diverse test drivers by mutating the test driver code. Also, CITRUS increases the test coverage of P further by applying libfuzzer to directly alternate P’s state by mutating arguments of the methods. We have demonstrated the testing effectiveness and the efficiency of CITRUS through the experiments on the real-world C++ programs, on which CITRUS achieves up to 79% branch coverage.
- CITRUS is available at https://github.com/swtv-kaist/CITRUS
- CITRUS demo video is available at https://youtu.be/rrS8Eg%5fKQh8
Tue 5 AprDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
11:30 - 12:45 | ICST Automated Testing ITesting Tools / Research Papers at Margaret Hamilton Chair(s): Tanja E. J. Vos Universitat Politècnica de València and Open Universiteit | ||
11:30 15mTalk | Applying Symbolic Execution to Test Implementations of a Network Protocol Against its Specification Research Papers Hooman Asadian Uppsala University, Paul Fiterau-Brostean Uppsala University, Bengt Jonsson Uppsala University, Sweden, Konstantinos (Kostis) Sagonas Uppsala University, Sweden Pre-print | ||
11:45 15mTalk | Model-based Testing of Scratch Programs Testing Tools Katharina Götz University of Passau, Patric Feldmeier University of Passau, Gordon Fraser University of Passau | ||
12:00 15mTalk | CITRUS: Automated Unit Testing Tool for Real-world C++ Programs Testing Tools | ||
12:15 15mTalk | Symbolic Verification of Message Signatures in MPI Research Papers Hengbiao Yu National University of Defense Technology, Banghu Yin National University of Defense Technology, Xin Yi National University of Defense Technology | ||
12:30 15mLive Q&A | Discussion and Q&A Research Papers |