Project summary: Our team designed, implemented, and supported Continuous Integration for the huge multicomponent telecommunication web application. Automated tests were created for complicated web application and REST services were covered with tests.
Automatic building and application testing infrastructure were created, Jenkins and a lot of its plugins were applied. Also we were engaged in Linux administration and automated administration. Test management process was organized. Continuous Integration was stabilized.
Technologies: Linux, Bash; Jenkins; Maven, Ant, Ivy; TestLink; Jira, Greenhopper; ClearCase, Perforce; TestNG, HtmlUnit, Sikuli, Selenium, WebDriver; WireShark; Java, Spring LDAP, ActiveDirectory, Apache POI, Jsoup, PdfBox, XPath, Groovy.
- Interface is based on GWT library and it was inconvenient for testing. For example, web elements’ id was generated automatically.
- Used complicated components which were unsuitable for Selenium testing were tested by Sikuli library.
- DDT tests usage - data of tests’ model was taken from xls file.
- Creation of entire range of application components building and installing scripts.
- Installation and setting of Jenkins and necessary environment for application assemblage and operation.
- Testable web-application was situated on several servers, part of application services were presented as separated servers with their own specific settings. One of the client demands was possibility of quick application installation on client’s servers.
- Jenkins’ Pipelines creation for the passing the whole cycle: source code updating, build, installation, testing. Builds parallelization.
- Separated team of developers (English and Russian speaking developers), these team members are situated in different hour zones (maximum difference was 11 hours).
- Continuous Integration was successfully embedded at all project phrases.
- Our team initiates a friendly understanding with Client. All unavoidable tense situations and complaints were settled in positive way.
- The previous incorrect tests were repaired.
- The environment for automatic assemblage and application testing was installed and adjusted.
- The tests for web and REST application parts and tests for complicated visual components using Sikuli library were written. New tests were done with more detailed checking.
- Customized Groovy letter templates for Jenkins were created. They filled with information of assemblage results.
- The client was satisfied with mutual cooperation results.
Company’s achievements during the project:
- Mind maps helped to explore the new domain knowledge in a short time.
- Almost all iterations were admitted by clients as successful.
- Within the project a fair amount of technologies and libraries were used for the first time ever.
- The test structure was changed. Tests were divided into several independents parts due to the dependence between the results of passing tests was decreased and code duplication was excluded. We’ve done the refactor of existing tests in a great measure and implemented OOP (Object-oriented programming). The tests reports became more informative and structured. The logging system was expended and exception handling was improved. It allows to make changes of existing tests more quickly and update up-to-date.