When it comes to knowledge, skills and abilities, technical competencies -- things like scripting and security...
-- typically top the list for software testers. But recent conversations with software test experts tell another story. QA jobs often go to the candidate with the best debating talents.
Acquiring new technical skills still matters. But getting ahead is all about the ability to think, reason and communicate effectively. These skills build credibility and gain the respect of other professionals involved in software development.
In this edition of Quality Time, I discuss some key software testing skills that will help QA pros move ahead.
Scripting knowledge: A do-or-die skill?
In the last couple of years, software testers have seen the writing on the wall: as test operations grow increasingly automated, scripting skills are essential. Software testers who aren't able to write at least a little bit of code will have a tough time holding on to QA jobs—or so the thinking goes.
But recently I have heard some push back on that. "Testers should focus on testing, not on writing code to test something," said Premal Dave, business development manager for the software consultancy TestingWhiz, in Paramus NJ.
James Bach, founder of software test consultancy Satisfice Inc., in Eastsound WA, said it's useful for testers to gain knowledge about programming, particularly because people with the ability to code typically have good reasoning skills. "But I don't think all testers should be programmers," he said. "It's a hard skill to get good at."
Bach recommended that software testers learn to program only if they want to. "But it you are not interested, there are other things that are important, " he said.
Software testing skill: Application architecture knowledge
One important thing is knowledge of how the application under test fits together from a big picture perspective, Dave said. "How is it designed from an architectural and integration standpoint; what is the business flow?" These are abilities that software testers should focus their efforts on, he said. A key issue is knowing how a change made to one part of the application impacts other parts of the application, Bach said. "You're modeling things in terms of cause and effect."
Ability to analyze and communicate
Another crucial software testing skill is the ability to read and interpret written documents with a critical eye, asking questions in order to better understand them. "There is a difference between having a question and asking a question," said Bach, who is expected to teach a tutorial called "Critical Thinking for Software Testers," at the at STAREAST 2014 conference in Orlando Florida, in May. "Critical thinking is the kind of thinking that specifically looks for problems and mistakes," he said. This skill saves testers from making dangerous assumptions, which can sometimes lead to disaster, he noted.
There is a difference between having a question and asking a question.
James Bach, Satisfice, Inc.
Figuring out what a customer wants requires testers and others on the development team to analyze what's being said and extrapolate from those conversations what is really needed. "You have to be able to communicate, analyze what you hear, and think about it for a while," said Dakshesh Shah, QA manager at TestingWhiz.
The idea that strong communication skills are crucial to delivering quality software has been around forever. But it's important to talk about because these skills are notoriously difficult to master. How do software testers learn effective communication? "Observe managers who are good at it," Shah said. "Look at them—watch them carefully—when you get the opportunity." He also recommended that testers take part in customer support calls, effectively gaining a front row seat to the customer's experience.
Social skills for software testers
When testers make their case to developers, business stakeholders and others engaged in software projects, they shouldn't expect their audience to accept what they say at face value. "You need to argue cogently for your point of view," Bach said. "Testers bring bad news and [as a result] they are held to a higher level of reasoning."
Arguing cogently requires testers have a high degree of self confidence and the ability to share their thinking, Bach said. "You can't just say 'this is a bug;' you have to say something more about it and explain your underlying reasoning."
Also key for software testers is developing strategies to deal with the difficult people they are likely to encounter in day-to-day interactions. "You need to control yourself, relax, have perspective, and take the long view," Bach said. "It is difficult. Patience helps."
Software testing ability: Open to change and challenges
TestingWhiz's Shah said he has discovered that "the mindset to accommodate change," is among the most important skills a software tester can have. "You have to be able to accept change at any moment, and direct your efforts in the proper direction."
Bach said he looks for software testers who have a high tolerance for doing things that are difficult. "You need the ability to love the confusion that comes with learning complicated things," he said. "It's about hanging in there instead of giving up when something makes you feel stupid for a few minutes."
Those are some of the top areas of knowledge, skills and abilities I talked about with these software testing experts. What are yours? Let us know.
Why being a better tester doesn't have anything to do with code