Is test automation for testers or for developers?
Who writes the test automation code?
Do testers have to write code?
A few years ago, my answer was that testers do the test automation.
My impression at that time was that testers can learn programming and a test automation framework and improve their development skills from there.
Test automation was getting more and more prominence as Selenium and other tools were created in addition to QTP.
Today, I am not so sure.
I attended this afternoon the VAN Q testing meetup organized monthly in Vancouver, BC.
The meetup topic was test automation of mobile apps and games.
There were 2 parts to the meetup.
The first was about Test Droid cloud service and how it allows running automated tests for mobile apps and games on hundreds of real devices.
This exposure was more about how Test Droid works and less on test automation.
If you have not heard of Test Droid before, it is similar to how Sauce Labs works for web and mobile test automation.
It uses different automation frameworks like Appium, UI Automator, Selendroid, Robotium and lots of real devices.
The second part covered how test automation is done at Electronic Arts.
Electronic Arts is using 2 different approaches to test automation:
- based on image comparison
- based on the application instrumentation
For the test automation based on application instrumentation, Electronic Arts has built its own test automation framework called Unity.
With the help of the framework, the testers can create test automation scripts using Java and C#.
All of them worked to a certain degree only.
So, the test automation process for EA includes
- using their own test automation framework
- creating test automation scripts with Java and C#
- integrating the test automation scripts with the build process using Jenkins
Very good meetup with lots of interesting details.
So many technologies mentioned in one afternoon:
- programming languages: C#, Java
- multi device cloud services: TestDroid
- test automation frameworks: UI Automator, Appium, Selendroid, custom frameworks
- Jenkins
But I wonder how many testers from the audience have any experience with them.
My impression is that not many.
So, going back to the initial question, is test automation for testers?
Or test automation is for developers?
Some people say that test automation is for software developers in test.
This is a confusing name which essentially means just software developer.
To make the answer to the main question more difficult, see below some questions from an interview I had a while ago for a test automation position:
- what is new in Java 8?
- what is a stack?
- what is a queue?
- considering an array of numbers that can have the same number twice, how do you find the duplicated numbers?
- what is a hash table?
- can a static method be overloaded?
How many manual testers can answer these questions?
Also, there seems to exist a trend where big companies have less and less testers or no testers at all.
They rely on developers to do the development and testing.
Because it is obviously easier for developers to learn testing than for testers to learn development.
Based on all this information, I think that unless testers start thinking seriously about learning programming and learning test automation frameworks, they should leave the test automation to developers.
It is not easy to go from manual testing to test automation but not impossible either.
The issue with this is that the distance between manual testers and developers becomes wider and wider every year.
Add another step and learn the test automation framework.
Add another step and another and another ...
Test automation is waiting for you ....