Automated testing: benefits and tools
I’m in the field of Quality Assurance (QA) so, as you can imagine, I love to test software, whether it’s websites or Enterprise Systems or anything in between. Why you ask? Because I’m able to be an Evil Overlord. (If anyone from Marvel is reading this, contact me as I’m ready to join).
On a serious note, the objective of testing is for good, not evil. However, to succeed in testing, you must have the right mindset. Testing is a holistic process and is integral to quality work being delivered and completed.
In the past, QA was brought into the software process at the end of the development cycle. In an Agile environment, the development team and the QA team collaborate more closely throughout development.
Benjamin Franklin said, “time is money” and, in a testing environment, this is certainly true. The more tests you run in the beginning of the development, the more costs it saves you down the road…and the less you’ll see of QA testers like me.
Benefits of Automation Testing
Adding automation to any process improves productivity and ease. Automation Testing is simply creating a test that can run on its own. With automation, tests that took hours to complete manually can potentially be reduced to minutes. This allows you to compound the time you save by running multiple tests in the time it took to run just one. The result is greater test coverage and the potential to find more bugs or defects. As you can imagine, this leads to higher productivity and faster turn-around time for the development or release of software.
There are many tools on the market to help with Automation Testing, but the two that I use most are Selenium and TestProject.
Automation Testing Tools: Selenium and TestProject
With Selenium, we use Java to code the test scripts. We then create either an executable file or we use the pipeline in Azure to deploy as part of the DevOps process.
To use Selenium, we installed Java 16, IntelliJ IDEA IDE, Selenium Web-Driver 3.14 and TestNG, in that order. We also use GitHub as our code repository. (For great tips, check out our blog by Pablo Llanes on Git Commands and Tools to Enhance Your Workflow.) The Selenium Web-Driver is the framework that enables us to identify and interact with the browser elements, while TestNG takes care of the testing and report generation by giving a visual representation on the pass/fail results.
The Selenium setup is based on a hybrid approach that’s a combination of data-driven and keyword-driven frameworks. We use Page Object Model (POM) to separate the elements and methods from the test cases. This makes referencing them through the code more efficient. It also helps with maintenance of the code in case the element or method is changed or updated, because we only need to change or update in one place instead of multiple sections of the code. (“Work smarter, not harder.”— Evil Overlord 101).
TestProject is a low-code platform—built on the Selenium and Appium frameworks—that allows you to create the test cases using either a UI-based model or using the recorder to record the test cases for easy playback and modification. The great thing about TestProject is its ability to run parallel tests with multiple browsers at the same time. (Multi-tasking—one of many abilities an Evil Overlord should have.)
By incorporating these tools into our QA process, we’re able to reduce costs and increase efficiency and productivity for our clients. (Read a recent case study on Automated Testing.) The quality of the software also improves through a greater amount of test coverage. This generates revenue!
My advice to my colleagues and peers in the QA field is to begin adopting automation testing into your work. There will be a lot of planning and effort required in the beginning. However, the benefits will begin to show with time. Take it easy with baby steps and soon you’ll have time on your hands to look at all the documentation that is always pending (“Always think ahead” – Evil Overlord 102).