Stability by Design: Data Driven Testing during Development of Paysheets Generation System

  • Duration: 4 months
  • Industries: IT Industry; Finances
  • Services: Product Development; Backend Development; Custom Software Development; Manual Testing Services; CI/CD Implementation & Modernization. DevOps Services; Software Integration Services; Software Maintenance and Support Services
  • Software Categories and Types: Workflow Management & Business Process Automation; ERP/CRM Systems; Document Management Systems (DMS); Payment & Billing Systems
  • IT Architecture Paradigms and Approaches: Test Driven Development (TDD); Data Driven Testing (DDT); Model Driven Development (MDD); Object-Oriented Programming (OOP)
  • Technical Expertise: Java Server Side Development
  • DevOps Expertise: CI/CD Basics
  • Technologies: JUnit / TestNG; Freemarker; Data Bases; Apache Log4j; Enterprise Architect; Apache Subversion (SVN); MySQL; Java; Java Enterprise Edition (EE); IDE; Build and Dependency Platforms and Tools; Backend; Testing Frameworks; Various Editors; Template Engines; Test Automation; Nexus; Galen Framework; Source Code Management (SCM); MySQL Workbench; Web Frameworks; CI/CD and DevOps; Jackson; Software Engineering and Management Tools; JavaMail API; Java Libraries; Apache Commons; Logging Libraries; Apache POI; Aspose.Cells
  • Team size (3):
  • 1 Project Manager
  • 2 Backend

Business component of the project

The product is a calculator for generating paysheets and sending them to the email addresses of the customer’s employees. The application is designed to simplify the process of paysheets generation by significantly reducing the time spent by the accounting department for routine mechanical operations.

Technical description of the project

A multi-module architecture is implemented in the application. There are 3 main modules below:

  • The main module represents a calculator which runs paysheet calculations. Based on the results of the calculation, an Excel document with salary data is created, in which the employee of the accounting department, if necessary, can make comments. After that, the main module will generate a finished paysheet. As a result, paysheets are clear and transparent to each employee of the company.
  • The module for sending emails that allows sending generated images of paysheets to the emails of the company’s employees. The module takes data about the employees to whom emails will be sent from the Excel file.
  • The analyzer module, which is responsible for statistics and allows finding out whether the user opened the sent email with the paysheet. So, the employee of the administration department understands that all specialists of the company received emails with their paysheets.


Programming languages: Java 8.

API: Aspose.Cells, Java XMail.

Infrastructure: Jenkins, IntelliJ idea, Jira.

Java libraries: Apache Commons, Apache POI, FreeMarker, Jackson.

Database: MySQL.

Version Control: SVN.

Test Automation libraries: TestNG.

Platforms: Nexus.

Logging libraries: log4j.

JazzTeam responsibilities

  • To develop an application for paysheets calculation:
  • to implement the solution for automatic generation of calculated data into a graphic file – an employee’s paysheet;
  • to automate the process of sending ready-made paysheets by email to the company’s employees.
  • To implement the application based on a modular architecture.
  • To apply in the course of development:
  • the test-driven development approach that allows creating simple and well-thought-out code;
  • the data-driven testing approach that will ensure verification of a large set of data in various combinations.
  • To ensure a high level of code coverage with Unit tests.
  • To create documentation describing the operation of the application.
  • To establish the CI/CD process on the project.

Project features

  • The focus was on creating Unit tests.
  • Error messages are displayed in the form of a text clear to a simple PC user, so that it is possible to clearly understand what bug occurred during program execution and how to fix it.
  • The application is based on a modular architecture, which in the future will allow to easily make changes to it and integrate individual modules into third-party applications.

Project results

  • The product was accepted by the customer and is functioning properly.
  • The application is based on a modular architecture.
  • The level of code coverage with Unit tests required by the customer was achieved.
  • Documentation with a description of the application operation was created.
  • Jenkins was used as a tool for CI/CD implementation on the project. It made it possible to increase the speed of product delivery and assembly.

Company’s achievements on the project

  • We developed a calculator on a modular basis for the generation of paysheets and their automatic distribution from scratch.
  • Test-driven development and data-driven testing approaches were used for the development. The code is covered by many Unit tests, which reduces the risk of bugs that may emerge during production.
  • The application was accepted by the customer and implemented in the company. The customer is satisfied with the result.
  • The use of CI/CD allowed to optimize testing. During regular assemblies, a series of autotests are carried out to check the code operability. So, the code is constantly monitored for bugs.


Clients about cooperation with JazzTeam

Related projects

By industries:IT Industry

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.