Persons & Families module test plan and validation
This page summarizes the openIMIS features that were determined in the analysis and therefore tested for delivery for the Persons & Families module.
The module features are, among others, used within the scope of Beneficiary Enrollment business processes. However the testing is determined for the use of the module at hand, and not interactions between different modules. An overall cross-sectional testing will need to be done at the end of the migration process. Please note that because of this, some buttons are not functional in this version of the module as they would direct to the Policies or Contributions modules that have not yet been migrated. Their functionalities will be updated once the other modules are available.
Access rights
An insuree/family is attached to a health facility (as First Service Point). Besides role-based feature access control (cf. Actors and Roles here below), all insuree/family management actions (querying, entering, ...) are limited by user’s location(s) scope: users can only access/manage insurees/families listed for their registered health facilities.
For the testing process, each page is tested through three scenarios in relation to the user roles:
No access: for roles that are not allowed to view insuree and family information
Read-only: for roles that have access to the data but cannot add, modify or delete it
Read and write: for roles that have access to the data, and are allowed to add, modify or delete it
Though pages are available to all, access to the data is restricted.
Here below are described the various access rights that have been set up and tested. Each page has been tested for the various access scenarios described above (no access, read-only, and read and write).
The testing here-described covers the Insuree and Policy module, and more specifically the Add Family/Group, Families/Groups and Insurees pages.
The test is limited to the features, filters and fields migrated from the legacy and mentioned in the analysis.
Actors & Rights
Health Facilities staff
Receptionist
As a receptionist I want to be able to search and view insuree data (in the scope of claim entering). I cannot modify, add or delete information to the insuree or family. My access to insuree data is read-only.
Role will be validated if
Receptionist role exists
Receptionist can search for insuree and family data through the fields and filters provided
Receptionist does not have write permission
Scheme administrator & district Staff
Clerk & Enrolment Officer
As a clerk or enrolment officer, I want to be able to search, create, modify and delete insurees and families. My access to insuree data is read and write.
Role will be validated if
Clerk & Enrolment Officer roles exists
Clerk & Enrolment Officer can search, create, modify and delete insurees and families
Accountant
As an accountant I want to be able to search for insurees and families (in the scope of contribution management). My access to insuree data is read-only.
Role will be validated if
Accountant role exists
Accountant can search insurees and families
Accountant does not have write permission
Other roles
The other roles (Claim Administrator, Claim Contributor,…) are NOT allowed to search and therefore see the details of insurees and families.
Manager, Medical Officer, Scheme Administrator, IMIS Administrator
Other IT System (API calls)
Enter insurees/families
List (active) insurees/families
The API calls are either authenticated as an actual user and submitted to the same rules as tested in the user interface or with extensive authorizations and therefore cannot be tested here. The API authorization tests are included in the code of the application where suitable.
Insuree and Policies
Add a Family
Note:
When creating a new Family/Group, user is required to provide the Family and Family Holder (who is an insuree) at the same time. In the database schema, there are 2 ‘opposite’ foreign keys: one from tblFamilies to tblInsuree and one from tblInsuree to tblFamilies. Since FK fields are ‘not null’ on both sides, the only way to add records in these tables (from django model) is to continuously activate/deactivate the FKs.
In order to prevent this, we will made (via django migration) the FamilyID field in tblInsuree table optional. This allows us to create the Insuree entity without any reference to a Family… and once the Family created (with a mandatory FK to an Insuree for the family holder), reference the Family it belongs to (FamilyID).
As a user with no access or read-only, Add a Family options are impossible at all times.
As a user with a read and write role, in the Add a Family page I want to be able to
Add a new family from scratch
Add a new family by importing an existing Insuree as Family Head
Fields available for creation of new families are the same as legacy.
TEST:
No access | Read-only | Read and write | Tested | |
I can add a new Family to the system | FALSE | FALSE | TRUE | TRUE |
I can create a new Family with an existing Insuree as head of Family | FALSE | FALSE | TRUE | TRUE |
All fields behave the same way as in Legacy | TRUE | TRUE | TRUE | TRUE |
All fields available in Legacy are in the form | TRUE | TRUE | TRUE | TRUE |
Families/Groups
Note about the ‘historical’ checkbox:
The search in ‘historical’ values makes the assumption that archiving is performed “in live table”. This mechanism is under review (for performance reasons). This criteria may not be available anymore (depending on the new archiving mechanism chosen).
As a user with no access, search results stay null at all times.
As a user with a read-only or read and write role, in the Families/Groups page I want to be able to search for Families or groups using the search criteria available.
Search criteria
All search criteria from legacy are available, and families can now also be searched based on head of family or family member
Results are filtered as information is added to the search criteria
Removing a search criteria automatically refreshes the results with the remaining selected criteria
Location criteria are decision-tree based, so if a superior criteria is removed the lower ones are removed as well
Criteria can be typed in if choice is more than 10 results. If there are 10 or less results a drop-down list is available
Search criteria are kept in the form when switching to a different page
A refresh button is available to remove all search criteria selected
Results
Pagination of results to avoid scrolling
Column sorting is available
Family page
Payment summary list contribution (on top of or as replacement of contributions)
TEST:
No access | Read-only | Read and write | Tested | |
Search | ||||
Each field is clearly labeled and works the same way it did in Legacy | TRUE | TRUE | TRUE | TRUE |
I can select locations and the options available in other fields are filled in or filtered | FALSE | TRUE | TRUE | TRUE |
If a filter contains 10 options or less I have a scroll menu to be able to select the variable. If there are more than 10 options I can type in a word and options are made available in a scroll menu | FALSE | TRUE | TRUE | TRUE |
I select some search criteria, I change page, I come back to my search and all criteria previously selected are still active | FALSE | TRUE | TRUE | TRUE |
I can click on a button to remove all search criteria selected | FALSE | TRUE | TRUE | TRUE |
Results | ||||
I can use the various filters the results are selected based on my choices | FALSE | TRUE | TRUE | TRUE |
I can remove search criteria the results are selected based on remaining filters | FALSE | TRUE | TRUE | TRUE |
I can remove locations from search criteria all locations below that removed are removed | FALSE | TRUE | TRUE | TRUE |
Results are displayed in pagination. I can choose how many rows per page to meet my needs. | FALSE | TRUE | TRUE | TRUE |
I can sort results by column. Sorting is only on one column at a time | FALSE | TRUE | TRUE | TRUE |
Family Details
As a user with no access, I cannot view Family details.
As a user with a read-only or read and write role, in the Family details page I want to be able to:
See the Family information as in Legacy
See members, and access member details
Select head of family amongst the Family members
View policies Family subscribed
View only last active policy or last expired policy
View contributions of Family
View payments of Family
TEST:
No access | Read-only | Read and write | Tested | |
All fields behave the same way as in Legacy | TRUE | TRUE | TRUE | TRUE |
All fields available in Legacy are in the form | FALSE | TRUE | TRUE | TRUE |
Family details are visible (family head and members) | FALSE | TRUE | TRUE | TRUE |
I can add a Family member | FALSE | FALSE | TRUE | TRUE |
I can access Insuree details pages | FALSE | TRUE | TRUE | TRUE |
I can change the head of family | FALSE | FALSE | TRUE | TRUE |
I can view policies | FALSE | TRUE | TRUE | TRUE |
I can choose to show only last active or last expired or all policies | FALSE | TRUE | TRUE | TRUE |
I can add a policy | FALSE | FALSE | TRUE | TRUE |
I can view contributions | FALSE | TRUE | TRUE | TRUE |
I can add a contribution | FALSE | FALSE | TRUE | TRUE |
I can view payments | FALSE | TRUE | TRUE | TRUE |
I can add a payment | FALSE | FALSE | TRUE | TRUE |
Family is displayed in pagination. I can choose how many members per page to meet my needs. | FALSE | TRUE | TRUE | TRUE |
Insurees
Note: same remark as in Find Family about the ‘historical’ checkbox - it relies on current archiving mechanism (which is under review)
As a user with no access, search results stay null at all times.
As a user with a read-only or read and write role, in the Insurees page I want to be able to search for Insurees using the search criteria available.
TEST:
No access | Read-only | Read and write | Tested | |
Search | ||||
Each field is clearly labeled and works the same way it did in Legacy | TRUE | TRUE | TRUE | TRUE |
I can select locations and the options available in other fields are filled in or filtered | FALSE | TRUE | TRUE | TRUE |
If a filter contains 10 options or less I have a scroll menu to be able to select the variable. If there are more than 10 options I can type in a word and options are made available in a scroll menu | FALSE | TRUE | TRUE | TRUE |
I select some search criteria, I change page, I come back to my search and all criteria previously selected are still active | FALSE | TRUE | TRUE | TRUE |
I can click on a button to remove all search criteria selected | FALSE | TRUE | TRUE | TRUE |
Results | ||||
I can use the various filters the results are selected based on my choices | FALSE | TRUE | TRUE | TRUE |
I can remove search criteria the results are selected based on remaining filters | FALSE | TRUE | TRUE | TRUE |
I can remove locations from search criteria all locations below that removed are removed | FALSE | TRUE | TRUE | TRUE |
Results are displayed in pagination. I can choose how many rows per page to meet my needs. | FALSE | TRUE | TRUE | TRUE |
I can sort results by column. Sorting is only on one column at a time | FALSE | TRUE | TRUE | TRUE |
Add Insuree
As a user with no access, search results stay null at all times.
As a user with a read-only or read and write role, in the Add Insurees page I want to be able to create a new insuree, or add a new insuree to a family.
There are two ways to add an insuree.
The insuree is created and then linked to a family - on insuree page click on the Create new insuree button to create an insuree.
The family is selected and the insuree is added to the family - on family page at top of members list click on
Add (move) existing insuree into family
Create new insuree in family
TEST:
No access | Read-only | Read and write | Tested | |
I can add a new Insuree to the system | FALSE | TRUE | TRUE | TRUE |
I can create a new Insuree within an existing Family | FALSE | TRUE | TRUE | TRUE |
I can edit Insuree details and save them | FALSE | TRUE | TRUE | TRUE |
All fields behave the same way as in Legacy | TRUE | TRUE | TRUE | TRUE |
All fields available in Legacy are in the form | TRUE | TRUE | TRUE | TRUE |
Batch processing
Today nested in Policy renewal batch processing, there is a batch to identify insurees for which the photo is missing/outdated. This batch will be (technically) split from the policy renewal (sys admins will be able to schedule it in the same time frame but it will be a separate job).
Out of scope
When modifying the family composition, the Policy valuation must be updated.
Policy (re-)valuation is part of the Policy module. This module will call Policy module service, which will, in a first step, use the legacy business logic (uspAddInsureePolicy,…). When the Policy module will be migrated, Policy (re-)valuation service will be ported from stored proc to python.
Did you encounter a problem or do you have a suggestion?
Please contact our Service Desk
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. https://creativecommons.org/licenses/by-sa/4.0/