Categories
QA&T – Our Approach Your Edge Blog

Testing Automation

Automated Testing streamlines processes by running tests without human effort, saving time and reducing repetitive tasks through programmed automation.

Automated Testing is an approach of running tests without human execution. Automated Tests are created using some programming techniques and then they are run automatically, when requested. This way Automated Testing reduces the effort and time of repetitive tasks needed.

Benefits

When Automated Testing is deployed effectively, it allows to test more (covering higher breadth of functionalities or the depth of testing each of them), do it faster, and more efficiently.

  • Faster execution in comparison with manual execution of tests
  • Higher reliability due to automation consistency in comparison with manual effort
  • Better reusability of automated tests since test scripts and snippets may be used repeatedly
  • Wider scope of testing in time given than manual execution
  • Streamlined integration with software development (e.g., triggering when repository updated)
  • More demanding to set up automated testing than manual testing
  • Higher requirements on test engineers, being effectively a sort of software developers
Test Levels Automated
  • Unit Tests: Nowadays already widespread good software practice of running automated tests of individual functions when a software repository is updated by a developer
  • Integration Tests: Automatically testing a combination of the individual parts of a system to check the interactions work correctly
  • System Tests: Automatically testing a complete system is the focus of our Automated Testing Platform:
    • Smoke Tests: Testing the core functionalities of a system after changes in the code or the environment to verify that the main functionalities of the system work correctly, and that the system is stable enough for further detailed testing.
    • Functional Tests: Testing the functionalities of a system using appropriate inputs and examining the outputs, ensuring that each function of the software works as expected.
    • Regression Tests: Regression tests, often executed before deploying a new version to the Production Environment, are performed after code changes to ensure these changes have not negatively impacted the existing functionality of the system.
  • User Acceptance Tests: Automation may support these tests, however, it’s fundamental to ensure that the User Acceptance Tests accurately reflect the end user’s perspective and cover all relevant use cases.
  • End-to-end Testing: Testing the entire workflow from a user’s perspective is challenging due to the complexity – processes often pervade many systems. It may be feasible to start by automating smaller parts and gradually move up towards automating larger sections.
When to Stick with Manual Testing

It is important to mention that it is not always suitable to deploy Automated Testing. Especially, the following situations may lead to give preference to manual testing:

  • Rarely executed testing: When the testing is conducted too rarely, that it is better to stay at manual testing on an occasional basis.
  • Unstable functionality: When the functionality to be tested has been evolving with a relatively fast pace, it is better to not catch up with the evolution and consider the automation later.
  • Too complex integrations: When implementing Automated Testing requires too complex integrations of the Automated Testing engine with the tested system to control it, implementing Automated Testing need not be worth the effort.

Automated Testing Platform

The Automated Testing Platform has been evolved during our successful engagements in complex projects. The platform is not a single compact product per se, rather a set of assets, which we have implemented and utilized successfully and will apply in our future engagements.

Key Benefits

In addition to the general benefits of Testing Automation, the Automated Testing Platform provides the following benefits:

  • Easy and quick maintenance of tests when the application changes, through adjustments in the modeled application components
  • Isolating the test author from technical details and parts of the flow that are not being tested
  • Higher efficiency and consistency thanks to the ability to share test data
  • Clarity and control with reports and logs in various formats and output levels
  • Support for parallel test execution
Key Concepts
  • UI Testing and API Testing: The Automated Testing Platform consists of two parts – Front-end for UI testing and Back-end for API testing – which share a common concept and can be used both independently and in combination.
  • Model-driven: Both parts of the platform utilize a model representation of the tested application; test scenarios are then implemented using shared models, without the need to address technical interaction details with the application in the scenario design.
  • Black Box Testing: Both parts of the platform do not require the Test Engineer to have knowledge of how the tested application is internally implemented.
  • Data-driven Testing: Both parts of the platform implement configuration mechanisms for working with test data – modeling business reality as an entity data model, configuring the use of test data in tests, including support for reuse without data duplication.
  • Deployment for a new application: The Automated Testing Platform consists of general parts and specific parts designed for testing a particular application. Deploying the platform for a new application assumes the implementation of specific object models to represent the application, preparation of the test data model, and preparation of test scenarios.