Sergey Nivens - Fotolia

News Stay informed about the latest enterprise technology news and product updates.

Software tester roles must embrace code focus

IT gives testers license to voice contrarian opinions about software. But, as pressure to deploy intensifies, they might not be able to ignore code responsibilities anymore.

ORLANDO, Fla. -- Siloed quality-assurance roles often stand opposed to Agile and DevOps methodologies, where speed is king. Most organizations don't turn a blind eye to QA, but many see it as their principal IT bottleneck.

So, what does that mean for software tester roles, as continuous delivery, test automation and artificial intelligence capably handle more test cases over time? That question was on the minds of many attendees here at the STAREAST conference.

For many QA managers, it's not as simple as embracing one side or the other. A testing team requires balance, said Janna Loeffler, a senior manager of experience quality standards at Carnival Corp., based in Doral, Fla.

Janna Loeffler, senior manager of experience quality standards at CarnivalJanna Loeffler

Loeffler has worked across a variety of industries over the past 15 years, in engineering and testing roles that implemented test-driven development and Agile, as well as other roles that followed a more traditional Waterfall model. Her 12-member QA team at Carnival reflects her diverse experience: She classifies them as test automators, manual testers and software development engineers in test (SDETs). Test automators write scripts to automate test cases, while SDETs maintain the tooling that both developers and testers will use.

However, she makes a point to retain manual testers. These workers often have nontechnical experience -- Loeffler said she has hired testers with drama and theater backgrounds -- but they often best understand software from different user perspectives.

"It's truly [through] that diverse perspective that you get all these different personas of users and testers giving you different feedback and results," she said. "That just really vastly increases your product coverage."

Hey, testers: Let's get technical

The allure of continuous testing, however, will push many organizations to automate many of their test cases and hand off some testing responsibilities to developers, a methodology called shift left.

A Gartner report, "DevOps and Cloud Speed Are Driving the End of QA as We Know It," makes the case for a team-centric approach to quality, one in which teams remove separation between dev and test via behavior- or test-driven development and pairing. By involving developers in the QA process, they can become more responsible for code quality.

Jeffery Payne, CEO of CoverosJeffery Payne

These cross-functional teams will alter the way traditional QA is done. As a result, many executives and managers believe testers must achieve code literacy, the ability to read and comprehend code, said Jeffery Payne, CEO at Coveros, a software consultancy that acquired TechWell, which hosts STAREAST. This applies to dev collaboration, as well as both bug catching and test scripting.

"For me, a QA person needs to learn how to read code, and they have to understand what the terminology means, what the syntax means, because it's going to help you be a better tester," he said.

Payne said he talked to many testers throughout the conference who plan to improve their code knowledge to better their career prospects, but he's unsure if enough will follow suit. Code literacy and knowledge of tools help testers apply more rigorous QA to applications, whether tests execute manually or automatically, he said. "I worry that we have a lot of testers who aren't up to the task of learning and growing into what they need to be," he said.

The problem, Payne said, originates at the university level, where software testing is rarely a separate education track, so some testers lack knowledge of QA fundamentals, let alone complex applications.

"Our industry hasn't really emphasized the educational aspects of understanding techniques and approaches to testing," he said. "Sometimes, I think we have erred too far on [the idea that] a tester is just a business analyst who plays with the software."

Manual skills translate to creativity, leadership

However, many others laud the expertise of manual testers. A Forrester Research report, "Shift Performance Testing Left to Streamline App Delivery," recommends testers set up test environments and data, analyze raw performance testing data, perform manual smoke tests and set key performance indicators -- tasks that they cannot presently abstract away.

The most important thing that a tester has is their mindset -- and that's not technical. It's being curious, likely to break things, thinking outside the box, thinking what could go wrong, questioning everything, challenging everything.
Dorothy GrahamSoftware testing consultant, speaker and author

"People are encouraging testers to learn how to write code and things like that, and I see a big danger here," said Dorothy Graham, a software tester, consultant and author based in the U.K. Graham has more than 40 years of experience and delivered nearly 400 conference presentations in software testing. She worries that a narrowly technical focus denigrates testers' natural abilities to perform exploratory or UI tests, and could even hurt the workforce.

"If we are pushing all testers to becoming coders, not only is that not good for everybody, but we're possibly going to lose people who are dyed-in-the-wool testers, who don't want to become coders," she said. "My objection is forcing everybody to be in one pigeonhole where they don't fit, and they don't want to be there."

Graham related a story from one attendee whose organization planned to convert all of its testers to coders. Within a few months, half of those testers jumped ship. Graham said she supports automation, but believes test automation should serve testers, not replace them.

Dorothy Graham, independent software testing consultantDorothy Graham

"I feel that things are unbalanced; the pendulum has swung too far," she said. "The most important thing that a tester has is their mindset -- and that's not technical. It's being curious, likely to break things, thinking outside the box, thinking what could go wrong, questioning everything, challenging everything."

Soft skills and adaptability are crucial for testers, Carnival's Loeffler said. She holds monthly one-on-one meetings to encourage her workers' professional development, whether that means coding expertise or not. She found that manual testers are often more well-suited for leadership roles than people who prefer to work with code, as long as they can develop the skills to communicate and manage the needs of stakeholders, which includes developers, managers and users.

"People get so focused on specialties that they forget to really be a good tester. You have to be able to wear multiple hats," she said. "Technologies change, languages change, and you have to be able to know how to change with it."

The communication gap between developers and testers, in particular, can create a chasm within IT departments, Coveros' Payne said. He said he believes code literacy can help alleviate some of those challenges, especially as developers influence so much of organizations' IT purchasing decisions. But developers and testers still must work more resolutely toward a collaborative middle ground.

"We need a lot more [collaboration] with where we're moving with Agile and DevOps, because that piece is often the Achilles heel," he said. "It's not the technology, not the tools, not the knowledge -- we [must] get people to engage and work together."

Dig Deeper on Software testing skills and career advice

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.

Aside from coding skills, what should testers learn to improve their career prospects?
I just found this article while catching up on testing related news on the internet. I should say, it offers really great perspectives on testers needing to/not needing to learn code. I wanted to share my views on this topic based on my experience.

I come from a developer background. I was a developer for 3 years and then moved into testing. I have been been in the testing field since then (close to 13 years now).  During this time, I have observed that different people are good at different things.

For example-
1. I worked in a large insurance company. I was new to insurance at that time but had a good technical background. I had to lean on other testers in the company who were not technical but had great business and domain knowledge about the product and the insurance industry. Without this background, I wound not have been able to prioritize which features are important for automation and what kind of tools needed to be built to help testers and developers.

2. I worked in a travel booking company and I was tasked to build my own Mobile testing team. My team consisted of a person who was highly technical and who could help me build an automation framework, another who had PHD in Astrophysics and had experience in building quick utilities to solve different problems and was super analytical, another who had great domain and testing knowledge but was not technical but was great at finding bugs compared to me and the other 2 people on the team, hands down. I did not care what degree they had, I only cared about what experience they had and what they brought to the table, not their degrees.

Based on the above experiences, I can clearly say-
1. There is no longer a need to have computer science degrees to prove you are a good tester/developer. Anyone can learn anything. Each one has a strength and weakness. Concentrate on the strength and the weakness of one person will be the strength of another. So, it kind of balances each other

2. We need to respect people for their experience and knowledge no matter whether they are technical or not. Being technical is only one aspect of the overall testing process and SDLC. I think it is really important to understand this.

3. Finally, I do agree that having some technical knowledge may help to test the system better and come up with more test ideas but it is not mandatory to have. Like what was discussed in the article, non-technical testers tend to be really good in managing test process, people and leading teams.

Thanks everyone for writing this article. I found it interesting and this topic is close to my heart :-)

Hi Raj,

Appreciate the feedback, advice and personal experiences. It's always great to hear how these concepts work in the real world, and all too easy to get caught up in the theoretical.

It seems like most teams definitely aim to achieve a sort of balance between the two ideas, but issues can arise when a team goes too far to one extreme or the other. Balance is so crucial. Fully manual testing will definitely clash with DevOps, but we're not at the point where you can automate/autonomize everything, and, if you could, you lose that human ingenuity. Some folks lie more in one direction than another, but it's so important to understand the value of both, and that's why I find conferences so helpful as an editor and reporter; they give me a chance to hear those differing (sometimes opposing) perspectives.

Thanks again for the feedback and kind words. Please feel free to reach out to me any time, and let us know what SearchSoftwareQuality can and should write about more often.
Sure :-)