Releases: UnitTestBot/UTBotJava
2023.10
UnitTestBot can now generate tests for Spring applications.
- It automatically detects if you use the Spring framework and provides you with necessary options right in the dialog window.
- You can choose from the three approaches to Spring test generation:
- standard unit tests that mock environmental interactions,
- Spring-specific unit tests that use information about the Spring application context,
- and integration tests that validate interactions between Spring components.
Find more improvements and bug fixes:
- Support for IntelliJ IDEA 2023.2
- Taint analysis feature (experimental)
- Improved mocking in symbolic execution engine
- Enhanced fuzzing mechanism: improved domain-specific API and mutation processes; support for generic fields and resolving generic parameter types; single branch detection, and ability to use all public methods of a class under test
- Improved UIs for standard Java, Spring, and Python test generation
- Fixed bugs for symbolic execution engine, fuzzing, code generation and instrumented process, summaries, SARIF reports, and more
- Multiple improvements for Python support related to rendering constructors; mastering exceptions, timed out tests, and regular expressions; fixes for coverage and shutting down behavior
- Enhanced Go test generation: support for maps and user-defined types
2023.3
Check out the latest UnitTestBot release with major improvements and bug fixes:
-
Compatibility with IntelliJ IDEA 2022.3
-
Using Java 17 for plugin compilation
-
Improved fuzzing behavior
-
Saving test generation timeout as a project-specific setting
-
Inspections for the nested classes displayed in the Problems tool window
-
No more empty tests when selecting multiple classes for generation
2022.12.1
Try out the latest UnitTestBot release — сheck the new features and improvements available for IntelliJ IDEA 2022.1–2022.2:
-
Automated unit test generation for Go code (supported for IntelliJ IDEA Ultimate)
-
Major improvements to Python support: new fuzzing platform, redesigned type inference algorithm, support for generics and protocols, 10x faster performance when running functions
-
Enhanced test generation for JavaScript: streamlined installation and configuration process, new fuzzing platform, improved UI, support for collections
-
Symbolic execution improvements for generating Java/Kotlin tests: support for ARM architecture on macOS devices, better support for generics, support for virtual invokes on enum instances, processing clinit sections
-
Mocking improvements for generating Java/Kotlin tests: symbolic mocks for popular but insignificant methods, assertions using deep equality for mocks
-
Bug fixes and refactoring for the major components
-
Documentation updates
2022.12
Meet the latest UnitTestBot release with the support for multiple languages. Check out the new features and major improvements:
- Experimental UnitTestBot .NET plugin for JetBrains Rider IDE: generating unit tests for C# with the custom V# symbolic execution engine #1463
- Generating tests for Python and JavaScript #1199 #1545
- New fuzzing platform providing support for multiple languages #1457
- Improved test generation for Kotlin code #1338 #1339 #1341 #1336 #1352
- Multiprocess architecture based on the Reactive Distributed communication framework with advanced logging and debugging options #1399
- Symbolic execution engine with higher priority and fewer false UNSAT verdicts #1514 #1528 #1521
- UI/UX improvements for test sources root,
setting.properties
file, cancellation, timeout settings, notifications #1010 #1519 #1439 #1420 #1311 - Summaries with fine-grained settings #1442 #1452
- SARIF reports enabled by default, displaying sandbox-related and timeout test failures, properly addressing source files #1471 #1496 #1364 #1456
- Improved monitoring visualized with Grafana #1523 #1363 #1328
- Test generation bug fixes #1525 #1561 #1508 #1502 #1495 #1491 #1483 #1458 #1450 #1447 #1424 #1410 #1408 #1389 #1343
- Detailed documentation on UnitTestBot components including UnitTestBot architecture overview #1565 #1559 #1453 #1457 #1501 #1417 #1465
Visit UnitTestBot website.
Share your feedback and join our project.
2022.11
Try out the latest release and get even better test generation experience. Check what we've added to UnitTestBot:
- Engine #1261 and solver #1265 performance improvements — supplemented with fixes to make engine run smoother #386 #1228
- Enhanced test generation for Kotlin code #1190 #1191 #1200 #1241 including support for top-level Kotlin functions #847
- Streamlined support for Java streams #1229
- Improvements for parameterized test generation #1137 #1221 #1231
- Fuzzer optimizations for more effective minimization #1129 #1225 along with improved sandboxing #1134
- Fixes for generating more accurate test descriptions #1212
- Documentation on custom Javadoc tags feature #1085
- Plugin UX/UI improvements #1017 #1119 #1059 #1149 #1184 #1186 #1195 #1196 #1209 #1224 #1226
- Better SARIF report generation #1223 and a brand-new built-in SARIF report visualizer #1166
2022.10.1
Our first stable release of UnitTestBot is now available. It introduces ultimate quality improvements and offers new features to make automated test generation more powerful and versatile.
Check what's new in UnitTestBot:
- Support for the latest IntelliJ IDEA 2022.2.2 (JRE 17)
- Custom UnitTestBot tags in Javadoc comments
- Fuzzing tests for Generics and Date classes
- UI/UX improvements
Try out the release version and give us feedback.
If you have questions, please refer to our user guide.
2022.10
Our first stable release of UnitTestBot is now available. It introduces ultimate quality improvements and offers new features to make automated test generation more powerful and versatile.
Check what's new in UnitTestBot:
- Support for the latest IntelliJ IDEA 2022.2 (JRE 17)
- UI/UX improvements
- Sandboxing executions of a suspicious code
- Support for nested classes, hidden fields and queues
- Fuzzing: generating tests for Generics and Date classes, support for methods with no parameters and fields with public setters
- Parameterized tests improvements
- Ability to create and run tests at once
- Custom UnitTestBot tags in Javadoc comments
- UtUtils class incapsulating test util methods
- Bug fixes
- User guide and design docs
Try out the release version and give us feedback.
If you have questions, please refer to our user guide.
What's Changed
- Fix searching of modifiers field for JDK 8-17 by @sergeypospelov in #408
- Support -P parameters in the utbot-gradle by @ideaseeker in #377
- Added ForceStaticMockListener to run "configure mockito-inline" action. by @nikitavlaev in #438
- Fixed NPE for processing static field as first statement in MUT by @Damtev in #433
- Disabled NPE checks for non-public library fields by default by @Damtev in #353
- Removed always used coverage-based minimization strategy for plugin by @Damtev in #450
- Minimize exceptions in signature by @sofurihafe in #418
- Extract Traverser from UtBotSymbolicEngine by @sergeypospelov in #307
- Add summary tests for ListWrapperReturnsVoidExample by @onewhl in #444
- Support startColumn field in the SARIF report by @ideaseeker in #454
- Remove duplicates in SARIF report by @ideaseeker in #474
- Minimize UtExecution number produced by fuzzing and collect coverage statistics by @Markoutte in #465
- Optimized dependencies by @Damtev in #480
- Disable action in editor for the file located in test source root by @EgorkaKulikov in #478
- Fix the way of setting static final fields by @sergeypospelov in #466
- assertArrayEquals overload is not found, tests doesn't compile #135 by @Vassiliy-Kudryashov in #464
- Empty tooltips are shown on Java plugin popup #420 by @Vassiliy-Kudryashov in #479
- Prepare plugin for 2022.7-beta release #441 by @Vassiliy-Kudryashov in #442
- Test generation is enabled for interfaces via shortcut and menu actio… by @Vassiliy-Kudryashov in #487
- Use ClassId name in prettifiedName if canonical name is null by @dtim in #484
- UI. IDEA plugin dialog. Test framework is reset to JUnit5 on selectin… by @Vassiliy-Kudryashov in #489
- Show exception stack trace if it happens in user code #368 by @sofurihafe in #477
- Make specify destination package option invisible #488 by @EgorkaKulikov in #495
- Fuzzer should change objects with its public setters by @Markoutte in #439
- Turn of fuzzing for AbstractModelBasedTest.kt by @Markoutte in #506
- Improve code generation pipeline by @EgorkaKulikov in #455
- Add the field testPrivateMethods in utbot-gradle by @ideaseeker in #483
- Fix incomplete results in the SARIF report by @ideaseeker in #471
- Add sarif results minimization #490 by @ideaseeker in #498
- Default value of codegen language and test framework is improved in UI #499 #500 by @EgorkaKulikov in #507
- Wrong wrapper for valueOf in parametrized tests #512 by @sofurihafe in #513
- Improve overloadings check in generated code #370 by @Vassiliy-Kudryashov in #503
- Create symbolic link by @victoriafomina in #502
- Update symbolic link by @victoriafomina in #521
- Generate test by fuzzing for methods with no parameters #511 by @Markoutte in #515
- Rename UtTestCase #519 by @sergeypospelov in #517
- Change private expectedResult type to Object in generated parametrized tests #528 by @sofurihafe in #529
- Enable Java assertions in framework integration tests by @dtim in #539
- Test report reworked (#522) by @nikitavlaev in #523
- Provide references to invoked methods in summary by @onewhl in #476
- Fix possible NPE for package name in rarely cases by @Markoutte in #544
- Capitalize method names properly by @onewhl in #504
- Improve plugin behavior classes/packages with no methods #516 by @volivan239 in #533
- Disabled tests for autogenerated functions #457 by @volivan239 in #505
- Better PR description by @denis-fokin in #486
- Removed external library and added clustering algorithm by @amandelpie in #532
- Refactor TestCaseGenerator and CodeGenerator and their usages #508 by @EgorkaKulikov in #540
- Test report for multiple classes by @nikitavlaev in #553
- Try another approach to mark hanging generated tests #371 by @Vassiliy-Kudryashov in #554
- Stricter check for enum classes in EnumModelProvider #558 by @dtim in #559
- Required libraries can be installed silently #492 by @Vassiliy-Kudryashov in #494
- Follow-up fix for 0c84e2f by @nikitavlaev in #557
- Implement new approach to create variables in parametrized tests by @EgorkaKulikov in #547
- Add an option to control fuzzing #451 by @Markoutte in #552
- Added pre-condition for non-empty paths in the ExecutionMetric to avoid unclear NPE #267 by @amandelpie in #567
- Already created test source root is not found in Idea project #497 by @Vassiliy-Kudryashov in #568
- Optimized module dependencies by @Damtev in #569
- Fuzzing is not stopped on timeout when symbolic execution is excluded #570 by @Markoutte in #574
- Revert missed changes for default values in UI by @EgorkaKulikov in #575
- Manual checklist template: check plugin size by @alisevych in #362
- Remove obsolete fuzzing code and update readme.md #467 by @Markoutte in #530
- Fixed the weird logic in the of error messages in SummaryTestCaseGeneratorTest #383 by @amandelpie in #572
- Improve processing CgNotNullAssertion in deepEquals by @sofurihafe in #582
- Parametrized test generation in Uber tests #541 by @sofurihafe in #573
- Added an approach to differ tests produced by Fuzzer and SymbolicExecutor #581 by @amandelpie in #583
- UI. Gradle project. Test sources root can be located anywhere #549 by @Vassiliy-Kudryashov in #577
- Fix expected number of generated methods counter #589 by @sofurihafe in #590
- Naming conventions added by @olganaumenko in #564
- Added links to utbot.org and JB Marketplace by @olganaumenko in #514
- Added a few tests to check generated clustering comments #384 by @amandelpie in #595
- IndexNotReadyException thrown in IDEA with installed UnitTestBot plug… by @Vassiliy-Kudryashov in #586
- Overflow in fuzzing #588 by @Markoutte in #604
- Make the
peek
method behaviour in t...
2022.7-beta
What's Changed
In this version we have implemented multiple features and improvements:
• Java 11 support.
• Smart Fuzzer significantly improves test generation results.
• Generated tests have become even more human-readable and user-friendly.
• We have enabled Mac OS X platform, give it a try.
• The UnitTestBot engine generates SARIF reports.
• We have polished plugin UX.
• Mocking support is enhanced.
• Java Streams, better Java Optional support, Java String support is improved, package-private constructors now are used for the test generation.
Discover everything mentioned above and much more in this release.
Full Changelog: 2022.5-alpha...2022.7-beta
2022.5-alpha
This is the very first alpha version of UTBotJava, automated test generator for Java. We tested it on Win64 and Linux64 and it currently doesn't work for MacOS (will be fixed soon).
Give a try to our IntelliJ IDEA plugin (click to download). After plugin is installed you can run UTBot with few clicks.
In this version:
- Generation of regression/error tests with a single action
Generate tests with UtBot
for folder, class or method. - Statement and branch coverage maximization
- Tests in Error suite are generated for all implicitly thrown
RuntimeException
(e.g.NullPointerException
,ArrayIndexOutOfBoundsException
, etc.); these tests are failed by default (customizable in "File -> Settings -> UTBot") - Tests that runs too long are put into Timeout suite
- Test that fails JVM are put into Crash suite
- Minimize number of generated test, not loosing coverage and detected errors
- Human-readable names and comments for generated tests