Test Automation Coexists Well with Manual Testing
Test Automation can help manual testers conduct better manual testing; Ambitious manual testers can learn and grow to be automated test engineers.
In the previous article, I explained how developers and testers could collaborate with automated testing. This article will focus on the collaboration between test automation engineers and manual testers.
Test Automation is not a total replacement for Manual Testing
People tend to think that “Test Automation Coach” (my job title) is here to
Get rid of manual testing, and/or
Train all manual testers to become automated testers.
That is not true. Manual Testing is always required, even in real Agile/DevOps software projects.
In real Agile/DevOps, 95+% software testing is conducted via automation. Some might wonder the role that full-time manual testers play there. The manual testers still perform manual (mostly explortary) testing every day, why? In a real Agile/DevOps project, the team pushes software updates to production on a daily basis.
“You cannot do enough Testing in software” — Zhimin Zhan
As an automated testing coach, my job is to show how test automation can help a team to do software testing (automated and manual) better via automated scripts. As to what level the automated testing can be achieved, it is really up to the company and individuals. The ultimate goal is to “Release Early, Release Often” like “Facebook is Released twice a day” (my company has been achieving pretty much that for all our apps, since 2010). For most software companies, IT executives will be happy to see big improvements in testing efficiency, such as 10X, which is not difficult to achieve.
In real life, very few IT executives (despite talking) have the real vision and courage like their counterparts from ‘Facebook’s Release Twice a day’ or LinkedIn ‘completely overhauled how LinkedIn develops and ships new updates’. Why do they ofen talk about Automation, ‘Agile’ and ‘DevOps’ then? This ancient chinese idiom explains it well.
When I provide consulting and coaching on a client project, I typically
Automate a real core test scenario on the first day (when I could access the system);
Help manual testers to prepare test data using automation scripts
(this is the main topic of this article);Set up Continuous Testing to run a group of automated tests (created by me) daily. The results (and execution history) are instantly available to the team;
Train those inspired testers who want to learn. Some have become automated testers later.
I never belittle manual testing. In fact, I get along very well with manual testers because they could use automated scripts I created to assist their work greatly. Here is a farewell email sent from a lead developer who observed how much test automation helped manual testers every day. (the manual testers organized a special farewell lunch and thanked me for my help)
Automation Helps Manual Testers greatly
How would that work? It is obvious when pointed out. For example, submitting an insurance claim manually in a software system might take 5 minutes, and many testing scenarios are based on that, such as Reviewing, Approving, Rejecting, …, etc. When a manual tester is given a testing task, he/she must prepare a data scenario (finding or creating one, typically creating a brand new one). This would take quite some time even if he/she did every step right.
Moreover, after the testers have done it dozens of times, this kind of repetitive work gets boring. Test Automation can relieve manual testers from that. For this reason, I have a good work relationship with many manual testers and business analysts.
Usually, a business analyst found out that my automation could help his/her work (by the way, I never promote automation to business analysts and manual testers proactively). Because I ran automated tests often (developing/debugging/Continuous Testing), it wouldn’t take long for a business analyst to notice that. Because it drove the app (which they were very familiar with) in the browser, the idea of using it to prepare data scenarios would come up easily.
Soon, I received many requests on Slack/MS Teams every day: “Zhimin, can you create this data…?”.
I usually posted the reply in a few minutes (after executing an automated test script), such as “APP39834, a newly submitted claim on a stolen vehicle.”
Shortly after, another request came, such as “Can you have a flood damage claim over $X?”. Because my automated test scripts are quite flexible, based on the Maintainable Automated Test Design, I could usually develop/update an automation script within minutes.
Please note, I provided help using automation scripts, not automated test scripts, to these manual testers and business analysts. I did not judge how they performed testing, and they did not care how the automation scripts were created and maintained.
Make Data-Preparation Automation a Self-Help Utility on the BuildWise CT server
The more test data I ‘prepared’ for business analysts and manual testers, the more requests (and from more people) I would receive. Many of them felt guilty for interrupting my work. Frankly, I handled the load well. As I kept my automated test scripts well maintained, the only thing I needed to do was to find the right script and trigger a run. With TestWise, it was quite easy to do.
Later, I implemented a Self-Help data preparation utility for manual testers and business analysts. They only need to visit the BuildWise CT server in their browsers, select a data scenario and trigger a run. The result will be displayed after that.
I will write a separate article about this self-help data preparation utility. In the meantime, I will show you a screenshot to help you get a feel of it.
Manual Testers help make automated test scripts better
When manual testers start using automation, the benefits are mutual. In a typical consulting project, in the beginning, I would be the only person developing all test scripts. Manual testers help
show me the test design by demonstration or send me a video
identify the issues in automated test scripts
expand the coverage by letting me know the defects they found
Manual Testers’ Proactive Involvement
Among a group of people, there are always proactive ones who are ambitious and interested in learning, and those others who would prefer life without much change. Either way, automation can help. For proactive manual testers (and business analysts and programmers), I am more than happy to help them grow.
Some Manual Testers Want to Run Automation Scripts themselves
The method has to be very simple, as below.
Perform a
git pull
to get the latest automated test script.
I will help them install Git, and create a confluence page based on this article, “10-Minute Guide to Git Version Control for Testers”.
Because they don’t usually change test scripts (at least initially), they will only need to remember one commandgit pull
.Find the test case and run it.
This step is quite easy too with TestWise.Run it.
Keeping the Browser Open feature (in TestWise) is essential here. After the test execution, you will be able to continue from there.
Some Manual Testers Want to Learn Test Automation
I would be happy to train them. After all, I am a test automation coach. If no one were willing to learn, all automation scripts I created would be outdated shortly after I left, and the Continuous Testing process would be discarded.
Because of the time constraint (test managers usually won’t allow manual testers to do other tasks for long), I made my training short (one day) and effective. The goal of the one-day training is that the attendants (most without programming and automation knowledge) could start to work on real tests the next day with my mentoring. Some later became automated testers.
I now also offer Selenium Training online, also, the “Selenium Training Workshop” series.