WavebreakmediaMicro - Fotolia
Software testers on Agile teams just can't win. Either testing's so important it needs a programmer to do it or testing can be done by anyone and everyone.
This, unfortunately, is the Catch 22 of many software testing jobs today. Under tremendous pressure to develop and release applications more quickly, companies are putting the squeeze on testers to make sweeping changes in their skillsets, from coding to reading a spreadsheet and even dealing directly with customers. Testers -- many of whom already feel chronically under-appreciated -- must now rise to the challenge or risk their jobs vanishing.
"The roles are blurring," acknowledged Agile testing coach, expert and author Lisa Crispin during a talk at Agile2015 in early August. "In the Agile world now the focus is on competency, not roles." And that raises serious questions, not only about the future of software testing, but how next-generation software development teams will be structured.
Should development and testing become one?
To figure out what the future of software testing holds, start with the thorniest problem of all: Where does development end and test begin, and should the two become one?
It's a high stakes question. "Many testers are really nervous about their jobs because they don't know how to code or script," said Gartner principal research analyst Nathan Wilson. And they have a reason to be nervous, he said, because automated software testing -- a key part of Agile software development -- could easily put these non-programming testers out of a job. "We've seen some companies that have eliminated software testing altogether because they've moved to Agile."
So is the answer to turn testers into junior developers? A lot of testing experts said absolutely not.
"We believe in technical awareness for testers," said Agile coach, trainer and consultant Janet Gregory, who was a co-presenter with Crispin at Agile2015. "But no, we don't think your testers also need to be able to code because you already have programmers on your team."
Software testers need to become more techie
Testers bring a unique mindset to the software development table, asserted Matthew Heusser, principal consultant of Excelon Development. "Creating software is a different technique than the critique that testers bring," he said. "Do testers need to get more techie? Yes, they do. But they don't have to become full on programmers."
They do, however, have to become something they're not today, said Henrik Andersson, co-founder of House of Test, a testing consulting firm based in Sweden. He is passionate in his defense of testers staying testers, but he was very quick to assert that many do a terrible job and give the profession a bad name. In his mind, testers becoming programmers isn't the answer.
"Many organizations value development skills and programming much higher than other skills," he said. "But I don't think the way to go forward is to focus on dev skills. That's a big mistake. I do believe most testers need to up their skills and be more aware of how development works, how code functions, and know how the business functions to make money. Yes, they need better technical competence, but that's only one out of several areas where they need to improve."
Expose testers to all facets of the process
It's a tricky balance to find, Crispin said, because the team needs to foster a "testing mindset" but at the same time she regularly has testers involved in customer service, for example, to make sure everyone has a broad horizon.
Exposure to other facets of the process is key, and so is collaboration. "You need to watch how everyone does their job," Gregory explained. "The goal is a shared understanding and a common language. Your team selects a testing framework together and the domain specific language and then you're going to have test automation knowing what tests to specify. This is a big investment and it takes time to experiment with it all, but it's an investment worth making."
Automation becoming the norm for software security testing
Pair up, but be smart about it, Andersson said. "Testers need to leave coding automation to developers. It's the fastest way for developers to get feedback, and if we have testers doing autotests all day long it's a waste of time. Instead let's have testers pair up with developers and help them (the developers) learn how to test. What can a good tester bring to the table? A lot."
There's pairing up, and then there's really pairing up, as mob programming teams do. In mob programming, teams of six to eight developers gather in one room and code together like crazy. But the philosophy can be used for testing (some call it mob testing) or as a way to put testers and developers in the same room to figure out how to make things work.
Pairing development and testing is powerful
"It's really the most powerful thing to have dev and test pairing and both work collaboratively on the user story from the beginning," Heusser said. "There's no hand off, no waiting. They can 'mob' on the entire story development and test all the way through."
That is exactly what Maaret Pyhäjärvi, software specialist and testing consultant with Altom Consulting in Finland, tried recently with her team. She's been involved with mob programming for the past four years, but only recently brought testers in to the process.
"We decided to try mobbing rather than explaining the common experience," she said. Teams can communicate well but still hang on to "silent information" -- everything from a keyboard shortcut to a problem-solving strategy -- that everyone would benefit from. Mobbing pushes that information in to the open. "Mob really brings out the best in everyone, instead of just in individuals. Good ideas come together."
Focus on being the best tester possible
It's also a good idea to focus on being the best tester possible, trite as that might sound, Crispin said. "It's important to remember what testers do well that no one else does. Bring your excellent testing skills with you. Get good at penetration testing -- that's very important -- and remember to make testing a team problem."
And it's also helpful to remember why you got in to testing in the first place, suggested Ernest Mueller, a developer and blogger for The Agile Admin. "If you got into QA because you really were interested in development, go do that. But if you're passionate about the testing process, that's where your focus should be. Situations like the one we're in today, with all the pressure on manual testers, are really going to skim the cream off the top."
Testers need scripting skills
Software testers: Diversify your skills