Test Automation

Digital transformation of our modern life means that businesses need to ensure they are at the forefront of the technology to remain competitive. It implies that software development is critical to success and the speed and quality of delivery is also key.

To address these requirements, agile methods and DevOps principles are being adopted. This is certainly a good thing but this drive cannot be addressed without implementing automation in the application lifecycle (ALM).

On the testing front, it is now nearly impossible to develop software without any kind of automation. With the fast cadence of agile, you have to be able to test your changes very rapidly (.i.e. within two weeks) but also be able to feed that information back to developers as soon as possible (this is what we call a Shift-Left attitude). Done right, test automation is a very cost-effective solution which can be performed at different levels. For instance, you can perform:


Test Automation Flyer
Test Automation Brochure

We’ll leave Unit Testing aside in this document as it is very developer focused and have a look at the other two testing types.

Unit Testing

To test the functionalities at the code level to ensure that code changes do not break existing features.

API / Service Layer Testing

To test the business logic and make sure it meets the requirements.

UI Automated Testing

To ensure the full application stack is working as expected and that the end-user will be satisfied by the finished product.

API or Service Layer Testing

UI or Functional Test Automation

Test Automation Framework

Mobile Testing

Web-Based Testing

If you are used to manual testing, you probably expect to have a user interface in order to test the application. However, in the software world testing can be done by interacting with the application via its API.

The service layer provides a very well defined semantic which can be used for testing the business logic of an application. By taking advantage of this, you can create a set of automated tests that can reliably validate this area of your application and be very cost effective.

Before shipping software, your application always has to be tested functionally. To achieve that, you need to manually interact with the User Interface, perform common scenarios, and ensure you get the correct outcome. However, this is very labour intensive and expensive in terms of manual resources as your regression suite will continuously grow as your product evolves.

To circumvent those limitations, a subset of your manual tests should be automated. This is achieved by using specialized software that is capable of interacting with your application. Despite its up-front cost, test automation has a good ROI as those tests can be re-executed as often as desired without any manual intervention. Some tests are more suited for test automation such as:

  • Simple tests: as they can be easily automated with a very good ROI
  • Iterative tests: by repeating the same tests with data variations (data-driven tests)
  • Smoke tests: tests that will be executed very often
  • Stable tests: tests where the UI never changes

Writing automated tests is a specialist skill. A developer in test must have competencies in both software development and testing as test scripts are nothing but code.

As a consequence, the same development principles must be applied to writing test scripts such as:

  • Abstraction
  • Reusability
  • Maintainability
  • Understandability

To meet those principles, it is recommended to implement a test automation framework on top of the testing tool. This ensures that best practices are being applied. This also minimizes costs when maintenance needs to be performed.

TestFrameworkLayersWide

Mobile devices such as smartphones have become so important that they are now the main tool of interaction with Internet. Ever increasingly, native applications are becoming available on those devices even before desktop ones.

However, due to the competing operating systems from various vendors and also to the various form factors, the amount of testing required is phenomenal. Unless you want to restrict support to just a few models (but you will also restrict your client’s reach), you will have to test the application across tens of devices, each having different operating systems, screen ratios & resolution and capabilities.

Using a mobile device test lab with real devices or a cloud-based solution will help achieve your testing goals.



Mobile Testing Partner ExperiTest

ExperiTest SeeTestCloud

Web-based applications are client/server applications designed to work inside a browser. With so many
browser editions and versions on the market (Internet Explorer, Safari, Firefox, Chrome, etc.), it is impossible to test them all.

This proves even more difficult when we consider all the various mobile devices (Android, Apple, Windows Phone to name a few) that may potentially run the application.

In these circumstances, test automation can greatly help as you can write the automated test once and test it across the various browsers and mobile devices.

Testhouse is dedicated to offering the highest levels of customer service and are keen to work with you to identify services that will help your business. If you are interested in any of the listed services or require any further information, please feel free to get in touch.

Contact Us