/drill4j

Tool to identify testing gaps and reduce time spent on regression testing. Java/JVM, .NET, JavaScript in WEB

Apache License 2.0Apache-2.0

Drill4J

License Visit the website at drill4j.github.io Telegram Chat GitHub contributors Lines of code YouTube Channel Views

Drill4J is an open-source tool* to identify testing gaps and reduce time spent on regression testing.

Drill4J provides a straight path to incorporating Test Gap Analysis and Test Impact Analysis into SDLC.

  • It integrates with all parts of system under test, including backend and frontend services;
  • It tracks all types of tests, including automated and manual;
  • It detects changes in application code;
  • It tracks code execution.

Based on that Drill4J:

  • shows code not touched by any tests. Both in percentage and down to exact place in code.
  • detects risks - modified or new code which needs to be tested;
  • recommends minimal and sufficient set of tests;
  • tracks if tests really covered aforementioned risks;
  • provides comprehensive metrics which can be easily integrated to automated release pipeline with straightforward Quality Gate API.

All the above allows to speed up testing and development cycle, eliminate guesswork and back tests results with hard data.

Know more

  1. Try Drill4J in action with our demo project - the examplary "RealWorld" application integration featuring:

    • Coverage, Risks and Test Recommendations metrics for Java backend and web frontend (at the same time)
    • E2E automated UI tests integration (Selenium)
    • Manual tests integration (requires Browser Extension installation)
  2. See our conference talk

  3. Checkout our website drill4j.github.io

Main Components Overview

  • Core

    • Admin Backend - central data aggregation point. Accepts data from Agents to compute Metrics (Coverage, Risks, Test Recommendations)
    • Admin UI Panel - web UI to view and manage data provided by Admin Backend
  • Agents (for specific platforms)

    • Java Agent - collects data from Application Under Test. Supports Java and other JVM languages.
    • .NET agent - set of components to enable integration with .NET applications (see the installation docs)
    • JavaScript Agent - set of components (Agent, Parser, Chrome DevTools proxy) to collect data from JavaScript executed in web browsers. Supports only Google Chrome and Chromium-based browsers at the moment. Works with Chrome launched locally, remotely and in containerized environments (i.e. via Selenoid).
  • Tests (for specific frameworks/tools)

    • Java Auto Test Agent - extracts metadata from Java/JVM-based tests. Supports plethora of popular test frameworks (JUnit, JMeter, TestNG) and tools (Selenium, Selenoid)
    • Browser Extension - allows to collect metrics for Manual tests
    • Drill4J is somewhat test-platform-agnostic - while we have tools and example integrations for other platforms (e.g. Postman, Cypress), it can be integrated (with some efforts) in almost any testing solution/setup

How it works (briefly, very simplified version)

! This explanation ! employs Selenium-based tests and HTTP-transport for the example purpose only. Drill4J is not limited to just Java/ just automated tests / just HTTP. It supports metric collection for almost any type of testing setup.

Imagine a basic picture of your average Selenium tests (simplified for the explanation purposes)

Automated Testing Setup with Selenium-based tests

And now, this is how it looks with Drill4J installed and configured.

Drill4J - Automated Testing with Selenium-based tests

You can see 3 key integration points:

  1. The target application. The Drill4J Java Agent is added to the target app to enable metrics collection.

  2. The Drill4J Autotesting Agent - it relays tests metadata to Drill4J Backend Service, integrates with various testing frameworks and configures Selenium to add headers to the HTTP requests

  3. The Drill4J Backend processes data and provides results via API.

The manual setup does not look much different: instead of Autotesting Agent, there is a Drill4J Browser Extension, that one have to use, to capture the testing metrics.

Drill4J - Manual Testing With The Browser Extension

Community / Support

Telegram chat
Youtube channel

License

*License: Drill4J is open-source and licensed under Apache 2.0 .