Why we love automated testing
As a business that follows the Software as a Service model, ResRequest’s team is mainly made up of Developers and Customer Support consultants and we use many tools to help provide a great service for our customers.
Our Dev’s are in their element when nestled in front of multiple screens and have cool tools on hand to work with…
In this article our Dev team share what tools they use to test the product that they build and maintain.
Manual Testing vs Automated Testing
Manual testing is performed by a person carefully executing the test steps on computer software. Automation/automated testing means using an automation tool to execute your test case suite. This way, the actual outcomes of the tests can be compared with that of the predicted outcomes, to help identify issues, bugs, anomalies or limitations.
At ResRequest, we continually strive to improve our awesome suite of products. A lot goes into researching, developing, and delivering a great product. Automated testing is only one of a myriad of ways that we strive to deliver the best product we can.
You might ask: “Surely manual testing is sufficient to deliver a product to the end-user?”. In many cases that’s true, but in today’s competitive world, filled with changing technologies and demanding user requirements, it is imperative to ensure stability.
At ResRequest, we understand that developing quality takes time, and so, we recognise strategies need to be put in place to help keep us ahead of today’s break-neck pace. One of the many strategies we use to help us, in this regard, is automated testing.
Rationale
ResRequest values automated testing over manual testing, because:
- Manual testing of every possible workflow, field, and scenario takes time and money.
- It is difficult to manually test all different themes, layouts, setups, currencies, etc.
- It does not require human intervention and can be run unattended.
- Executing automated tests can be quicker than doing the same testing manually.
- Automation helps cover bigger areas of an application, which prevents any unforeseen regression issues from occurring.
- Even though we, at ResRequest, love testing and using our products, manual testing can sometimes be tedious and repetitive, and as a result, error-prone.
Benefits
Why spend time and money on automated testing?
It brings the following to the table:
- Can be a lot faster than manual testing.
- Ensures consistency.
- Improves accuracy.
- Reusable test scripts.
- Helps ensure stability of the final product.
What should be tested with automated tests?
Ideally, it should focus on:
- High risk and/or business-critical areas.
- Test cases that need to be repeatedly/regularly executed are also great candidates to be automated, as their scope should be well understood.
- Testing that is very tedious or difficult to perform manually can also greatly benefit from being automated – computers don’t get bored.
- Testing that is time-consuming should be automated, if it can be done reliably. This helps us focus manual testing on areas that would benefit more from having a little more human touch.
Disadvantages
Though automated testing has many advantages, it also has some disadvantages:
- Proficiency in programming and some level of technical knowledge is required to write the automation test scripts.
- Debugging automated test scripts is quite involved. Identifying limitations in the test script requires an in-depth understanding of the technologies used, as well as the application/software being tested.
- Test maintenance is costly, as each update/improvement/feature may require an updated or new test case.
- Automated tests cannot (and should not) entirely understand the end user’s use-case/requirements. The automated test case will simply execute a number of instructions and will not know if the end user’s experience can be improved, by changing the overall workflow of the software it is testing.
- Automated tests can never beat a human tester’s expertise and knowledge of the application it is testing, and should, therefore, be used alongside manual testing and only where needed.
Selenium
There are many tools and applications that can help with automated testing of a system or software. At ResRequest, we have chosen Selenium for this task.
What is Selenium?
From the Selenium website: “Selenium automates browsers. That’s it! What you do with that power is entirely up to you. Primarily, it is for automating web applications for testing purposes, but is certainly not limited to just that. Boring web-based administration tasks can (and should!) be automated as well.
Selenium has the support of some of the largest browser vendors who have taken (or are taking) steps to make Selenium a native part of their browser. It is also the core technology in countless other browser automation tools, APIs and frameworks.
Selenium’s primary purpose is automating web applications for testing, web-based administration tasks can also be automated as well. Selenium has the backing of large browser vendors who have ensured that it is a crucial part of their browser. Browser automation tools, APIs and frameworks are just some of the platforms using selenium at its core.”
How does it work?
Selenium interfaces to a web browser’s driver, that driver then connects to the web browser to control it. The next step is to instruct Selenium on what to do, and it will take care of explaining it to the chosen web browser, in a way that would make sense to the relevant web browser.
What’s ahead?
Currently, we use Selenium and automated testing on some of our core products, but we plan to roll this out to as many ResRequest products as possible, in the future. All hail our robot overlords!