Context: Performance-related failures of Distributed and Real-Time Software Systems (DRTS's) can be very costly, e.g., explosion of a nuclear reactor. We reported in a previous work a stress testing methodology to detect performance-related Real-Time (RT) faults in DRTS's based on the design UML model of a System Under Test (SUT). The stress methodology aimed at increasing the chances of RT failures (violations in RT constraints). Objective: After stress testing a SUT and finding RT faults, an important immediate question is how to fix (debug) those RT faults and prevent the same RT violations in the future and after deployment. If appropriate solutions to this challenge cannot be found, stress testing and its findings (detection of RT faults) will be of no or little use to the quality assurance goals of the development team. Method: To move towards systematically solving performance-related problems causing RT faults, we develop a customized version of the standard Software Performance Engineering process and conduct an experiment on a DRTS. The process is iteratively applied to a SUT, while results from stress testing reveal that there are still scenarios in which RT constraints are violated. Results: Application of the performance engineering paradigm in this context on a real DRTS enables systematic analysis of performance-related defects and their fixations. Conclusion: The contributions of this work are an initial approach to software performance engineering based on stress testing, and an analysis, based on experimentation, of the open issues that need to be addressed in order to improve the approach.
- Distributed Real-Time Systems
- Performance tuning
- Software Performance Engineering
- Stress testing
ASJC Scopus subject areas
- Information Systems
- Computer Science Applications