Automated Testing of a Web ERP Application
Client
ScienceSoft is currently collaborating with a Finnish Client in developing a comprehensive online ERP system. It performs such functions as work log and entry approvals, user and customer management, holiday and absence monitoring, reporting, and integration of the reports with the accounting systems for easy remuneration calculations. The ERP system itself is deployed in the Amazon environment.
Challenge
ScienceSoft's focus within this project is on bug fixing, new feature implementation, stabilization, and test automation. The system is distributed as an online SaaS to multiple end users on subscription, so it has to be flexible and scalable to meet the needs of businesses from different industries. Also, the response time and stability are crucial for this web application. To achieve all this, ScienceSoft’s team used automated regression testing for the system and implemented the continuous integration model.
Solution
The team of 3 ScienceSoft’s specialists (1 Senior QA Engineer as Team Lead and 2 Test Automation Engineers) had been cooperating with the Client’s developers using a web-based repository hosting service, GitHub.
Due to the lack of system specifications, test cases for each feature and function were written from scratch in Java, then they were reviewed and deployed on the open-source continuous integration server Jenkins (CI), which had been highly customized for the project's needs.
Selenium WebDriver was the main tool used to create browser-based automated regression tests and to configure and distribute scripts across many environments.
Results
Currently, 4 months after the project kickoff, over one-third of 500 system functions have been covered with thorough test cases written in Java. New test cases are continuously being added to the testing server and run automatically, triggered by the pre-defined system events, or on demand. The implemented solution makes the system reliable and allows for the addition and testing of new features, with the operations running smoothly.
Technologies and Tools
For test automation and continuous integration: Selenium WebDriver; GitHub; Jenkins CI; Java.
Other technologies used in the project: PHP; AngularJS; Symphony2; Apache Cordova; MySQL database; Bootstrap.js; Underscore.js; Hammer.js; jQuery; Grunt; Bower; fastClick.js.