Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 13 Next »

mifos_dw_etl_test_dataset.zip

The Requirements/Test Summary

This is (probably) a temporary wiki page showing details of manual testing of Data Warehouse 1.0.  Attached is the mifos 1.6.1 database backup (mifos_dw_etl_test_dataset.zip) which has the test data used during ETL testing.  This page gives some idea of what's involved in the ETL job that moves data from mifos to the data warehouse.  The actual Pentaho Data Integration job (CreateDataWarehouse.kjb) is in the business intelligence git repository (git://mifos.git.sourceforge.net / mifos/bi).  Manual testing was by query inspection and running against some standard reports (Loan Officer Detailed Report, MFI Progress Report, Due vs Collect Branch Report and Due vs Collected Loan Officer Report).

The Data Warehouse ETL job should...

  • copy over the simple 'dimensions' such as products, currencies, offices, personnels correctly
  • handle being run against an initialised mifos database
  • handle simple hierarchy (loan officer, center, group, client, loan/savings account) creation.
    Involves handling new entries and catering for status changes when making groups, clients and accounts active.  
  • handle when a client without a group membership is created and has its status changed and has a loan and a savings account. 
  • handle when a group without center hierarchy is created and has its status changed and has a client with a loan and a savings account and has its own savings and loan account as well. 
  • handle when a center has a savings account.
  •  
  • handle moving a client from one group to another in the same center. 
  • handle moving a client from one group to another in the same branch 
  • handle moving a client from one group to another in a different branch
  • handle removing group membership from a client. 
  • handle moving client with no group membership to another branch. 
  • handle a client with no group membership becoming a group member. 
  • handle a Loan Officer change for a client with no group membership. 
  • handle a Loan Officer change for a group with no hierarchy.
  • handle moving group with no hierarchy from one branch to anotherhandle removing group membership from a client.
  • handle center change for a group to center in same branch
  • handle center change for a group to center in different branch
  • handle adding a group hierarchy back to a center
  • should handle a Loan Officer change for a center
  •  
  • All savings transactions should link to the latest savings account entry that is 'open' (active or inactive but not closed) for the date matching the transaction action_date. 
  • All repayment transactions should link to the latest loan account entry that is 'active' (good or bad standing)for the date matching the transaction action_date 
  • All write off transactions should link to the loan account entry having a loan writeoff status.  
    Write-off account_action_id is 15 - 'AccountAction-LoanWrittenOff' 
  • All disbursal transactions should link to the latest loan account entry that is pre-active -  'AccountState-ApplicationApproved'standing or 'AccountState-DisbursedToLo
    (which is probably not used and deprecated) for the date matching the transaction action_date

Basic Copy Data and Status Tests

Requirement

Test

Result

Copy over the simple 'dimensions' such as products, currencies, offices, personnels correctly

Note:
It is possible to create queries to test this more exactly.  
I didn't this time because I've used this simple area a lot and chose
to only do inspection so as to spend more time on the riskier areas  (customers, accounts and transactions).

Setup up an office hierarchy, some loan and savings products, some system users (loan officer and non loan officers) and run ETL

Pass.  
Looked good on simple inspection using queries and also current reports.

Handle being run against an initialised mifos database

Note:
This requirement is just in case this edge case produced unexpected results.  When testing, had to ensure the
 ETL job points to the correct source and destination database names by inspecting and editing the initialise dataware house 'bat' file I used and the jndi settings for kettle and the jndi setting for the bi server (for running reports)

run ETL against an initialised mifos 1.6.1 database

Pass

Handle simple hierarchy (loan officer, center, group, client, loan/savings account) creation.  
Involves handling new entries and catering for status changes when making groups, clients and accounts active.

Setup a center hierarchy down to clients having loan and savings accounts
Result

Pass.  All new customers and accounts are added to the datawarehouse as expected

Handle when a client without a group membership is created and has its status changed and has a loan and a savings account.

Client:  BO 1 / client w/o group mem xxx 0003-000000028
Savings: savings product 1  000100000000052 
Loan: loan prod 1 # 000100000000053

Pass. New client and accounts are added to the datawarehouse as expected

Handle when a group without center hierarchy is created and has its status changed and has a client with a loan and a savings account and has its own savings and loan account as well.

Group: group w/o center hierarchy 0004-000000029 
Group Loan: group load # 000100000000055 
Group Savings: group savings product # 000100000000056 
Client: client of group w/o center xxx 0004-000000030
loan: loan prod 1 # 000100000000059
Savings: savings product 1 # 000100000000058

Pass. New group, client and all accounts are added to the datawarehouse as expected

Handle when a center has a savings account.

Center: center with savings a/c 0004-000000031
savings: center savings # 000100000000061

Pass. Center and savings account added as expected.

Customer Hierarchy Change Tests

Note: There are 3 types of change.  New, Hierarchy and Status and if they occur on the same day they are processed in the order New, Hierarchy then Status.  This means it can be technically wrong.  For example,  if you create a client, make her active then move the client to another group all on the same day it will show as new client, move to new group, make active.  Couldn't distinguish which event was first because auditing in mifos is at a day level.

Requirement

Test

Result

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Transaction Tests

Requirement

Test

Result

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • No labels