Sustainable Development of Infrastructure Facilities System applying API and Load Testing

checklist
  • Duration: 4 months
  • Industries: Government sector
  • Services: Manual Testing Services; Software Integration Services
  • Software Categories and Types: Integration Solutions; Document Management Systems (DMS)
  • DevOps Expertise: CI/CD Basics
  • Technologies: Project Management, Collaboration and Bug Tracking; Jira; TestRail; Java; Apache Subversion (SVN); Frontend; Test Management Tools; IDE; Backend; Testing Frameworks; JavaScript; Apache HTTP Server; SoapUI; Oracle WebLogic Server; Test Automation; Source Code Management (SCM); Apache JMeter; dbForge Studio; Software Engineering and Management Tools; Confluence; Web and J2EE Servers, Java Runtimes
project-team
  • Team size (2):
  • 1 Project Manager
  • 1 QA Manual

Project summary

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.

Schematic description of the system for operations automation
Figure 1 - Schematic description of the system for operations automation

The system allows performing the following tasks:

  1. Recording and managing information about facilities.
  2. Keeping the facilities inspection register.
  3. Administering users and having a role model.
  4. Storing data about systemic events of facility changes and user actions.
  5. Generating reports.
  6. Interacting with external information systems.

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.

Technical description of the project

The system is implemented in a three-layer client-server architecture and is a combination of:

  • the client application (“thin” client in the form of a web browser);
  • applications server responsible for executing application logic;
  • databases server.
Scheme of a three-layer client-server architecture.
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:

  • Export web service intended for receiving (downloading) data from the system to an external system according to the specified parameters.
  • Import web service intended for adding, updating, and deleting (uploading) data to the system from an external system according to the specified parameters.

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.

Scheme of the system’s communication with external services
Figure 3 - Scheme of the system’s communication with external services

JazzTeam’s responsibilities

The main task of the JazzTeam engineers was the application quality assurance, specifically:

  • Performing test design with the use and updating of existing sets of checklists and test cases.
  • Performing functional testing of the system according to the approved test program and methodology.
  • Testing the new system design in conjunction with the old design to verify the identity of functionality.
  • Performing manual integration testing of each version of the system (with a new build release).
  • Registration of detected bugs in the Jira bug tracking system.

In addition to the basic tasks of testing the system’s functionality, the team had to deal with nontrivial tasks.

API testing

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.

System load testing

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:

  • development of the testing models that result in the identification of purpose indicators;
  • preparation of test scenarios;
  • development of scripts by using specialized testing tools;
  • performing load testing on a test bench the configuration of which is maximally close to the production bench;
  • analysis of test results and preparation of report documentation.

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 Request Defaults

Configuring HTTP Header Manager:

Configuring HTTP Header Manager

Configuring and using CSV Data Set Config:

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.

Technologies

Infrastructure‌:‌ ‌Jira,‌ ‌Confluence,‌ TestRail,‌ ‌SVN.‌ ‌

Other tools:‌ ‌dbForge‌ ‌Studio‌ ‌for‌ ‌Oracle, SoapUI, JMeter, Apache HTTP Server, Oracle WebLogic Server.

Project features

  • Interaction with a dozen of external information services for receiving (downloading) and sending (uploading) data related to the recording of industrial infrastructure facilities.
  • Testing the system in conjunction with the implemented application in the ‘old’ design – verifying the compliance of the execution of functions that were implemented in the ‘old’ application.
  • The need to perform load testing of the system.
  • The need to test the web services receiving and sending data through API by using special testing tools.
  • Verification of correct display of mapping information of facilities obtained from external systems.
  • Manual integration testing of each system version according to the available test program and methodology.
  • Benchmark Scrum with daily standups, sprint planning, demos, and retrospective.

Project results

  • The schedule of manual integration and regression testing on several application benches was approved.
  • Manual functional testing of the system in accordance with the customer’s documentation was performed.
  • The system’s load testing was performed. According to its results, the system fail-safety indicators under different loads were determined. Based on the obtained results, a report which determines the system’s compliance with the stated requirements was prepared.
  • The processes of downloading and recording information about facilities received through the API were tested.
  • More than fifty bugs were detected and recorded during the work.
  • The User Manual was completely revised and updated.

Company’s achievements during the project

  • The User Manual was updated according to the completely redesigned system.
  • The application was released into beta testing without any customer comments.
  • The system testing tasks were completed in full and within the timeframe set by the customer.

Clients about cooperation with JazzTeam

Youtube preview
Youtube preview

Related projects

By industries:Government sector

Recent Work

    Contact Us

    What happens next?
    • 1

      Leave your project request. We will contact you and schedule a call.

    • 2

      Signing of the NDA to ensure the project info confidentiality.

    • 3

      Negotiation of your request and the required services.

    • 4

      Team forming, coordination of workstages.

    • 5

      Contract signing and project start.