Are you looking for a way to have happy users, while saving time during development & testing? Automated testing can become your key to achieving outstanding product quality. Hiring smart QA Engineers will make a big share of manual testing completely obsolete and reduce human-caused errors substantially.
Automation is often considered an unimportant side factor at the end of a project’s chain. I would like to shed some light on the importance of automating tests and how it can be done simply within your testing team. This will not be about test-driven development (TDD), which is a very deep and highly interesting topic by itself. Let's talk about using your test capacity at its maximum, which absolutely requires test automation.
If you ask what IT people think about testing, you would probably hear that it is boring. “Just manual clicking all the stuff and those testing teams consist of people who do not usually have coding experience. For more complex tasks like using database or writing scripts for test data, they always come to developers.”
Yes, this is more or less true. Manual testing is a routine job. When the project is already big enough to require a dedicated testing team, for testing faster, people are hired who can do the simple job of clicking here and there and checking the UI. But you have the power to change this!
You can turn your team into a talent pool of real QA engineers who know what is going on in the system. A team that can talk with developers using their language, to have a system covered by reliable automated tests, which can reduce testing time and ensure you can get test reports any given time by starting tests remotely and schedule them whenever you like.
I dare that by continuing to read, you will be convinced that automation is a highly valuable thing for testing. And if you are still in doubt, I’m going to give you some advice on how to start, so that you can change this…
(Source: WordPress, 2015)
So, let's talk about all the good benefits you will get from establishing testing automation in your project:
- Reduced time on regression. I correct: SIGNIFICANTLY reduced time on regression. 2 days instead of 2 weeks? Yes, this could be the difference.
- Automated tests can be run on different environments in parallel - which will save you even more time and effort.
- Scheduled auto-tests when the environment is complete, which helps to verify that it is actually testable before people start working on it. This is especially helpful if you do a nightly production build and your DevOps want to be sure that everything still works.
- Set up the selected tool and write required methods or keywords, which can be used by others is one of the hardest things. However, you do not need a team of 10 senior automation engineers, you need one, who will do it and teach others how to use what he or she did. There are plenty of tools with simple keyword language, which also enable people that are as not strong in coding to write tests.
- It helps to increase the awareness of testing teams about the system and provide them with additional knowledge such as html, xpath, css, sql and other languages that are usually needed for automation. You will get a more technically educated testing team.
- More motivated QA team. For sure, automation will not be interesting for everyone, but according to personal experience most part of a QA team feels much more interested in work and motivated when they can switch from routine-based manual testing to automation scripting.
- During quieter periods, when workload tends to be lower and testers are waiting for the new feature to come, they can write automated tests. There won’t be any waste of time, plus more and more of the system will be covered by automation.
Sounds pretty cool, right? But surely such wonderful thing like automation cannot be achieved out of a sudden without something to pay for and without having some limitations:
- Experienced automation engineers are a very valuable team member and, respectively, they usually expect a noticeably higher salary in comparison to a manual tester.
- Some good tools can be expensive, free tools could be not useable or not sufficient for your project.
- Finding a good tool can take time for experimenting and learning. This may postpone the time of getting your first sweet automation fruit. Be prepared benefits may not kick in immediately.
- You need to maintain your automated tests during the development of your system: UI elements can change, modules can extend, verification rules can be adjusted - all these factors can cause insufficiency of coverage and failure of test cases. If you do not invest into maintenance, you risk, at the bare minimum, wasting time. Imagine, you work on it, then just leave it as it is and... after a while, you will get a bunch of badly done, constantly failing, poorly covering system test cases, which, in the end, will bring no value or quality to your project. If you start testing automation and want it to be successful, be prepared to keep on going with it and have at least one person who can be dedicated to automation most of the time.
- You need to find time and sometimes funds to train testers how to automate. Otherwise, you may not have the best day, when improperly trained people write automated scenarios, which turn out to take twice as much time to fix or add missing checks.
- Automation tests cannot reproduce how a real user behaves completely. To cover all possible scenarios, you will need to spend a decent amount of time.
The best case scenario is to automate most regression tests, and especially boring validation tests, and have a human test all the rest. Over time, you will see quantity and quality of tests grow, time-to-test reduce, happiness of testers increase. Take advantage!
So, you decided to have automation in your project? What should you consider when you select a tool? One thing to get started is to hire an experienced automation engineer who can recommend a good tool selection and take the first steps. If you prefer to dive in all by yourself, consider the following:
- Language. Is your application in PHP, Java or any other language? You would probably like to have a testing tool that can be integrated with your system, and that can use the same system libraries and code for test data preparation.
- Your operating system (OS). Does your testing team use a Mac? Windows, or Linux? Some tools are better on particular OS, some will not even run on certain OS.
- Type of app. Web, mobile or desktop - the choice of the tool is directly tied to that. Some tools can work only with web apps and simply cannot be used for desktop and vice versa.
- Free or paid - there is a variety of both free and paid tools for automation. Sometimes, though not always, you will need to choose between usability or free-of-charge.
- You have an automation engineer (or not). If you do not have a senior automation responsible who can set up the technical basis up and help manual testers learn how to write test cases, you probably will need a more simple tool with a user-friendly integrated development environment (IDE).
Is it really possible to teach your young and green testing team to automate? Yes, it is. Just have a look:
- Manual testers not familiar with coding can use tools with an IDE, as mentioned above. There are such tools like Robot Framework with RIDE thing or Katalon IDE or (you name it) for which you do not need any special knowledge. The tests are written in a language like: Go To "url", Click "element". Verify Visible "Element".
- For sure some additional learning will be needed like how to locate an object on a web page. Luckily there are a lot of free and short courses (for 4 - 10 hours) to learn the basics of PHP, Python, xpath, etc. Such basic knowledge will be enough for writing such tests.
In a nutshell:
Having a properly established and usable automation tool makes life of a testing team and their managers much easier, as far as time pressure, quality assurance and fewer routine tasks are concerned. It is up to you what tool you chose and whether you need automation in the end or not, but if your project is long-term and appears to become big and complex – it is absolutely better to have automation tests in place. In any case I wish you a bug-free product, happy testers and relaxed project manager!