GSOC 2024: Improve Integration Tests Coverage

Hey everyone,

I’m interested in the GSOC 2024: Improve Integration Tests Coverage

Project Overview:
The current Service Layer Integration tests cover only a few components. This project aims to enhance integration test coverage for critical components within the application. Integration tests play a pivotal role in validating interactions between various modules and ensuring the seamless functioning of the entire system.

Based on the analysis, there seem to be only two classes, namely PatientServiceTest and PersonServiceTest, that currently contain integration tests.

  1. Test Management:
  • The service layer facilitates the management of tests, including CRUD operations (Create, Read, Update, Delete) for tests.
  • It allows for retrieving tests by various criteria such as ID, name, method, etc.
  • Activation and deactivation of tests are supported, providing control over the availability of tests in the system.
  1. Localization:
  • The service layer handles localization aspects related to test names and reporting names.
  • It manages the localization of test names based on the current locale and provides methods to fetch localized test names.
  1. Data Retrieval:
  • Test-related data retrieval is supported, including fetching test results, panels, test sections, etc.
  • Methods are available to retrieve tests associated with specific test sections or methods.
  1. Business Logic:
  • The service layer encapsulates business logic related to tests, such as determining if a test is fully set up, retrieving the type of sample associated with a test, determining the display type for test results, etc.
  • It also handles test name augmentation based on configuration properties, allowing for customization of test names.
  1. Error Handling:
  • Error handling mechanisms are implemented to catch runtime exceptions and log error messages, ensuring robustness and reliability.
  1. Initialization and Configuration:
  • The service layer initializes necessary configurations, such as setting up global variables and adding listeners for locale changes, ensuring proper functioning of test management functionalities.

The primary objective is to achieve a test coverage of at least 70% for the critical components within the Service Layer. This ambitious goal reflects our commitment to ensuring the application’s reliability, stability, and overall quality.

Some questions to consider

  • Integration Test Strategies: What integration testing strategies do we have to put into consideration while implementing our coverage? Are there any specific methodologies or frameworks that we have to utilize while we streamline the testing process?

  • Measuring Test Coverage: How will we measure and track test coverage throughout the project? Are there any specific metrics or tools that will be used to monitor the progress and ensure that the 70% test coverage goal is achieved?

This thread is open to mentors, and everyone who would like to add their thoughts on it
@Moses_Mutesasira @abertnamanya @caseyi @calebslane