Digital transformation is a challenging process for public institutions. It often requires building a complex ecosystem of platforms serving many different functions for many different users. Establishing efficient digital public services is costly and takes a lot of time. But it doesn’t have to be this way.
The GovStack initiative aims at leveraging the collaborative efforts of the community, and constructing a shared base of solutions. SolDevelo contributed to the project by implementing an effective test framework, integrating openIMIS with the system, and providing designs for the platform.
GovStack was created by a collaborative effort between the Federal Ministry for Economic Cooperation and Development, Gesellschaft für Internationale Zusammenarbeit (GIZ), the Government of Estonia, the International Telecommunication Union (ITU) and the Digital Impact Alliance.
The system’s purpose is to support public services digitization. It addresses some of the most daunting challenges faced by public institutions on their way to digital transformation: interoperability issues, doubled work, and limited scalability. To solve these problems, GovStack leverages the expert-driven, community-based collaboration, engaging diverse stakeholders to enhance government cross-agency architecture.
The initiative’s core mission is to establish a shared knowledge base and technical framework for essential, reusable, and interoperable digital components known as Building Blocks (BBs). Building Blocks are basically software modules that can be deployed and integrated in a standardized manner. While each Building Block is self-sufficient, they can be merged to achieve greater functionality.
These blocks are designed to provide the key features within the digital public services ecosystem. They can fit various different use cases, and be reapplied multiple times in different contexts. A few examples of such software components are the following: registration, payments, messaging, scheduling, security, data collection, eLearning, consent management, artificial intelligence, etc.
More details on the GovStack initiative and its mission can be found on our blog.
SolDevelo has been involved in the project since November, 2022. During our year-long collaboration, we’ve implemented several major improvements:
- Test Harness Framework,
- Gherkin scenarios + Tests,
- openIMIS integration into test harness,
- UX/UI involvement;
- Use Cases example implementation documentation.
The huge part of our work revolved around establishing effective testing processes. The Building Blocks ecosystem relies on contributions from many different sources, and requires thorough testing procedures to ensure the components are compatible with the system, and meet specific quality standards.
Test Harness Framework
The Test Harness Framework enables software vendors who wish to run their software in accordance with the BB specification to assess their compliance level with the API specification.
Its primary goal is to facilitate smooth integration into the GovStack Building Blocks repositories structure, and offer ongoing feedback on compliance levels. It is founded on the behavior-driven development (BDD) testing approach, with a central focus on minimizing the setup effort required by vendors. The framework aims to provide easy test execution options for the candidate applications.
- GitHub BB Repository: The central hub for all candidate applications and test suites. Its structure is crucial for the pipeline to determine existing test suites and applications under testing.
- CircleCI Pipeline: Is used to execute tests each time specification was changed or a new application was added.
- GovStack Testing WebApp: Beyond presenting results, the web app offers a granular look into each test case.
Operational flow of compliance testing
- Repository Input: Applications and test suites are gathered from the GitHub BB Repository.
- Structure Analysis: The CircleCI ORB uses a script to examine how everything is organized in the repository.
- Matrix Creation: It creates a list pairing applications with the appropriate test suites.
- Test Environment Setup: Before testing, a controlled environment is set up.
- Test Phase: Each application is tested with its matching test suite.
- Result Compilation: After testing, the results are sent to the Testing WebApp and stored in the database.
- Review: Developers can then access the Testing WebApp to see and analyze the test results.
Gherkin scenarios + Tests
Tests for the API compliance (and other Test Suites in the future) are based on the Gherkin scenarios with syntax readable for non-technical users. With the structure of:
``` Given some state When some action Then some result ```
It allows the user to easily discern what a given application is and isn’t capable of. This promotes effective communication and ensures that everyone involved has a shared understanding of the expected behavior of the software.
Furthermore, Gherkin scenarios promote a behavior-driven development (BDD) approach, aligning tests with user stories and business requirements. The focus on business goals ensures that the software is not just technically correct but also meets the needs of end-users. Gherkin scenarios also serve as living documentation, making it easier to maintain and update test cases as the software evolves.
Example of the results for Digital-Registry BB API.
openIMIS is an open-source Insurance Management Information System, dedicated to enhancing health insurance schemes. SolDevelo has been actively engaged in the development of openIMIS for many years. Using our vast experience in the topic, we were well-prepared to support the system’s integration with GovStack.
It was initially incorporated into the test harness as one of the first digital public goods under the digital registry Building Block specification. However, since the platform was not originally ‘GovStack Native,’ it required adjustments to align with the existing spec.
To achieve this, a custom API adapter for openIMIS was developed. This adapter acts as an intermediary, connecting client requests with the openIMIS GraphQL API, which is regularly used within the application.
Following the creation of the adapter, the next step was to integrate openIMIS into the testing harness pipeline. To accomplish this, a new OpenIMIS Docker image that included the adapter was generated and added to the BB Repository.
In terms of technical specifics, the test executor relies on the API being available at a specific host, ensured through proper route mapping. Additionally, the test execution process has specific requirements for the application’s data storage. During the test execution, required test data is injected into the openIMIS database through the test helper methods.
User-friendly and intuitive design was one of the essential elements of the project. The system needed to be quick to learn and easy to use in order to truly serve its purpose. Our UX/UI team was involved in the creation of the app from the very beginning, ensuring that its design meets the expectations.
As a result of thorough research and many discussions, the first version of the application was designed, serving as a base for further development of the app. The next step was to create the Information Architecture, and this was the longest and most demanding phase of the whole process, as the most important goal was to make the user path as smooth and intuitive as possible.
During the creation of the mockups, we came to the conclusion that we need to reduce the content displayed on the homepage as much as possible and give users the ability to filter, so that everyone, depending on their preferences, could easily find what they are looking for.
As a result of the whole process and many consultations, a platform was created. Key points of the design are listed below:
- Homepage contains the results of the compatibility of individual software with a particular BB.
- Users can search through the list of all softwares (and adjust the data displayed in the table by sorting option) or limit the data displayed by using filters in the left panel.
- By clicking on a specific row, the table expands and the list of BBs against which the software was tested is displayed.
- By clicking on a particular BB, users are taken to a new view with a list of all tests, and by clicking on a particular test, they can review each scenario.
- From this view there is also an option to export all tests, making it easier to monitor the progression of compliance tests.
More details on our contribution to the UX/UI design of the GovStack platform can be found in a separate blog post.
Egypt Deep Dive
During a deep-dive session, our team was tasked with presenting the test harness to the business and governmental leaders responsible for driving Egypt’s digital transformation.
Our objective was to demonstrate how we could improve the intricate and error-prone process of ensuring compliance with specific standards. We’ve not only encompassed the fundamental concepts underlying the test harness but also delved into its technical intricacies and its business value.
Our presentation served as a testament to how the test harness was not merely a technical innovation but also a strategic enabler of value within the dynamic digital evolution.
Although this phase of our involvement in the project has been finalized, there already are plans for the future development of the GovStack platform.
The purpose of this feature is to expand the capabilities of the Testing Webapp. The GovStack system is planned to not only encompass API test results but also to provide a comprehensive view of overall compliance reports for each software category, including Deployment, Interface, and Requirements Specification compliance.
The aim is to enable Software Providers to submit their candidate applications for evaluation against GovStack requirements. This expansion will offer a more holistic approach to software compliance assessment within the system.
To achieve these objectives, we will enhance the Testing Webapp, allowing all users to access a summarized list of compliance reports for all software, along with the option to view detailed reports. It will mark products with “Approved” and “Rejected” statuses, ensuring clarity in compliance outcomes. Users with the “Approver” role will gain the ability to review Software with the “In Review” status, streamlining the approval process.
The next step on the roadmap is to add the integration of additional digital public goods into the pipeline, beyond only openIMIS. To achieve this, we will provide support to vendors for integrating their products into the pipeline, which precedes the integration into the sandbox environment.
The deliverable goal is to successfully integrate two digital public goods (DPGs) with the test harness and generate compliance reports for each. The specific candidates and Building Blocks for integration have not yet been finalized.
Nevertheless, the integration process for each DPG will involve the following steps:
- Creating Docker and initialization scripts to launch the product in CircleCI, or integrating an existing instance from an external server that it will point to.
- Configuring the scripts to launch the adapter (if necessary).
- Setting up CircleCI to automatically run tests whenever there is a code change in the examples directory corresponding to that Building Block (BB).
- Ensuring that the tests are executed, and a compliance report is generated.
SolDevelo has been engaged in the GovStack initiative for the past year, and managed to make significant contributions to the application.
We’ve implemented Test Harness Framework to enable easy and efficient testing for candidate applications, and based tests on Gherkin scenarios to provide the user with a comprehensive yet comfortable testing experience. We have also integrated openIMIS with the GovStack system, increasing the accessibility of this valuable solution. By involving a UX/UI team into the development process, we made sure that the application is intuitive, user-friendly, and meets the design quality standards.
It was a valuable experience for our team to take part in this project, and we are looking forward to its further development.