Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Test Management in Jira 101 – Test-first approach in agile testing

For years, software development companies have relied on traditional testing approaches where the entire testing approach was divided into different phases and progression to the next phase occurred only when the previous phase was completed. It followed a top-down approach and as a result new version was released only when all the defects were rectified or resolved. It was a time-consuming process where the product delivery speed was compromised. As companies started adopting the Agile and DevOps methodologies to keep up with the speed and quality and meet the growing customer expectations, Agile testing became a critical part of the software development lifecycle. Agile testing works under the philosophy of continuous testing where testing is integrated directly into the development process so that any bugs or defects are detected early at any point of the development process. In the agile testing process, different teams collaborate and work together unlike the traditional method where teams usually work in silos.

Image Traditional Testing Method

Introduction to test-first approach

As the name suggests, in test-first you write automated unit tests before the actual code. So, for every chunk of functionality in production code, you first write a small, focused test that specifies and validates what the code will do.

Image Test-first Approach

The Test-First Approach (TDD)

The Test-First Approach came to known as Test-First Development or TDD. It is a built-in quality method used in Extreme Programming methodology where developers write the unit tests before writing the production code. So, instead of the conventional practice of writing tests, you start your work with a unit test. This is usually a five-step red/green/refactor process, where red indicates a failed test and green is a passing one. The cycle goes like this:

  1. TEST: Write a test
  2. TEST: Run the test and show that it fails (red)
  3. CODE: Write the smallest amount of production code possible that meets the needs of the test
  4. TEST: Run the test until it passes (green)
  5. MAINTAIN: Refactor

The most significant advantage of this approach is it allows developers to know first-hand where the defects are before they have even written the code or went on with the production. It gives developers a deep insight to think and proceed to fix the defects on time instead of waiting for days for a QA person to come in and do testing and give feedback. This is a huge advantage as errors can be fixed at the very beginning of project development.

TDD allows developers to think about the testability of their codes at a much early phase in the development cycle. And when the codes are more testable, it makes it easier to automate the codes, making deployment super easy.

Introducing Behavior Driven Development (BDD)

Although TDD became immensely popular among businesses and developers, it was seen that TDD doesn’t give the much-needed test visibility and coverage. And hence, a new variant of TDD was born. This was known as behavior-driven development or BDD. As the name suggests, BDD focuses on the behavior of the system instead of its technical details. The most significant advantage of BDD is it allows businesses to push new features quickly with better quality, meeting customer expectations.

BDD is written in a more verbose humanized language. A typical BDD uses three syntaxes: Given, When, Then. Here is a simple example.

Scenario: Creating a Gmail Account

GIVEN Jon is on Gmail Registration Page

WHEN he enters all required registration fields

THEN a Gmail account is created

On a closer look you will realize that GIVEN describes the context, WHEN describes the action, and THEN described the noun.

Implementing test-first BDD

Write scenarios

To achieve success with test-first BDD, it is immensely important to structure and define scenarios. With a structured BDD, it is really just still TDD. You also should remember that writing the most complete and successful scenarios happen when there is better collaboration between teams. So, the obvious shift from TDD to BDD is the ability to write clear scenarios as shown below.

Image Test Management in Jira 101 - Part 2

Choosing the framework

There are numerous frameworks available for BDD. However, the ones that accomplish results are the frameworks that have the ability to interact with your desired process. And second, the language it is built upon. For example, manual testers find it easy to work with frameworks build with Cucumber, however, more experienced developers prefer Java, .NET, etc.

Choose the right tool

Since BDD files reside in version control system, you need to choose the right version control system for the developers. SVN, GIT, Bitbucket are some of the commonly used version control systems in BDD. Version control systems are super important as they allow better collaboration between developers. Along with the version control system, you also need to choose a holistic test management tool that can integrate with the version control system. You can achieve real business benefits of BDD by integrating with a test management tool with version control system.

Want to know more how BDD works in Jira with test management app?

Read More

Automate the scenarios through a test automation tool

Once the user stories are written in plain English, it needs to be converted into Java codes. So, choose a test management tool that can integrate the automation tool with the version control system. For example, automation tool like QMetry Automation Studio helps to convert the user story directly to Java codes.

Benefits of test-first

1. Customer centricity

The modern business environment operates with a customer-first mindset, and the BDD approach fits well with this ideology. It is more user-centered, so it is easy to meet the growing customer expectations of the technology they use. Test-first approach like BDD emphasizes on converting the user stories into test automatable scripts with simple syntax like “Given, Then and When”

2. The modular design of software

One of the many advantages of test-first is that developers focus on a single feature and do not move to the next unit until the previous one passes the test. The code quality is improved. And when the unit code becomes testable, it contributes positively to better solution architecture.

3. Increased ROI

With the implementation of test-first, the code maintenance cost is lowered because the codes are clean and have lesser bugs. The result is — lower cost for building a custom marketplace solution.

4. Promotes Shift Left

Test-first approach works in line with Shift Left testing principle. Shift left testing focuses on testing early and often to avoid any surprise bugs in the later stage of product development mostly in production where they are expensive to fix.

Test-first also works on the same principle where testing is given importance right from the beginning of the project.

Parting Note: One thing that makes the test-first approach a success is its alignment with what testing teams want to achieve through agile testing and integrating continuous testing with CI/CD pipeline — achieving high quality product at minimal time. There is not an iota of doubt that in the modern world, organizations that embrace agile, DevOps, and test first strategies like BDD and TDD will have a competitive advantage over others. Test management app supporting test-first concept like BDD enables your agile team to achieve continuous testing in it’s true sense.

 

Watch this webinar to know BDD in QTM4J!

Watch Now

1 comment

Comment

Log in or Sign up to comment
Tam _DevSamurai_
Marketplace Partner
Marketplace Partners provide apps and integrations available on the Atlassian Marketplace that extend the power of Atlassian products.
January 19, 2022

Life is short for complex tools, our app choose another approach, it allows testers and developers to write the test script quickly and export as Test Cases, Test Step, Test Plan. It is free for everyone to use, new features are under heavy development, all feedback are welcome to make it better

Take a look https://marketplace.atlassian.com/apps/1226257/agile-test-management-for-jira

TAGS
AUG Leaders

Atlassian Community Events