Automation Testing

 

Imagine a world where you can focus on your talent, empowering them to deliver innovative ideas to customers.  By introducing Automation to your delivery lifecycle, you can!

Automation testing is a programmatic method that uses tools to create scripts that tests the system instead of a person manually testing the system.  It is basically automation of a manual process.  Automation testing performed well can achieve amazing results.

Once the scripts are written, there is no manual involvement required while executing an automated test suite.

Where an Automation Strategy has been designed and an Automation Framework implemented, you would find that testers write test scripts and test cases using the automation tool, these are then structured into test suites and executed.

The main goal of Automation testing is to increase the test coverage, efficiency and deliver value to the overall delivery lifecycle.

Test automation can have many benefits on the software testing project, including efficient coverage of functionality and code, speed to test and continuous quality assessment by executing multiple types of tests.  However, to gain these benefits the test automation framework must be regularly maintained, easy to build upon and reusable for other test phases.

What’s your Automation Goal?

%

Automation can increase your test coverage

What’s your test coverage?

%

How much can your manual tests cover today?

Test automation can have many benefits on the software testing project, including efficient coverage of functionality and code, speed to test and continuous quality assessment by executing multiple types of tests.  However, to gain these benefits the test automation framework must be regularly maintained, easy to build upon and reusable for other test phases.

Automation testing types can be incorporated into the CI/CD pipeline which will allow for continuous testing on the latest code.  The following outlines some of the test types we may apply in the Automation frameworks we design.

Functional UI automated testing is testing from the perspective of an end user.  This allows for testing of the user interface including the testing of logic, malformed input and UI flow. Automating this type of testing allows for the complex combinatorial functionality to be covered.

API Testing ensures the API transactions work as expected.  This includes data types, permissions and API logic.  It is beneficial to also add malformed data tests (Fuzzing) to test for API resilience and security during these tests.

Dependency Scanning scans dependencies used by the code against known common vulnerabilities and exposures (CVEs).  This is useful because, dependencies are commonly used within projects and access to the source code may not be possible.  If a dependency is flagged as a potential security issue, this can be verified manually and either suppressed or remediated as required.

Static Application Security Testing (SAST) will check the source code for security vulnerabilities according to a set of predefined rules.  This scanning can take place via an IDE plug-in while coding and during build time as part of the CI/CD process.  This allows for checkpoints to be added preventing the build from progressing once security issues have been found. SonarQube allows for testing of Salesforce/Apex code.

Dynamic Application Security Testing (DAST) will run active security checks against a live system.  Ideally these systems should be connected end to end and a performance load running in the background.  This will allow us to determine both the security impact of the test attacks should they be successful, as well the performance impact on users while they are using the system should the attacks be unsuccessful. Implementing the above automated tests types into the CI/CD pipeline will give your project quick feedback on the progress of the software in development including its functionality, performance and security posture.  This will allow for project stakeholders to make timely decisions around feature planning, production deployment and remediation when deficiencies are found earlier in the project, rather than the end of the project.

Some of the tools used for Automation Testing for the various phases are outlined in the table below:

Test Type Tools Used 
Functional UI automated testing Selenium
API Testing Karate or Gatling
Performance Testing Gatling
Static Application Security Testing (SAST) SonarQube/SonarCloud
Dependency Scanning OWASP Dependency Check or Snyk
Dynamic Application Security Testing (DAST) Burp Suite Enterprise or Nessus
What we do

Accuteque is passionate about harnessing and applying the power of Automated Test execution. We work to empower Project and DevOps teams to deliver working products regularly and with confidence. We work closely with the development team to plan and design for integrated Automation Test capability, resulting in a reduction in validation timeframes and reinforcement of Test-Driven Development and CI/CD principles within the team.

This includes the following services:

  • Delivery of Automation test scope definition
  • Delivery of Automation test framework design & implementation
  • Automation test tool selection
  • Unit test design consultation
  • Automated test development
  • Automated Test script execution and results analysis
  • Meaningful automation test reporting
How we can help you

If Automation is proving to be a challenge for you, we can provide Automation experts who can assess your current position and design and implement an Automation framework. 

Working closely with your development team, we can assist with performing the different types of Automation testing, giving you confidence in the system whilst at the same time, giving you a broader coverage of the solution under test and uplifting your CI/CD pipeline.

Check out our Automation Use Cases to learn more about what we have done.

Benefits of Automation

  • Improve quality through automation
  • Enable greater coverage of functions
  • Enable greater coverage of scenarios
  • Repeatable and reusable tests
  • Programmable to run same test with varying datasets
  • Cost reductions can be achieved
  • Ability to stand up Test environments as needed
  • Ability to load test data
  • Enables CI/CD