Test automation is playing more and more important role not only in testing but also in building quality software. According to State of Testing Report 2016, 86% of interviewed organization have automation.
To some extent, going for automation is not an option these days. Even though automation testing is not something rocket science, getting started with it or having a successful automation project is a real challenge.
In this post today, I would like to share with you a short interview with Anton who has many years of experience in test automation. Anton will share overview about test automation, his experience and advice to help beginners get started with it.
Alright, let’s go!
1) Hi Anton, could you introduce a little bit about you, your professional experience and expertise?
I am a Quality Assurance Architect at Progress. I am passionate about automation testing and designing test harness and tools, having the best industry development practices in mind. I am an active blogger and the founder of Automate The Planet. Ardent about technologies such as C#, .NET Framework, T4, WPF, SQL Server, Selenium WebDriver and Jenkins, I won MVP status at Code Project (2016) and MVB (Most Valuable Blogger) at DZone. Lastly, I am a regular conference speaker. I try to contribute to the QA community as much as I can, so I hold talks in local meetups and train students in the Telerik QA Academy.
2) Any cool picture?
3) People said that manual testing is dead and it’s being replaced by automated test. What’s your opinion about this?
As you probably guessed, I am a bigger fan of automation. However, I don’t think that manual testing is dead even in the opposite. The integration of automation is context dependent and depends on the type of the project.
For example, if you work for an outsourcing company where each project is small in size- random simple mobile application, most of the times the clients won’t pay you to write automated tests. Even if you have the time to write automation for such projects, it is pointless because the return of investment is low.
On the opposite side, if you are a part of a team working on a complex legacy system or company’s own product, you can benefit a lot from the automation. You will need an enormous amount of regression tests if you want to have an agile development. But even in this scenario, you need manual testing because the automation alone cannot find functional and other types of bugs. It is good at finding regression problems.
4) How important automated test plays role in making quality software?
As I mentioned before, it entirely depends on the projects. There are times where it doesn’t make sense to automate things. However, in my case where we are developing a highly complex e-Commerce system, automated test makes a tremendous difference. Our automated tests guarantee that everything functions as before. They can find performance and load problems. We use some of them for monitoring. So I believe such automated tests take the software quality to new heights.
5) What are the current trends right now in test automation?
Selenium is more popular than ever with the introduction of Selenium 3.0. It is more and more popular for web applications to become more service oriented, so I believe web service testing is a trend.
Also, if you go to a QA Conference, half of the talks will be about mobile automation frameworks such as Robotium, Appium, etc. so mobile is a trend too.
6) What are your advice to have a successful automation project?
If you can, ask someone with more expertise to join your team and help you with it. If you don’t have this opportunity, read blog posts on the subject, find some courses or books. If you start without taking these steps, most probably, your first attempts will be failures.
Also, don’t build rockets at the beginning and keep the bigger picture in mind. What I mean is that if you think that multiple teams will use your project for multiple products then design it and have this in mind from the beginning. The reason is simple, it gets hard to change the architecture at later stages where you have thousands of lines of written code.
7) What are the prerequisites to get started with automation?
I think one of the most important parts is to have a programming knowledge. If you don’t, you can take some courses or read related books. I believe that maintainable and scalable automation can be achieved only through tests that are written in code.
Another important part of the process is to have testing experience, well at least a year. If you don’t know how to test something properly manually, how do you expect to be able to check it automatically? The same is valid for your domain knowledge for the tested applications. You can be the best automation QA, but if you don’t understand the business logic behind your application, I think it is not possible to write “good” automation.
Finally, there are lots of specifics for the different automation frameworks, so you need to know them as well.
It will be better if a more senior QA can mentor and help you during the process. My opinion, in general, is that the initial effort for the introduction of automation should be made by more senior people. There are lots of architectural questions that people without experience won’t be able to handle. Most of these questions may arise after months or years, but will become harder and harder to be resolved.
8) What automation tools, programming language you recommend for the beginners to step into automation?
For beginners. Oh, well. As I previously said, I am not a fan of any UI based automation tools. Years ago I used lots of them, and I don’t like them. I like Visual Studio for writing .NET code. Yeah, I am a .NET guy so my preferred coding language is C#. But Java is OK too. It depends on the context of the company you are working for and on the project. If you want to automate mobile, you will need most probably to write a Java code.
Just to learn the basics, you can write a few tests using a recording tool such as Selenium IDE or Soap UI for web services. I don’t recommend them for real projects though.
9) What are the best resources (books, website, courses, etc.) you can recommend learning automation testing?
Courses:
I like Pluralsight for online courses. They have lots of excellent tutorials about programming.
Also, I recommend Complete Selenium Webdriver with C# – Build A Framework by my friend Nikolay Advolodkin
Books:
- The Automated Testing Handbook by Linda G. Hayes
- Selenium Design Patterns and Best Practices
- Jenkins- The Definitive Guide
- How Google Tests Software
- Selenium WebDriver Recipes in C#
- Head First Design Patterns
- Agile, Principles, Patterns, and Practices in C#
Websites:
Well, time for self-promoting…
- Automate The Planet (you can find information about most popular automation frameworks, design patterns in automated testing and C#)
- Execute Automation
- Joe Colantonio
- Software Testing Help
10) Last question, how many automated testers does it take to change a light bulb?
None. They have an automated test for the job.
Thanks Anton so much for your sharing in test automation. These will definitely help new testers get started in test automation.
For those who want to follow Anton and learn more about test automation, contact Anton at:
- Website: Automate The Planet Taking Software Quality to New Heights!
- FB: https://www.facebook.com/automatetheplanet
- Twitter: https://twitter.com/angelovstanton
- G+: https://plus.google.com/b/105825466132565356011/+Automatetheplanet
- LinkedIn: https://www.linkedin.com/in/angelovstanton
- CodeProject: http://www.codeproject.com/Members/AntonAngelov
Good one. But I disagree with your recommendation about “Using a tool such as Soap UI for web services for real projects”.
I have used SoapUI in some real projects which got lot of exposed API’s. It solved almost all my API testing problems. Especially the new version of SoapUI, so called Ready API is an one stop solution for all your API test automation needs. You might be comfortable in doing the same by writing lots and lots of code using C#.
But do you have a plugin to import your tests from your Postman Collections which you have used for manual testing your API’s? SoapUI have one.
Does your code/framework have a built in feature to generate the API test coverage, based on your API documentation? SoapUI have one.
Does your framework have ability to auto generate tests by importing the documentations like wsdl, wadl, swagger etc? SoapUI have one.
Does your framework have report your test results back to your test management tools like Jira? SoapUI have one.
Still I can add hundreds of features in SoapUI and if we want to build a tool/framework with same level of capabilities that SoapUI have, it might take years to do.
Thanks good information