Performance Testing of an Injection Management App
The Customer is a US-based healthcare technology provider that develops treatment management and analytics products for patients and medical professionals. The Customer has a stable partnership with ScienceSoft for the past two years, relying on ScienceSoft's cybersecurity team for regular security checkups of the Customer's healthcare solutions.
The Customer was concerned about the low performance and stability of one of its products, an Android app used for injection self-administration management. The app's backend runs on AWS. Lacking performance testing skills in-house, the Customer was looking for a reliable vendor to assess the app's performance and find the bottlenecks affecting it.
Having cooperated with ScienceSoft for over two years on security testing and being satisfied with the quality of our services, the Customer turned to ScienceSoft again — this time to conduct performance testing of the injection management Android app.
Using Apache JMeter and Amazon CloudWatch as their primary tools, ScienceSoft's test engineers conducted load and stress testing of the app’s API server and database and gathered the following performance data:
- The average response time of the transactions was less than 3 seconds until the load reached its maximum level of 43 transactions per second.
- The server performed well under continuously high load, which was determined as 80% of the maximum test load of 43 transactions per second.
- Under continuously high load, an average API response time was less than 0.8 seconds in 95% of the cases.
- API server CPU consumption was below 50% during load testing and reached 75% during stress testing.
- The DB hardware consumption was stable and low.
During testing, ScienceSoft revealed several bottlenecks:
- High CPU consumption of the API server.
- Duplication of requests from the app to the server.
To improve the performance of the app, ScienceSoft outlined the remediation measures:
- Add memory consumption monitoring for the API and the database servers to have a clearer picture of the app's performance.
- Scale up the API server and perform scalability testing to see if it is the API server that causes a bottleneck, check how increased API server resources influence the app's performance, and measure the app's capability to scale under the increased load.
- Inspect the application code to find the root cause of the duplicate requests. Once the issue is fixed, the response time can be decreased by 50% and the network consumption can be reduced by 60%.
The entire performance testing project took 3 weeks, from planning to delivering the final report. To protect ePHI and meet the US healthcare regulatory standards, ScienceSoft used a mock data set instead of the real sensitive data stored in the application.
As a result of the performance testing by ScienceSoft, the Customer received a detailed report on the application's performance bottlenecks. With the actionable remediation guidelines provided by ScienceSoft, the Customer could eliminate the discovered performance issues and ensure stable work of the application.
Technologies and Tools
Apache JMeter, AWS (Amazon EC2, Amazon Relational Database Service, Amazon CloudWatch), Fiddler, Atlassian Jira