Test Automation

 

Background of the Field 

AFour started as a testing company, ingrained in its DNA.

AFour stands for “Automation Agility Attitude and Aptitude.” We have a strong pedigree in QA, particularly in test automation.

Among several quality attributes of a software product or system, one essential characteristic is software consistency. 

Software consistency refers to the consistent performance of given operations in terms of its behavior and time, and also while undergoing design or code changes in multiple iterations. 

Test automation is useful when there is a need to verify the behavior of the system without any manual intervention.  

Apart from this, test automation is useful in many scenarios as compared to manual testing. 

Manual testing has limitations such as complex workflow testing at the API level, where the output of one API is passed on to another API. 

Test automation is also very useful in generating complex and voluminous seed test data, monitoring of database states or other data structure states at different stages of algorithm execution. It is also helpful in parallel execution of test cases locally or remotely without manual intervention, and for immediate verification upon build formation and automated notification of results.

Services we Provide 

We offer test automation services in areas of consulting, design, and implementation:

We partner with software product companies to define the test automation strategy as a part of the overall test strategy. We define test automation scope, priority, process as a part of the overall QA strategy.

We assist software product companies in designing test automation framework keeping in mind areas like ROI, engineering process automation, DevOps, effective reporting and notifications, integration with QA tools.

We automate test scenarios for API, web application, as well as mobile application interfaces. Recently we have conducted a few POCs for automating test scenarios of smart device interfaces.

We assist customers in defining their CI / CD pipeline or overall DevOps strategy as a part of introducing or enhancing test automation initiatives.

Problems Solved for our Customers 

Since our inception in 2007, we have partnered with many clients to strategize, design, and implement test automation along with build and deployment automation. 

Few examples:

A mobile device management (MDM) product which was deployed on-prem as well as in AWS as multi-tenant SaaS offering. We strategized, designed, and developed test automation for 1000+ test scenarios for API, Web, and Mobile interfaces. 

We remotely maintained automation and designed its execution using parallel mechanisms as Selenium grid.

Intuitive Surgical – Customized solution for reporting, i.e. HPALM integration & audit i.e. video capture of tests(Web, Mobile, API)

For a healthcare organization which deals in automated surgeries, we automated test scenarios of their ERP application. 

We automated API, Web, and Mobile application interfaces. We designed a customized solution for reporting with HPALM integration and also designed video capture of test automation execution for audit purpose.

For a product focused on logistics monitoring related to eCommerce, we designed and developed test automation solution intending to use AWS only infrastructure. This was done using Saauce Labs platform for automating web as well as mobile application interfaces.

For a volunteer management system product, we reduced test automation execution time from 6 hr to 20 mins. We achieved this by introducing a high level of parallelism to the extent that 90 test cases were being executed in parallel at any point of time. 

We also introduced low-cost automation by provisioning test automation environment as well as test automation build infrastructure on demand.

For a software product, focused on automated customer service segment. We designed and developed test automation using containers (dockers) so that it could be easily deployed and executed on-demand basis on any platform supporting docker.

For a healthcare product, we designed and developed test automation with BDD approach. 

We used the Cucumber framework for implementing this for mixed scenarios, which included mobile application as well as web application interfaces.

For a customer’s mobile application of a leading mobile network carrier in India, we automated complex end to end complex test automation scenarios. It included verification of payment, OTP, etc. 

Open-Source libraries like Appium was used for this. AFour developed a good number of custom utilities to support test automation of complex scenarios.

Team Composition          

In the test automation team, we have test architects with 10+ years of experience in this field. Our senior test automation engineers have experience in building test automation for API, web, and mobile interfaces. 

Our test automation leads are well versed with DevOps concepts and assist in integrating test automation scripts with CI/CD pipelines. 

Most of the engineers have exposure to at least two languages java + Python / C# / JS / Ruby.

They are also savvy and up to date with the latest OpenSource as well as commercial test automation tools.

Test automation team at AFour is a mix of test architects who bring experience and other senior and junior test engineers who help in applying fresh ideas.

Tools & Technologies 

We have used a variety of tools, frameworks, accelerators, and platforms while building test automation for our customers. 

For web interface automation, we have extensively used OpenSource tools like Selenium. We have also used other tools such as Nightwatch, Protractor, Saucelabs, and TOSCA, to a great extent. 

In mobile interface automation, we have used libraries and tools like Appium, Perfecto, and Eggplant. For API test automation tools like RestAssured, Restsharp, Postman, and SoapUI are used to a great extent. 

For desktop interface automation, we have used tools such as AutoIt, White, CodedUI, Sikuli, TOSCA. 

In CI/CD pipelines, we have used AWS (Cloud formation), Chef, Docker, Jenkins.

For code review purpose, tools like CodeMaid, Lint, and other IDE plugins were used. 

For code management and repository, VSTS, SVN, Git-based tools were used.