Scenarios

  1. Database Ids may overflow over time. It may have developed unnecessary gaps in Ids.
  2. The system leaks memory slowly and has to be restarted
  3. The system becomes slower over time and has to be restarted
  4. The system becomes slower with increase in database size
  5. Individual services runs out of threads
  6. Individual services runs out of database connection allocated to them
  7. The system is not reporting the errors
  8. The system is using more disk space than it is should
  9. On machine restart the services do not come back up
  10. On service restart it doesn't become available for service
  11. Active to Passive data replication is not happening
  12. Automatic switch back from active to passive doesn't work
  13. Automatic switch back from passive to active doesn't work
  14. Database connection becomes stale if not used for some time
  15. Failed events do not resolve on their own (including scenarios of restart of services)
  16. A very large file is uploaded causing server to become less responsive
  17. Redirect loop causes denial of service (low priority)
  18. Inefficient report slows down or hampers the production operations

Manual Testing
Automated Testing

Automation

The above scenarios need to be tested manually or in an automated fashion.

Environment

Functional Tests

Setup an environment with enough disk space, cpu and memory. Ensure that all the basic scenarios are covered by the functional tests. Run these tests continuously for days.

Environment Configuration

The system should be configured such that after it gives warning it continues working for sometime. For example, if OpenMRS runs out of number of threads 

Connection Pool Size

Sub-SystemServicePool NameMinMaxIncrement
OpenMRSApplicationdefault   
OpenMRSDynamic Reportsdefault   
OpenELIS     
OpenERP     
OpenERPAtom Feed Service    
Jasper Reports     

Thread Pool Size

Sub-SystemServicePool NameMinMaxIncrement
OpenMRSApplicationdefault   
OpenELISApplication    
OpenERPApplication    
OpenERPAtom Feed Service    
Jasper Reports     

Database

ServerDatabaseMax Connections
MySQLOpenMRS 
PostgreSQLOpenELIS (clinlims) 
PostgreSQLOpenERP 
MySQLJasper 

Tomcat

   
   
   
   

Monitoring

Troubleshooting