BitDive: Zero Code QA for JVM Teams
BitDive is a zero code QA platform for Java, Kotlin, Spring Boot and other JVM based services. It does not ask you to write test code. Instead, it watches how your services handle real requests and turns these executions into reusable scenarios that you can replay in CI, staging or on a developer machine.
You add BitDive as a Maven or Gradle dependency, drop in a small config file and run your services as usual. No changes to business logic, no special logging, no separate test framework.
For QA, SDETs and developers this means two things:
- You can see exactly what happened inside the system for any important scenario.
- You can replay that same scenario on a new build and check that behavior has not changed in a bad way.
How BitDive Works
BitDive follows a simple loop: Capture → Replay → Verify.
Capture: real executions from any environment
BitDive runs inside your Java or Kotlin services and records real executions. Traffic can come from production, staging, QA, performance labs or dedicated test tenants. If the system handled a request once, that execution can become a test asset.
For each captured scenario BitDive stores the full story:
- incoming HTTP or gRPC request and outgoing response
- services and methods that were involved
- SQL queries with parameters and result sets
- calls to other services and message brokers such as Kafka
- exceptions and timings along the path
These traces are the raw material for both debugging and testing.
Learn more about Distributed Tracing and Method-Level Tracing.
Replay: isolated scenarios without mock servers
When you decide that a trace should become a test scenario, BitDive isolates it from the rest of the world. You do not need a separate mock server or hand written seed scripts.
BitDive analyses which external pieces were involved in the original execution. Databases, REST and gRPC endpoints, queues and topics. Then it prepares the environment in one of two ways:
- intercepts HTTP and JDBC calls and responds with data from the original recording
- or starts real services and databases through Testcontainers and restores the required state
From the QA point of view, this looks like a scenario that simply runs. All dependencies behave exactly as they did during capture, without you configuring them by hand.
Read more in the Getting Started guide.
Verify: compare real behavior, not just status codes
On each new build BitDive can replay selected scenarios and compare the current behavior with the original run.
It does not stop at checking that responses are 200. BitDive looks at:
- response bodies and structures
- SQL patterns and result shapes
- call sequences between services
- timings and obvious regressions
This helps catch semantic drift. For example, an endpoint now returns a slightly different payload, a service started calling another service with different parameters, or a refactor introduced an N+1 query.
What QA teams gain with BitDive
A clear view of what really happened
When something breaks, QA usually has to combine screenshots, logs, metrics and a lot of guesswork. With BitDive you open one trace and see the full path of the scenario end to end.
For each recorded scenario you have:
- the exact input
- the services and methods on the path
- the database queries and their parameters
- the external calls and their payloads
Bug reports can include a BitDive trace id. Developers open it and see the same view as QA. There is no need to reconstruct the situation from fragments.
Regression built from real behavior
QA leads and SDETs can pick important flows directly from captured traces. Payments, signup, billing, partner integrations, internal jobs and other risky paths.
These traces are grouped into collections and become your regression suites. On every build BitDive replays these collections and highlights where behavior changed compared to the previous baseline.
Coverage grows when you select more real flows, not when you write more test classes. The suite evolves together with real usage rather than fighting against it.
Automation without framework debt
Traditional backend automation for JVM stacks often turns into a second application. DSLs, helper libraries, mock servers, database seeders and complex CI scripts all need maintenance and produce their own technical debt.
BitDive avoids this. The tests are not a parallel codebase. The product itself defines the tests through its real executions. Old flows can be removed from collections in a few clicks. New flows can be added by selecting traces in the UI. There is no separate framework to refactor when APIs or schemas change.
Explore the Service Map to visualize dependencies and Performance Explorer to identify bottlenecks.
No mock server, no manual data setup
A key part of BitDive is that you do not maintain mocks and test data by hand.
When a trace is converted to a replayable scenario, BitDive:
- Detects which dependencies were involved.
- Decides how to isolate or reproduce them using interception and Testcontainers.
- Stores enough context to re run the scenario later in a deterministic way.
You do not:
- write mock endpoints
- maintain a dedicated mock server
- keep large sets of seed scripts in sync with production data
You focus on which scenarios matter. BitDive takes care of making them executable.
Technology support
BitDive is built for JVM ecosystems and supports a growing list of technologies across databases, protocols, runtimes, and environments.
| Databases | Protocols | Runtimes | Environments |
|---|---|---|---|
| PostgreSQL | HTTP/REST | Java 8, 11, 17, 21+ | Docker |
| MySQL | WebSocket | Kotlin (all versions) | Kubernetes |
| MongoDB | gRPC | Scala | Bare-metal |
| Redis | GraphQL | Spring Boot 2.x, 3.x | GitLab CI |
| Cassandra | SOAP | Spring Framework | GitHub Actions |
| Neo4j | Kafka | Micronaut | Jenkins |
| Oracle | RabbitMQ | Quarkus | CircleCI |
| Traditional SQL | ActiveMQ | Jakarta EE |
Can't find your stack? We're adding support continuously. Contact us to discuss your specific requirements.
See the System Architecture documentation for deployment details.
Security and environments
BitDive offers flexible deployment options to match your security requirements. You can use the managed SaaS platform or deploy the backend in your own infrastructure.
With either deployment option you can:
- enable redaction of sensitive fields in traces such as passwords and tokens
- restrict replay to non production environments so that replays do not affect live data
- use standard encrypted channels like HTTPS and SSE for communication between components
For on-premise deployments:
- the backend runs entirely in your private cloud or data center
- trace data stays within your network unless you decide otherwise
Captured executions from production can be safely replayed in staging or QA, with all external effects redirected to isolated dependencies.
For detailed security information, see System Architecture and Deploy BitDive Infrastructure.
Who BitDive is for
-
QA engineers and SDETs Use real executions as the main test asset. Spend time selecting flows and interpreting results instead of maintaining frameworks, mocks and data.
-
Java and Kotlin developers Get bug reports that are actually reproducible. Take a trace id, replay the scenario locally, apply a fix and run the same scenario again to confirm that behavior is correct.
-
Platform and DevOps teams Integrate BitDive into CI or CD as a quality gate. Reuse the same traces for debugging, regression checks and release validation.
Where to go next
If you want to see BitDive in action:
- start with the Getting Started guide to connect a Java or Kotlin service
- explore the System Architecture to understand how components work together
- learn about Distributed Tracing to see how traces are captured
- check CI/CD Integration options to plug BitDive into your pipeline
BitDive turns how your JVM services actually behave under real requests into something you can see, replay and compare on every build. This lets QA and development spend less time building tests and more time understanding and preventing bugs.