Back to resources

Key Components to Running Test-Driven Development - Brief Primer

Dev Processes
Productivity

2 February, 2020

Amandeep Midha
Amandeep Midha

Principal IT Consultant at BEC

Amandeep Midha shares the importance of implementing a traceability matrix and CI/CD in order to achieve the results of test-driven development.

Problem

I was in a situation when we were just starting to go Agile. Test-driven development was one of the main talking points, which seemed to be the solution for everything. Even the stakeholders were in favor of bringing in test-driven development as they were sold on the prospect of it achieving two specific outcomes: improvement in the overall quality and faster release times. However, I knew from previous experience that along the way what is needed to make test-driven development achievable gets missed.

Actions taken

It began by asking 3 questions

  • Are you documenting your requirements?
  • Are you documenting test cases?
  • Are you maintaining a traceability matrix of requirements implementation? If the answer is no to any of these three questions then honestly test-driven development will bring nothing new to you. The process of knowing your requirements, documenting the corresponding test cases for those requirements, and having a reference for what you are actually testing against is extremely important. Hence, the traceability matrix. Secondly, it is imperative that the team is following a CI/CD process- Continuous Integration/Continuous Deployment. Again, if you're not, then test-driven development is not going to work for you. Why CI/CD? It is a best practice for development teams to implement. Developers are following test cases, running test code, and that test code gets checked against the system. The goal of CI is to ensure that a new change from the developer is suitable and good for use in the codebase. Now that the code is in good health it can be released and move into a stage of deployment. The goal of CD, then, is to produce releases that can be made available for another department or a customer. Thus, test-driven development is mandated and works most efficiently with a combination of a traceability matrix and CI/CD. One must be able to trace the requirements with its corresponding test cases, including the current state of the case (pass or fail), alongside the process of continuous integration and continuous deployment. This system enables anyone internally or externally to understand the level of testing activities done for that product and ensure that the overall efficiency of the product is running quickly and smoothly.

Lessons learned

  • It is important that you have a system in place for organizing your test cases- the traceability matrix. This is not a place in which you dump information. You must group test cases so that they match the corresponding requirements as well as outlining the status of the test case. Of course, most traceability metrics have more than these three parameters but you should consider these three at minimum.
  • You need to have a feedback system, a CI/CD system that keeps you informed about what is going on with testing and execution. This is in addition to the traceability matrix which allows you to see test cases and what requirements they belong to.

Discover Plato

Scale your coaching effort for your engineering and product teams
Develop yourself to become a stronger engineering / product leader


Related stories

"You don't care about quality" A story of single metric bias

3 February

This was not a high point in my career. It's a story of single metric bias, how I let one measure become a 'source of truth', failed to manage up and ended up yelling at one of the most respected engineers in my team.

Product Team
Productivity
Team Reaction
Alex Shaw

Alex Shaw

Chief Technology and Product Officer at Hive Learning

Myth Busting

10 December

Supporting principles on why being data led (not driven) helps with the story telling.

Alignment
Managing Expectations
Building A Team
Leadership
Collaboration
Productivity
Feedback
Psychological Safety
Stakeholders
Vikash Chhaganlal

Vikash Chhaganlal

Head of Engineering at Xero

How to measure Engineering Productivity?

30 November

When you grow fast, its normal to focus on Value delivery aka "Feature Releases". Too many releases too soon will inevitably lead to piling tech debts and before you know, inefficiencies creep in, performances goes down, and ultimately any new release takes too long. Sounds familiar? Then read on..

Productivity
Prioritization
Performance
Ramkumar Sundarakalatharan

Ramkumar Sundarakalatharan

VP - Engineering at ITILITE Technologies

Mindsets of High Performance team

14 October

Teams have tremendous impact on the products on they build. T.E.A.M definition - Together Everybody Achieves More is true. A collaborative and empowered team builds great product versus the good ones.

Innovation / Experiment
Mission / Vision / Charter
Building A Team
Productivity
Feedback
Motivation
Praveen Cheruvu

Praveen Cheruvu

Senior Software Engineering Manager at Anaplan

How to Successfully Rebuild Your Product

6 June

Adir Nashawi, Senior Product Manager at Hibob, shares his insight and experience from rebuilding a product to handle many feature requests and offerings.

Customers
Product
Dev Processes
Users
Prioritization
Adir Nashawi

Adir Nashawi

Senior Product Manager at Hibob