“What is expected of software developers vs QA testers during development?”
Michael Oubre – Agile evangelist, practitioner and trainer, and Marc Hornbeek – DevOps evangelist and thought leader, share their views on popular questions regarding Agile and DevOps from their respective viewpoints.
Michael: The thing we do in agile is to train the team to understand that they equally share the responsibility for all aspects of delivering completed, functioning code to customers, and that we deliberately try not to make any differentiation between the various skills possessed by the members of the team. As a result, we try to remove any reference to QA or PV or any other term that has the connotation of the old way of doing things – testing is done as part of the development and not a process that happens when everything is coded. Testing in an agile model is ALSO done incrementally, in-line with the development, which is what makes CI absolutely critical. Everyone on the team tests, it’s just that there are some tests, just like some coding activities, that require specialized, senior skills, so there are people who contribute to those testing activities more than others.
Marc: In best practice DevOps environments everyone on the team is responsible for quality. The specific task responsibilities for continuous testing may be allocated in different ways depending on the organization’s preferences but developers take at least equal responsibility for test results as QA team members. Whether the developer or tester is responsible to design and create tests for a code change is a team decision. For example a developer may take responsibility for white box tests because of familiarity with the code but a tester may be the one that creates functional test cases, and together the tester and developer may review all test cases and work together to ensure all tests and code changes reach a successful result within the development “pre-flight” environment prior to integration into the DevOps pipeline. In any case, no matter the allocation of test tasks, the code changes are not deemed ready for integration until the tests are ready and working with the code changes. Both the code and the tests for the code are submitted together into the DevOps integration branch. If this is not done there is risk that the code changes will not pass CI testing after integration, resulting in rollbacks and process waste.
Bottom line is, both Agile and DevOps do not prescribe a specific division of test task responsibilities for developers and testers. Both are equally responsible to ensure tests are conducted and successful results are achieved.
At Spirent we think Agile and DevOps work together to help teams develop and deliver quality software efficiently. More information about Spirent’s views can be found at the following links :
Does Agile Need continuous testing?
Spirent.com/solutions/devops
What do you think of these views and do you have other views?
Michael Oubre
is an expert in Agile practice, transformation and management and has spent more than 10 years as a practitioner, coach, trainer and evangelist. His long and eventful tech career has given him practical experience and insight into every aspect of building, deploying, supporting and managing software, systems and networks. https://www.linkedin.com/in/michaeloubre