Skip to content

Tool that generates unit test by C/C++ source code, trying to reach all branches and maximize code coverage

License

Notifications You must be signed in to change notification settings

olezhabobrov/UTBotCpp

 
 

Repository files navigation

What is UTBotCpp?

Build UTBot and run unit tests Publish UTBot as an archive

UTBotCpp generates test cases by code, trying to cover maximum statements and execution paths. We treat source code as source of truth assuming that behavior is correct and corresponds to initial user demand. Generated tests are placed in so-called regression suite. Thus, we fixate current behavior by generated test cases. Using UTBotCpp developers obtain full control of their code. No future change can break the code without being noticed once it's covered with tests generated by UTBot. This way, modifications made by developers to an existing code are much safer. Hence, with the help of generated unit tests, UTBot provides dramatic code quality improvement.

Features demonstration in 5 min (click to see on YouTube):

UTBot C/C++ Demo

More info on wiki

How to install and use UTBot

For now, you can only use UTBot under Ubuntu 18.04 and above. Navigate to the Releases GitHub page and download last version of UTBot.

UTBot is distrbuted as an archive that contains:

  1. A pack utbot_distr.tar.gz that contains UTBot binary and its dependencies;
  2. UTBot plugin for Visual Studio code — utbot_plugin.vsix;
  3. A version version.txt;
  4. A run script unpack_and_run_utbot.sh.

To launch UTBot, unzip the archive and run the ./unpack_and_run_utbot.sh command (we recommend doing it in a fresh directory to make UTBot removing easier). To remove UTBot, simply delete this directory.

To install UTBot VSCode plugin, use VSCode Install from VSIX command.

How to contribute to UTBot

See Contributing guidelines and Developer guide

About

Tool that generates unit test by C/C++ source code, trying to reach all branches and maximize code coverage

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 75.3%
  • TypeScript 11.2%
  • C 9.6%
  • Shell 1.3%
  • CMake 1.1%
  • JavaScript 0.5%
  • Other 1.0%