Qodana Case Study: How JetBrains Kotlin QA Scaled Quality for Kotlin 2.0
When we prepared to release IntelliJ IDEA support for Kotlin 2.0, a major milestone for their compiler and ecosystem, their QA team faced a formidable challenge: how to ensure consistent, reliable quality across a complex and evolving codebase without slowing down development. With the Kotlin compiler, IDE plugin, and numerous inspections being refactored and rewritten, […]

Table of Contents
When we prepared to release IntelliJ IDEA support for Kotlin 2.0, a major milestone for their compiler and ecosystem, their QA team faced a formidable challenge: how to ensure consistent, reliable quality across a complex and evolving codebase without slowing down development.
With the Kotlin compiler, IDE plugin, and numerous inspections being refactored and rewritten, the need for deep validation was clear, but the scope made traditional manual testing impractical. That’s where Qodana came in.
The challenge: Complexity without clear-cut use cases
Rather than discrete features with predictable behavior, Kotlin QA was dealing with broad architectural changes, language-level enhancements, and evolving development workflows. Many of these updates didn’t come with fixed test scenarios. Instead, the QA team had to understand and test large interconnected systems within the scope of the IDE quickly and at scale.
The release of Kotlin 2.0 brought major updates to the compiler, improving performance and extensibility, while also introducing necessary refactorings and reductions in technical debt. Alongside this, the Kotlin IDE plugin underwent substantial changes, including complete rewrites of many inspections used to detect unreachable or unconventional code.
These inspections needed to work reliably across every conceivable language construct. Manually verifying each one would have required hundreds of hours and substantial QA bandwidth, something the team simply didn’t have.
The solution: Static analysis with Qodana
To help meet this challenge, the Kotlin QA team turned to Qodana as a supporting tool in the process.
Their strategy was to leverage static code analysis to both improve code health and test the inspections themselves by running them on large, real-world codebases like IntelliJ IDEA, which is developed using both Kotlin and Java.
This gave the team immediate value in two ways:
- Validation at scale: They could confirm that inspections were functioning as expected across millions of lines of code quickly, automatically, and comprehensively.
- Early detection: Static analysis helped uncover edge cases, inconsistencies, and bugs that wouldn’t have surfaced through manual exploratory testing.

How Kotlin integrated Qodana
After experimenting with Qodana locally, the team integrated it into their CI pipeline using TeamCity. They added Qodana as a build step and began publishing results to Qodana Cloud.
To ensure focus, they used baseline files to filter out known issues, allowing them to zero in on new, unexpected regressions without unnecessary noise. The result was a streamlined workflow that supported both developers and QA engineers by delivering fast, actionable feedback.
Supporting strategic testing
This initiative has brought a significant improvement for both QA and the development team. It took automated regression testing to the next level, providing solid ground for further development.
Qodana played a key role in enabling this shift:
- By automating deep inspection coverage, it freed the team to focus on high-value, human-driven exploratory testing of complex integration parts.
- It allowed the team to move faster while maintaining confidence in the quality of the Kotlin ecosystem.
Results: Faster releases, more confidence
- Saved time and effort: Manual testing was no longer a bottleneck.
- Improved accuracy: Real-world validation caught bugs earlier and more reliably.
- Increased team buy-in: The approach was well-received across the team, and quickly became a standard part of Kotlin QA’s workflow.
Looking ahead
Following the success of this initiative, the Kotlin team is exploring further expansion of static analysis with Qodana, including:
- Deeper CI integration and infrastructure automation.
- Performance QA support.
- Continued evolution of their Exploratory QA model.
Kotlin uses Qodana to analyze complex, modular systems. Your team can also use Qodana for code quality and as a core pillar of your QA strategy.
Want to integrate Qodana into your team’s QA workflow? Learn more about how Qodana works or dive into another Qodana case study with Moovit.