Blog
navigate_next
Java
Bridging the Gap with Unlogged: How Developers and QA Engineers Can Speak the Same Language
Kyle Lemons
October 24, 2023

There have been many times as a Quality Assurance (QA) engineer, I've found myself in challenging situations, attempting to convey to developers the bugs I spotted in the latest code update. However, for one reason or another, they often struggled to replicate the very issues I was pointing out. Hours turned into days, and our emails multiplied, as we went back and forth.

I remember one particular experience when a code update came in, and I immediately spotted a regression bug. I immediately reached out to the developer, yet, their response was, "It works on my machine!" The emails that followed were exhaustive and rather exasperating.

This dance between developers and QA teams isn't uncommon. We see a bug; they can't replicate it. And in the midst of this, the real issue—addressing the bug and ensuring software quality—takes a backseat.

This is where I wish I had used Unlogged.

Unlogged: The Universal Language for Developers and QAs

Unlogged is like a translator, allowing QA engineers and developers to speak the same language. It does this by recording method inputs and return values of Java methods, enabling developers to replay them. This not only points out potential regressions but also gives developers tangible evidence of method behaviors.

If our team had been using Unlogged from the start I could have simply given the developer recorded method inputs and return values that led to the issue - allowing the developer to replace the sequence using Unlogged and quickly identify the bug.

Benefits of Unlogged:

  1. Immediate Feedback: Unlogged's automatic capture of input and return values provides instant alerts about potential breaking changes. This translates to quicker bug fixes and a faster time to market.
  2. Remote and Local Testing: The ability to record methods on a remote machine and replay them locally is an invaluable time-saver.
  3. In-the-Moment Debugging: No more hours spent deep in debugging with tools like Swagger or Postman. With Unlogged, you can directly call Java methods and debug where it truly matters.
  4. Convenient Mocking: Unlogged eliminates the need to keep all microservices running, letting you mock API calls, DB interactions, and other operations with the recorded data. Plus, you can define mocks as you code, even without any recording.

Getting Started with Unlogged

  1. Installing the Plugin:
  • Open IntelliJ IDEA.
  • Navigate to Preferences → Plugins → Marketplace.
  • Search for and install "Unlogged."

2. Adding the Unlogged Dependency:

 
<dependency>
  <artifactId>unlogged-sdk</artifactId>
  <groupId>video.bug</groupId>
  <version>0.1.14</version>
</dependency>

After adding, sync your project to download the Unlogged dependency from the maven repository.

3. Using the @Unlogged Annotation:

  • Add the @Unlogged annotation above your main method to start recording.

Example:

 
@Unlogged
   public static void main(String[] args) {
        SpringApplication.run(JwtDemoApplication.class, args);
    }

4. Clean, and Debug!:

  • Use <span  class="pink" >mvn clean</span> for Maven or the equivalent for Gradle.
  • Start your application in debug mode to call any Java function directly.
Note: Please avoid deploying Unlogged in production. It may introduce performance issues, but rest assured, a production-ready version is on the horizon.

In conclusion, in the realm of software development, tools like Unlogged ensure both developers and QAs move in sync. With tangible evidence and efficient communication, we can ensure software releases are both speedy and of high quality. If you're looking to eliminate the tedious back-and-forth and bridge the gap between developers and QAs, Unlogged might just be your answer.

Key Takeaways:

  • The challenge of communication between QA engineers and developers, especially when bugs are hard to replicate.
  • The value of tangible evidence in addressing regression issues.
  • The game-changing features of Unlogged enable effective communication and efficient bug detection.
  • Step-by-step guide to setting up and getting started with Unlogged.

Kyle is a top-rated QA Engineer, Technical Writer, and Instructional Designer with an ISTQB certification. With over three years of QA experience, he excels in creating comprehensive test cases and automation solutions using Selenium. As a Technical Writer, he communicates complex technical concepts clearly, producing user guides, API references, and troubleshooting manuals.

Kyle Lemons
October 24, 2023
Use Unlogged to
mock instantly
record and replay methods
mock instantly
Install Plugin