NEW YORK — The rise of agile has dramatically changed not only the speed with which organizations are delivering software, but also the roles of the people who are developing that software. There used to be a distinct line between a developer and tester, but with agile, that line has blurred. In agile, developers are no longer responsible for just delivering code, they are also responsible for things like quality and testing. So, what does the role of a tester mean in an agile world? That is a question that Mike McLaughlin, agile coach at VersionOne, tried to answer at the company’s Agilepalooza event in New York City.
“The first thing I tell testers is: Your role has never been more important than it is now in this new agile word,” he said.
Stepping into the agile world can be frightening for testers. To survive in agile, a professional tester must embrace change, collaborate, explore, empathize, have drive, have the right attitude, and see the big picture, according to McLaughlin.
There is a fear of being made functionally redundant, he said, because everyone is a tester on an agile team and everyone on the team can potentially test. While that may be true, that doesn’t devalue the role of testers.
(Related: Agile is a team game)
“Their skills are unique and critical to the success of an agile team or project,” said McLaughlin. “We recognize change is hard, but none of these fears testers have are really justified.”
Developers are going to approach testing differently, he explained, because they are optimistic about the code they wrote and they assume changes are correct. A professional tester approaches problems and products with an attitude that it is broken; it is their job to find the bugs and find the defects.
“You are still doing a lot of the same things, but you are doing it more collaboratively, and that is a big shift in the way that we’ve been working before,” said McLaughlin.
If anything, a tester’s role is more important in an agile environment, according to Bob Payne, vice president of enterprise agile consulting at LitheSpeed, who talked about a pragmatic guide to agile engineering at Agilepalooza. According to him, testers are a huge part of putting quality first.
“Rather than testing being a dumping ground at the end of the cycle, we pull them forward into conversation with product owners and development folks to knock down requirements defects and virtually eliminate the technical defects,” he said.
Techniques of the trade
McLaughin and Payne both agreed on other methods testers should follow in order to pull quality forward: Test-Driven Development (TDD) and pair testing (or pair work).
TDD is important because it helps change the way developers and testers think about delivering code and designing code, said Payne. It starts with thinking about code requirements, then writing unit tests to validate the code and then actually writing the code.
“This is something that is very powerful and not used as widely as I think it should be because it is a tough habit to get into,” he said. “The people that do it are sometimes referred to as test-infected because they no longer know how to or want to code without doing it test driven.”
Pair testing is the idea of active collaboration and literally sitting down at the same keyboard as the tester is writing the test or the developer is writing the code, said McLaughlin.
“It is putting a tester and developer together and having them do things like TDD, but they are really learning from one another,” he said.
Another technique testers should be familiar with in an agile testing world is automation. “Either jump on the automation bandwagon or suffer the wrath of the waterfall,” McLaughlin said. Automation tests can be set up for functional testing, acceptance testing, user story testing, integration testing, system testing and performance testing.
Not everything can be automated though, so testers also need to take advantage of exploratory testing in an agile world.
“There are teams who will also do some level of exploratory testing, and I think that is important,” said Payne. “It frees up the grunt work of regression and takes the testers’ talents and lets them really try to break it in odd ways that you might not have anticipated when they were just writing the script.”
With all that in mind, the main thing testers should remember in agile is everyone is equal, according to McLaughlin.
“There used to be this idea of the rock-star developer being the most important person on the team, that’s no longer true,” he said. “Everyone is important on the team.”