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, […]

May 21, 2025 - 20:10
 0
Qodana Case Study: How JetBrains Kotlin QA Scaled Quality for Kotlin 2.0
Qodana Case Study: Kotlin
Qodana case study

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.
This image is for illustrative purposes only as the Kotlin profile is confidential.

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.

Liliia Abdulina, Head of QA For Kotlin Language and Ecosystem Teams

Qodana really saved us when we were rolling out Kotlin 2.0 IDE support. It helped us scale testing across large codebases and identify problems early – without overwhelming our team with manual work. The developers were genuinely impressed by the results, and the whole team values the stability and speed we’ve gained.”

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.

Try Qodana