Software Testing

We’re all Testers Now

By Test Guild
  • Share:
Join the Guild for FREE

As I was preparing a presentation on Top Trends for 2016 for the OreDev conference in Sweden I started to remember how much the software industry has changed in the last 15 years. I remember the days when QA testers were treated almost as second-class citizens and developers ruled the software world. But as it recently occurred to me: we're all testers now.

Shift-Left

Much of this is driven by the shift-left strategy of testing as early as possible in the development process. This helps your teams focus on quality from day one of your project, rather than waiting for defects to be uncovered late in the software development lifecycle.

With more and more companies making the shift left in their development process, testing and automation are no longer just QA activities—which means that the roles of developers and testers are beginning to blur. Change is challenging, but there are some things your team can do to prepare for this shift that will make for a much smoother transition.

Five Steps for Testing Automation

These five steps have greatly helped the teams I've worked with:

  • Make developers responsible for testing
  • Code review quality checks
  • Teach testers to code
  • Use the same tools
  • Start with testability in mind

WereAllTesters

1.Make developers responsible for testing

With the current trends in software development practices, as well as the shift in focus toward customer-driven development models, test automation is more important than ever. Agile and DevOps demand more automation, and practices like continuous integration and delivery require automated tests that can be run quickly and reliably.

I would go so far to say that one couldn't be successful in any of these practices without some degree of test automation in place. In my experience, teams often have more developers than testers, in which case the developers need to take responsibility for at least some of the team's test automation efforts.


If testers are the only ones responsible for creating an automation framework and writing tests, it's going to slow down your development process. Distributing testing to developers helps expedite your efforts.One way to induce your developers to start creating tests—bridging the gap between developers and less technical testers—is to use behavior-driven development practices that help split the testing into layers.


Stories can be created using an agreed-upon, customer-focused vocabulary with which product owners and testers can create test scenarios using an English-like syntax. Developers can then implement the scenarios in code to automate them.

Not only will this help create more automated tests, but it will also assist the team with collaboration.

Also The teams I work with cannot close their user stories until their entire automation tests pass and each new story has an automated test associated with it. Making test automation a part of your definition of done (DOD) will help emphasize the important of testing as well as make everyone on the team responsible for creating code that is automatable.

I would also recommend that if a developer makes changes to the application — say they changes a field name in a login screen–then they are also responsible for updating the field id in your automation frameworks LoginPage page object.

2.Code review quality checks

What I've seen happen at large enterprises is that there's typically a test automation lead outside of the sprint teams involved in all the test automation code reviews. This individual helps guide the teams with best practices for automation and testing.

Developers on individual sprint teams submit their tests for code review. The key reviewer, a tester, can then make sure that the checks are correct and that there are no other scenarios the developers might have missed that should also be tested.

It's rare to have testers who also possess the skills to create reusable, maintainable code, so I recommend that your developers build out your automation framework rather than your testers. Testers should be focused on finding bugs, not spending all their time creating a framework when you have software developers who are more adept at programming.

With your developers now contributing to your testing efforts, your testers will have more time to define good checks for the developers' scripts and to focus on exploratory, security, and performance testing.

3.Teach testers to code

While developers need to take on some testing responsibilities, testers also need to do some coding. In order to be effective at code reviews and as part of a sprint team, testers need to learn how to code.

I'm not naive enough to recommend that everyone on a sprint team be able to fill each role on the team completely, but testers need to be technically proficient enough to be able to read and modify code at some level. For example, they should be able to modify an automated test or refactor some simple methods.

4.Use the same tools

If you're a tester, one of the issues you might have encountered in the past is the inability to create automated tests using the same tools as your developers.

This was always a roadblock for testers creating automation frameworks from scratch using these tools, since it made it difficult to use some common, object-oriented design principles and discouraged developers from collaborating with testers on the automation code. In my 15-plus years of experience, I've never once been able to convince a developer to install and use these types of vendor tools.

The good news is that it's now becoming more common for popular test tool vendors to support programming languages such as Java and C#. Many of them also integrate with popular developer IDEs and source control software. If you're just beginning your test automation efforts, you should use tools that fit into your developers' ecosystem.

TestAbility

5. Start with testability in mind

Regardless of your role on the team, development testing (and ultimately delivering a feature) requires a total team effort. Testing shouldn't be an activity that is done only at the end of a sprint by a designated tester.

Before one line of code is written for a new feature, the developers should be planning their solution with automation in mind. Developers should ask themselves, “How can I expose a hook or create a unique ID for this element in order to make it more testable?”

Making developers responsible for the majority of your test automation framework creation will also make them more aware of some of the issues that can cause unreliable tests due to poor application testability code design.

Only when an application is built with automation testing in mind right from the beginning will a team be truly successful as they shift left. Following these five steps should help get you there.

FYI – this article was originally posed on TechBeacon.

A bearded man with blue glasses and a black-and-white jacket smiles at a microphone in a studio setting.

About Joe Colantonio

Joe Colantonio is the founder of TestGuild, an industry-leading platform for automation testing and software testing tools. With over 25 years of hands-on experience, he has worked with top enterprise companies, helped develop early test automation tools and frameworks, and runs the largest online automation testing conference, Automation Guild.

Joe is also the author of Automation Awesomeness: 260 Actionable Affirmations To Improve Your QA & Automation Testing Skills and the host of the TestGuild podcast, which he has released weekly since 2014, making it the longest-running podcast dedicated to automation testing. Over the years, he has interviewed top thought leaders in DevOps, AI-driven test automation, and software quality, shaping the conversation in the industry.

With a reach of over 400,000 across his YouTube channel, LinkedIn, email list, and other social channels, Joe’s insights impact thousands of testers and engineers worldwide.

He has worked with some of the top companies in software testing and automation, including Tricentis, Keysight, Applitools, and BrowserStack, as sponsors and partners, helping them connect with the right audience in the automation testing space.

Follow him on LinkedIn or check out more at TestGuild.com.

Comments are closed.

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

The Ultimate Mobile Testing Guide: 11 Tips to Test Your App Effectively

Posted on 03/02/2025

Mobile testing is the systematic process of evaluating mobile applications to ensure they ...

What is Behavior Driven Development (An Introduction)

Posted on 03/21/2024

Love it or hate it—Behavior Driven Development is still widely used. And unfortunately ...

What is ETL Testing Tutorial Guide

Posted on 03/14/2024

What is ETL Testing Let's get right into it! An ETL test is ...