In an attempt to do more with less, organizations want to test their software adequately, as quickly as possible. Businesses are demanding quick turnaround, pushing new features and bug fixes to production within days, along with quality. Everyone knows manual testing is labor-intensive and error-prone, and does not support the same kind of quality checks that are possible through the use of an automated test. Nobody likes change, but it’s time to educate your team on the importance of onboard automated testing.
"The only way to make sense out of change is to plunge into it, move with it, and join the dance."– Alan Watts
Everyone has had a job interview at some point in their lives, right? It is important to be prepared! The first few minutes of an interview are a make or break moment. Why? Because first impressions can have long-lasting effects. Never underestimate the power of first impressions. The same principle applies when onboarding automation to an existing manual testing team. Your initial presentation to your team or organization should be treated like a job interview. Be prepared. Deliver expectations and explain responsibilities — it’s critical since it is normal for employees to have an emotional reaction to anything they view as a job threat.
If things are going well, why do we want to implement automated tests? The demand is to do more with less, which makes manual testing an impossible task, but introducing automated testing into an existing software development lifecycle can also be daunting. However, when implemented, automated testing is a valuable asset that shortens testing cycles and helps teams become more agile.
Below is an overview of different automation approaches to help narrow down your options, which will help support your decisions.
Record and Playback
Is flexible, with script-free testing for non-programmers.
Is a type of functional automation testing framework which is also known as table-driven testing or action-word-based testing.
Is the creation of test scripts to run together with their related data sets in a framework. This provides re-usable test logic to reduce maintenance and improve test coverage. Input and result (test criteria) data values can be stored in one or more central data sources.
Is the creation of small, independent scripts that represent modules, sections, and functions of the application-under-test. These small scripts are then used in a hierarchical fashion to construct larger tests, realizing a particular test case.
How do you start to introduce the idea of automation? How do you start to build interest? Some will be interested, and others may push back. In order to implement a successful automation onboarding effort, the people involved need to educate, and understand expectations and responsibilities. The expectations need to be crystal clear to eliminate or reduce potential conflicts.
What makes a difference:
Explaining why automated testing is important, and what to expect
Setting expectations for management
Determining who will use it
Developing a clear training program which will set up your team for success
Selecting the right automation tools
Review and documentation processes
Building a well-balanced testing portfolio as a team
To help set expectations regarding team roles and responsibilities, I’ve identified multiple roles to help onboard automation in your organization. As roles evolve, these descriptions may vary across the industry. The end goal is to have QA team members embedded, empowered, engaged, and ever-evolving in product quality.
Point of contact for all QA activities — creates the initial testing strategy for the project, provides work estimates, creates documentation as it relates to quality and test coverage, communicates risk, mentors team members on testing, and performs manual testing; develops automated scripts as needed.
The voice for quality, communication, and documentation.
QA EngineerAutomation Test EngineerSoftware Engineer
Design and development of automation scripts. Scripts may be developed from manual scenarios such as a manual regression suite, but re-architected with automation in mind.
Good knowledge of tools, testing, and novice programming background.
Lead Automation EngineerAutomation Architect
Design and development of automation architecture, assists in design and development of test automation across projects. Responsible for in-house training/mentoring, knowledge transfer, and collaboration.
Excellent knowledge of test automation tools, programming principles, automation standards, procedures, and development skills.
Design and configuration of test environment. Update automation software. This task could also be handled by a Lead Automation Engineer.
Excellent knowledge of test environments, tools and practices and procedures.
This is the hardest phase when onboarding automation. For manual testers or non-technical team members, the thought of automation is scary. It is vital to present the change as an opportunity for the team to take control of their careers and learn technical skills.
You’re getting paid to try new things and find a new passion — automation. Whether you succeed or fail, you’re going to learn, and get better along the way. Constantly cultivate your talents, passions, and inner voice. Don’t settle for what you’ve done before. A take-the-bull-by-the-horns approach will be your key to success.
To evolve team skills, lay out a crystal-clear training program with expectations and milestone goals. To measure your training progress, you may need to re-evaluate each member to determine if anyone is struggling or in danger of falling behind. If you discover that certain individuals are falling behind, take a step back and discuss how you can help them to be successful. Never give up on QA Analysis. They still have value. Analyst = Automation Engineer. Some may be able to easily adapt and evolve their skills, but some won’t.
A balanced testing portfolio is the key. The future is more than automated testing. Don’t rush into it. Choosing the right framework is vital, but poor implementation when onboarding your vision is deadly. I have personally experienced the rush, and it was costly in the long term.
This is a perfect opportunity, as a team, to talk through test coverage guidelines, and learn as a team how to balance your automated testing portfolio from unit, API, integration, and functional UI tests.
Greg Sypolt (@gregsypolt) is a senior engineer at Gannett and co-founder of Quality Element. He is a passionate automation engineer seeking to optimize software development quality, coaching team members how to write great automation scripts, and helping testing community become better testers. Greg has spent most of his career working on software quality – concentrating on web browsers, APIs, and mobile. For the past 5 years he has focused on the creation and deployment of automated test strategies, frameworks, tools, and platforms.