JetBrains Aqua: Preview is IDE for test automation but not yet comprehensive

devops

JetBrains is developing an IDE for test automation, now in preview as Aqua.

Although most IDEs already support at least unit tests, the company said in its introductory post last month that creating a separate tool for automated test development “allows us to cover the needs of multi-role software development teams.” The preview though has limited language support, covering only Java, Kotlin, Python, JavaScript, TypeScript and SQL.

Starting a new Aqua project

Software testing is a critical part of modern DevOps since it is only possible to have confidence in automated processes when tests give some assurance that everything works correctly. Aqua covers not only unit tests, but the perhaps more challenging area of UI and web API tests. Supported test frameworks include JUnit, TestNG (another Java framework), Pytest, Jest and Mocha. For UI automation, developers can use JUnit or TestNG with Selenium, an open source browser automation project, or Selenide, a test automation framework based on the Selenium WebDriver. The Selenium project itself does not include a test framework.

A key part of Aqua is the embedded web inspector, for viewing web applications, identifying page elements, and adding them to automated tests. This can be a tricky process, considering that web pages are structured for display not for data capture. There is also an HTTP client for sending and receiving requests. Docker support includes the ability to manage and run Docker containers.

On the database side, Aqua can run SQL scripts and perform data assertions, with support for Oracle, SQL Server, PostgreSQL, MySQL and others. For example, a test might call a web API and then verify what has been written to a database as a result.

Test management systems (TMS) are for keeping track of test results, raising and monitoring issues. Aqua supports the Allure Framework for reporting issues, and either an external TMS such as TestRail, or what JetBrains describes as a “local TMS”, based on a collection of test data files stored in the project itself.

JetBrains calls the effort to create an IDE for test automation “a significant undertaking” and it is true that providing a tool for developing and running tests across the whole span of languages and application types is challenging.

The preview is not complete and it is also not clear what the scope of the IDE will be when it reaches general availability. A common request is for broader language support.

“Are you looking at C# and .NET support, mostly for Blazor apps but also some XAML apps? Dart and Flutter apps would be great too,” said one developer. Another request is for mobile app support via Appium, and for the Playwright web testing framework and the Cypress JavaScript testing framework. If JetBrains can really wrap all these testing requirements into on IDE Aqua could prove useful, while otherwise it risks covering too small a niche.