FAQ
What are the main features of Symflower?
Symflower extends your development environment with 3 new features:
- Generate test template
- Generate test suite (BETA)
- Test-backed diagnostics
You can manually trigger test template or test suite generation, or you can set up Symflower to automatically generate testing code for your projects in the background. See examples for all three features in our Getting started guide.
How long does it take for Symflower to generate tests?
Test template generation usually only takes an instant, with test template creation for a whole file or repository generally not taking longer than a few seconds.
Since Generating test suites (BETA) requires thorough code analysis, it can take from a few seconds to minutes (or even more if you want to generate them for a whole repository) depending on the complexity of the analyzed code.
Note that you can configure Symflower's settings to maximize the analysis time per method, ensuring that processes taking too long will be timed out.
Does Symflower use Artificial Intelligence to generate source code?
No. Symflower's code generation relies on a technology called symbolic execution (SE). Essentially, Symflower combines code analysis to generate boilerplate code, and a complex mathematical model to determine meaningful test values for your test suites.
In a nutshell, the advantages of Symflower's symbolic execution over AI are that:
- Symbolic execution provides full test coverage by identifying the inputs that lead to the execution of every possible program path.
- No redundant test cases are generated: Symflower creates a slim test suite with only the necessary tests to execute all paths.
- SE is deterministic, meaning that it will keep on delivering the same output for the same input.
- Symflower doesn't send home any of your code so you won't have to worry about the safety of your intellectual property.
Read our post about symbolic execution to gain a better understanding of the underlying technology, and find out how AI and SE can work together.
What are Symflower's limitations?
As of April 2024, Symflower works for Java, Spring, and Spring Boot applications (available for Java versions 1-17 and partly version 18-21). The tool doesn't currently support external dependencies or the full standard library, so it may not produce complete test suites for methods relying on either of these. We're constantly working to improve Symflower's test generation engine to make it useful in more and more scenarios. Have any suggestions or issues that you think should be fixed? Submit an issue or send us a message!
What build tools does Symflower support?
Symflower currently supports Maven and Gradle.
Which testing frameworks does Symflower support?
Symflower works with both JUnit 4 and JUnit 5 test cases. Your project's configuration will be automatically detected, or you can just manually configure Symflower to use the testing framework you prefer.
Which IDEs does Symflower support?
Symflower is available as a plugin for Visual Studio Code, IntelliJ IDEs (IDEA, Android Studio, GoLand), and as a CLI tool.
I encountered a bug. What should I do now?
Please submit a bug report via GitHub. Note that Symflower's Test suite generation is still in a beta version, so you may well experience bugs when using that feature – yet we ask you to submit these issues nonetheless to make sure we can fix them!
Can I use Symflower for Test-Driven Development?
Yes! In fact, we have a guide on using Symflower to support your TDD workflow.
Can I use Symflower to find reproducers for debugging?
Absolutely. See our guide for finding reproducers with Symflower for more details.
Does Symflower send home code?
No, Symflower works 100% locally, meaning that it doesn't send home any of your code.
Does Symflower support mocking?
Yes, Symflower uses Mockito to generate mocks automatically. Mocking is supported for both Java and Spring Boot applications.
How do I integrate Symflower into my workflow?
Generating a test template is easy with Symflower: just use the provided code lens or the context menu, define your own hotkeys, or use Symflower via the command palette. For a seamless experience, enable automated test generation upon saving the file.
Is there an online or cloud version of Symflower?
Symflower is currently only available as a tool that runs locally on your device.
Is Symflower a free tool?
Symflower is free to use for individual developers and teams of up to 5 members. Check out our pricing page for up-to-date pricing information.
What pricing options are available?
Please refer to our pricing page for up-to-date pricing information.
Are there any hardware and software (OS) requirements to use Symflower?
Symflower currently supports the following architectures:
- x86 with 64bit
- ARM with 64bit
And operating systems:
- Linux
- MacOS
- Windows
Where do I find further resources and examples to help me get started with Symflower?
This documentation offers a tutorial and a variety of examples for test template generation (plain Java and Spring Boot). There's a tutorial for getting started with generating test suites (BETA). We have also collected some of our favorite resources from the blog which should provide plenty of valuable information on topics including Spring Boot, Java, JUnit, TDD, and various programming principles and testing concepts.