STAREAST 2013 Keynote: Testing in a Test-Driven World, with Jeff Payne
There was a pretty full house for the first keynote session of the STAREAST conference, "Testing in a Test-Driven World," with Jeff Payne. Delegates who couldn't get chairs sat on the floor in the back of the room, taking notes on their laptops and in their program guides.
Facilitator Lee Copeland, from Software Quality Engineering, which sponsors STAREAST, made an introduction before the session began. He asked for first-time STAREAST delegates to stand, and it looked like nearly half the audience was here for their first conference. A good number of international delegates made the trip, too; they were the next group to be recognized by Lee. Twenty-eight countries are represented at STAREAST 2013!
The speaker for "Testing in a Test-Driven World," Jeff Payne, is CEO and founder of Coveros Inc., which builds security-critical software applications. (Fun facts: He's published more than thirty papers on software testing and has even testified before Congress on national security matters. Neat!) He looked snazzy in his maroon STAREAST alumni polo shirt.
Main point early on: Testing drives development, even before building software begins. In a test-driven world, it's crucial to find out earlier in the process if we're building what the customer wants. (An observation that seemed to resonate with much of the audience: Often, customers don't know what they want until they see it. That's why it's a good idea to show what you're building to the customer earlier on, so it gives you time to be agile and change your process.)
Jeff said that in a test-driven world, everyone in the process is responsible for getting work done satisfactorily—builders, testers, automators, everyone. So rather than pointing fingers and assigning blame if something doesn't work, it makes more sense for everyone to try to "row in the same direction." He drew a comparison to "The Good, the Bad, and the Ugly"—Clint Eastwood & Co. are all trying to find a cache of gold, but each is out just for himself and will only collaborate until he can stab one of the others in the back. That method doesn't work in the test-driven world! (This got some good laughs from the audience, especially when Jeff played the theme tune—you know, the flute and the "wah-wah-wahhhhhh.")
One particular point of friction pointed out was the relationship between developers and testers. Developers generally don't make great testers. Rationalization: Developers are creators, so they don't want to find errors and "destroy" their creations. ("How many architects do you know who are also in demolition?" Jeff asked. "Ohhhhh," said someone behind me.) That's why a theory floating around in the software world that if developers would simply test their own work, we could eliminate testers, is false. So very false. Jeff said, "I thought long and hard about how to summarize this, and the only thing I could come up with is..." and the two projector screens behind him both lit up with the single word WRONG. Later, he said something that drew more laughs: Developers need professional help. And testers are professionals who can help them!
Jeff said that in his years in the business, far and away the people who are best at working through the entire process, requirements through delivery, are the testers. This crowd of testers was enthusiastic about that assessment.
So, why do we need testers? For the critical jobs. As Jeff said, "We're not all developing Angry Birds." Most issues testers find are going to be in design and requirements, not code. You know who finds the crucial problems? Not customers—hackers! He says you have to explain the purpose of testing. Put it in terms of what the effects of not doing your job would be, and you'll be surprised at how you can sell the need for testing.
SmartBear's Lorinda Brandon tweeted a sentiment that seemed to reflect many audience members' attitude to Jeff's words: "Repressing the urge to shout 'Amen!'"