Loading...

Key Components to Running Test-Driven Development - Brief Primer

Amandeep Midha

ex-Data Architect at Traive Brasil

Loading...

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."

Be notified about next articles from Amandeep Midha

Amandeep Midha

ex-Data Architect at Traive Brasil


Connect and Learn with the Best Eng Leaders

We will send you a weekly newsletter with new mentors, circles, peer groups, content, webinars,bounties and free events.


Product

HomeCircles1-on-1 MentorshipBountiesBecome a mentor

© 2024 Plato. All rights reserved

LoginSign up