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, NAT, GIT, GitLab, JavaScript (Java Applet testing), HTTPS, SSL.
Project features
- 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 a possibility to install quickly the application 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, these team members are situated in different hour zones (maximum difference was 11 hours).
Project results
- 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 building 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 independent parts, that decreased the dependences between the test results tests and excluded code duplication. 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 them.
- Using Sikuli we tested the interface which is presented as diagram image interactions with which were handled with JavaScript (a user commit an act -> JavaScript send the data to server -> the server generate new image and send it to the user).