Test automation frameworks have been in existence since the early 90’s. They have undergone significant changes over the years, mainly to address issues like code maintenance & scalability. From Data & Keyword Driven frameworks to Hybrid frameworks we have seen automation frameworks improve and improvise to address testing and scripting challenges. However with disruptive digital technologies & development models, application changes and code deployments happen every day. Continuous Testing needs to happen for excellence in software delivery.
This necessitates that the test automation frameworks undergo reinvention to make them more relevant and fit in the latest software development approaches & technologies. In order to design a test automation framework for an organization, the first step is to assess the challenges that the automation framework is supposed to address. Some of the common challenges that need to be addressed are depicted in the diagram.
Reinventing Test Automation Frameworks
In order to address the challenges listed and also to present a scalable solution, a compartmentalized but integral solution is the need of the hour. While addressing the automation challenges at application level, it is imperative that the framework should raise the bar to enable process automation as well. Towards this end, the goal of the test automation framework should be able to support continuous integration/ process on top offering cross platform and scripting language independence. With mobile testing gaining importance and offering more complexities, it is essential that the frameworks being developed are scalable to address innate challenges of mobile testing such as device fragmentation, multi O/S testing etc., as well.
Aspire Framework for Test Automation (AFTA) 2.0
The selenium test automation framework solution that we offer at Aspire was upgraded with the aim of addressing the challenges and objectives discussed above. This framework not just stops at functional / regression test automation, it also extends beyond to leverage the same scripts for security & performance testing as well.
The current AFTA 2.0 framework exploits Selenium Web Driver, Appium & Grid to its fullest on various parameters – Design patterns, parallel / distributed / cloud / cross browser / device execution, custom report, CI, web security & performance.
It is based on highly maintainable & scalable design patterns using Page Object Model, Page Factory & Loadable components. This greatly reduces the boilerplate code in tests.
By recognizing the essential needs of data portability and abstraction, this framework provides the flexibility of a data driven approach with components to access data available in various data sources like excel, CSV, XML & DB.
Parallel / Distributed execution is taken to next level by exploiting TestNG and Selenium Grid. This significantly brings down the turnaround time of script execution & infrastructure cost to 1/5th or 1/10th of sequential executions. it also encompasses necessary components to run the same scripts in cloud browser & mobile infrastructures platforms like sauce labs, cross browser testing, etc.,
All the Framework components are built as plug-and-play thus enabling it to be wrapped into any build management tools like Maven, Gradle, etc. This allows seamless integration into continuous delivery pipeline. At the same time it still allows flexible configurability ability to pick and choose the test packs to be run on-demand.
Reporting engine produces portable, user friendly reports which can be consumed by Management, functional testers, BA’s and other stakeholders.
Non Functional Tests using AFTA 2.0
OWASP ZAP Integration with Selenium
AFTA 2.0 has a seamless integration with OWASP ZAP tool for uncovering vulnerabilities in web applications. Spider Scan and Active Scan are effectively used here to perform security testing along with functional automation scripts that helps to unearth many of the Top 10 Security vulnerabilities without any significant additional effort.
SOAP Scripts Integrated with Selenium Scripts
With easy integration with SoapUI, one can perform functional, regression and load testing. SoapUI works on xml where the request is sent through xml and a server response is obtained. With Selenium integration of SoapUI, it is very easy to create different test suites and test cases with different data and use them to perform web services testing. Additionally, since SoapUI interacts with server without the need for an UI, AFTA 2.0 can use SoapUI for faster test data generation.
JMeter for Performance Testing:
The test scripts within AFTA 2.0 can be converted into executable jar and can run the same test from JMeter with required parameters / data and AFTA 2.0 provides with a custom sampler to select & run the same test from JMeter
With this enablement, simulating multiple requests and validating the application load is made easier. Also, Java based implementation and execution provides flexibility for any further integration with other tools (like Dynatrace)
Integration of test automation into Continuous Integration tool has proven to be the closest to being a silver bullet solution for challenges in frequent code deploys and resulting inadequacy in testing for code quality. The AFTA 2.0 offers seamless integration with CI tools like Jenkins, Bamboo, MS build and the selected automation scripts are triggered as and when a new build is committed to the version control tool.
With continuous integration, much more effective usage of the test automation framework is achieved and the return on investment is achieved faster as well. Other benefits include:
- Early defect detection by shifting left the testing cycle
- Improved application stability
- Enhanced test coverage
- Reduced test cycles resulting in cost savings
- Improved resource utilization and productivity
- Less piling up of defects
- Drive testing on par with the pace of development and delivery
AFTA Selenium 2.0 takes test automation framework to the next level with its multiple integrations and compartmentalization. It effectively harvests maximum capability of Selenium, delivering a complete package to ensure application quality; functional and otherwise. This framework encompasses NFR testing by leveraging the functional tests thus helping to realize the ROI at a faster upward curve by minimizing or cutting down significant portion of effort while offering no compromise on quality.
Latest posts by Jayanth krishnan (see all)
- Cloud – The way forward for Test Automation tools - July 3, 2017
- A Blueprint for Continuous Delivery - May 16, 2017
- Test Automation – Key enabler for Digital Transformation - May 16, 2017