JetBrains is developing an IDE for test automation, now in preview as Aqua.
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.