Improving reliability of an application
We are already aware of the benefits of automated testing. It brings speed, accuracy, reusability, and scalability to the testing process. But can it be used in other ways? Like Reliability Testing.
What is reliability testing? Why is it important?
A Reliability Test can be defined as testing an application over extended period to check for performance degradation over time and for early detection of failures in the field.
Usually, testing is done on a newly developed feature or a bug that was fixed. We also test for integration of features in an application or perform regression test to check if the application breaks anywhere. But all these are short execution cycles, and don’t show how an application performs over extended period when used in the field.
Business Need:
The system simplifies the process of collecting, monitoring and managing data for routine EEG testing, ambulatory EEG, long-term monitoring, ICU monitoring, and research studies. The system is scalable to meet the needs of private practice clinics, hospitals and large teaching facilities. It is a single solution for EEG, LTM, ICU, Sleep, and Research Studies, exhibiting an advanced software for clinical excellence. The system has a Microsoft SQL-based database which is used to store data, track outcomes in the reports generated by the system. The distributed database automatically updates system settings across the network to ensure that all workstations have current lab settings. But since this application was developed long back, client was unsure that Decos would even be able to automate the testing protocols. It was also crucial for them to know how the application will behaves after 3 days or 1 week or say 1 month of continuous usage in hospitals and clinics, because if it failed during a critical neuro-study, it would have a huge impact on the product reliability.
2. Solution Implemented
Ranorex® was chosen after evaluating multiple automation testing tools as it best suited our needs and offered its robustness, flexibility, and its ability to support both web and desktop applications. Our value proposition to the client included below USP’s:
- Automating the top fifteen most used workflows as first phase delivery, showcasing Decos abilities and giving customer the confidence that this was achievable.
- Prepare automated scripts which will run continuously for weeks if not months to check the stability of the application. Automate the most common workflows so that they can be executed along with functional, regression and stress tests that will be executed during the stability runs.
- Keep a track of system resources like memory, CPU consumption, GDI handles to check for memory leaks, race condition in the application.
- Generate and email customized test execution reports which give details of application stability.
3. Benefits Derived
Some of the key benefits of this big modernization project, were -
- Reduced human efforts of testing complex scenarios up to 80%. In specific scenarios we reduced it from 19 days to 2 days (elapsed days).
- During Covid period, enablement of remote testing was very helpful
- Improved test coverage
- Significantly reduced human prone errors
- Identified memory usage improvement areas by tracking memory footprint (CPU usages and GDI units)
- Test script-bank created allowing reusability and saving time and efforts of testers It also allowed for On-Demand execution of tests.
- Automated test reports for faster feedback, first step towards Continuous Integration.
Through manual testing, we were unable to replicate the memory leakage related issue in the production environment. However, the script-based automation testing not only helped in replicating these issues but also in identifying the root cause. It also resulted in saving recurring testing efforts.
Ready to enhance your application's reliability? Connect with Decos today for tailored testing services.