The project is a system for the automation of operations of organizations that keep records of information about the operation, installation, maintenance, and repair of industrial infrastructure facilities. The system automates business processes of collecting, accounting and providing reference and analytical information about the current state of facilities. The system functionality makes it possible to quickly obtain information about industrial infrastructure facilities, their characteristics, state, location, and interconnections for making decisions when performing various works.
Figure 1 – Schematic description of the system for operations automation.
The system allows performing the following tasks:
Within the framework of receiving, processing, and sending the necessary data about facilities, the automated system interacts with dozens of various services responsible for receiving, processing, uploading, and downloading information, sending notifications, transferring electronic documentation, etc.
The system is implemented in a three-layer client-server architecture and is a combination of:
Figure 2 – Scheme of a three-layer client-server architecture.
Communication between the client application and the applications server is implemented through Apache HTTP Server, which receives user requests from the browser and then sends them to the databases server. For the processing of received requests through the Oracle database management system, a connection to the databases server is made. The database management system processes data upon user request and displays the received reply.
The system uses the following web services for communicating with external services via API:
Communication of external services with the system is performed in XML format. Access to the services is provided through a user identification system by username and password.
The scheme of communication via web services is shown in Figure 3.
Figure 3 – Scheme of the system’s communication with external services.
The main task of the JazzTeam engineers was the application quality assurance, specifically:
In addition to the basic tasks of testing the system’s functionality, the team had to deal with nontrivial tasks.
One of such tasks was testing web services for receiving and sending data related to automated system facilities with the use of API, as well as checking the correctness of the system’s processing of data obtained during interaction with associated information systems. Such data includes obtaining data on facilities, reporting documentation, reference information, work of the area map.
API testing was performed using the SoapUI web services testing tool.
The testing process was based on the verification of received data related to facilities resulting from interaction with the systems and the analysis of errors between the systems when they occur.
Another task of the manual QA engineer was to perform the system load testing in order to determine the maximum performance of the system at different system loads and to determine the system’s compliance with its purpose indicators.
The following tasks were completed during load testing:
Description of the load testing process
The process of creating the load on the system was based on a gradual increase of the number of simultaneously working users imitating the performance of actions in the system until the specified maximum value.
The Apache JMeter tool was used to prepare the scripts and perform load testing, taking into account the specified purpose indicators. Emulation of the load from virtual users was performed via HTTP protocol.
Using and setting up additional elements of JMeter configuration, such as HTTP Header Manager and HTTP Request Defaults allow making the work of virtual users closer to the real behavior when working in a browser, loading embedded resources of the system, and using test data put in a CSV file.
Configuring HTTP Request Defaults:
Configuring HTTP Header Manager:
Configuring and using CSV Data Set Config:
The load testing process resulted in analyzing the data obtained during the performed tests and preparing a report for the customer. The analysis of load testing determined that the configuration of the tested system complies with the required purpose indicators.
Infrastructure: Jira, Confluence, TestRail, SVN.
Other tools: dbForge Studio for Oracle, SoapUI, JMeter, Apache HTTP Server, Oracle WebLogic Server.