How to ensure a successful test-driven environment
By Sanjay Zalavadia
In order to ensure a higher quality product is released in the end, many teams have turned to test-driven development. Under this scenario, quality assurance metrics professionals first create various QA tests, and then software engineers code based on these tests, typically while using a robust enterprise test management tool.
It’s easy to see the benefits of such an approach, as it ensures that QA metrics are kept front and center throughout the entire process. However, it can also introduce problems even for teams following agile development best practices and using free agile test management tools. In particular, test-driven development requires quality assurance metrics professionals to have a very clear understanding of what the final product is supposed to do and all of the steps they need to take to get there.
In order to make sure QA teams and software engineers are always on the same page, it can be extremely helpful to follow DevOps principles. A portmanteau of Development and Operations, DevOps describes a paradigm under which all teams always have a clear understanding of what everyone else is up to throughout the design and delivery process.
Many ideas and workflows can fall under the DevOps umbrella, but these three are absolutely critical best practices within a test-driven environment:
1) Embrace of automation
In any DevOps scenario, a heavy load is placed on the shoulders of everyone involved. Individuals don’t have the luxury to only focus on one or a small number of tasks, as they now have to be involved in all parts of the software development process. There is simply no way one person or even a small number of people can manually develop tests, code and run these tests.
Considering how critical the initial tests are in a test-driven environment, it is usually advisable for the initial tests to be created by hand. But, once the tests are established, there’s no need for the subsequent steps to also be so labor intensive. Not all components need to be coded by hand, and tests can be run automatically. Relying on automation, especially in the later stages, is crucial for ensuring that work is completed quickly without any sacrifices from the DevOps ideals.
2) Placement of end users front and center
The name DevOps seemingly puts the focus on Dev and Ops teams, but these are far from the only ones that should, and do, fall under this paradigm’s umbrella. DevOps solutions are all about fostering a culture of collaboration and understanding, including with the ultimate end users. If the people who will actually be using the final piece of software are not involved in its development, then it’s entirely possible that the final product falls flat of expectations even if internal teams are well aligned.
For the quality assurance metrics professionals in charge of creating the initial tests, this means first gaining an understanding of what end users really need from the final software, and what issues will cause them to abandon it. Armed with this knowledge, they can then develop the initial tests to ensure that software engineers are meeting all of the wants and needs on the end-user side.
3) Adoption of enterprise test management tool suitable for the task
In a test-driven development environment, it stands to reason that tests play a large role in the entire process. As such, these all-important tests should not be entrusted to a lackluster test case tool. Only a robust enterprise test management tool will ensure that everyone has the information they need at all stages of the software development lifecycle.
In many scenarios, a test-driven development environment is an ideal way to ensure the final product is of the highest caliber. Still, a test-driven environment can be difficult for those new to the concept to navigate. By adopting DevOps and a number of associated key best practices, however, these teams can get the most out of a test-driven development environment.
By adopting DevOps and a number of associated key best practices, teams can get the most out of a test-driven development environment.
As the VP of Client Service for Zephyr, Sanjay brings over 15 years of leadership experience in IT and Technical Support Services. Throughout his career, Sanjay has successfully established and grown premier IT and Support Services teams across multiple geographies for both large and small companies. Most recently, he was Associate Vice President at Patni Computers (NYSE: PTI) responsible for the Telecoms IT Managed Services Practice where he established IT Operations teams supporting Virgin Mobile, ESPN Mobile, Disney Mobile and Carphone Warehouse. Prior to this Sanjay was responsible for Global Technical Support at Bay Networks, a leading routing and switching vendor, which was acquired by Nortel. Sanjay has also held management positions in Support Service organizations at start-up Silicon Valley Networks, a vendor of Test Management software, and SynOptics. www.getzephyr.com