  Test automation brings the potential to reduce costs and human effort, but
several aspects of software testing remain challenging to automate. One such
example is automated performance testing to find performance breaking points.
Current approaches to tackle automated generation of performance test cases
mainly involve using source code or system model analysis or use-case based
techniques. However, source code and system models might not always be
available at testing time. On the other hand, if the optimal performance
testing policy for the intended objective in a testing process instead could be
learned by the testing system, then test automation without advanced
performance models could be possible. Furthermore, the learned policy could
later be reused for similar software systems under test, thus leading to higher
test efficiency. We propose SaFReL, a self-adaptive fuzzy reinforcement
learning-based performance testing framework. SaFReL learns the optimal policy
to generate performance test cases through an initial learning phase, then
reuses it during a transfer learning phase, while keeping the learning running
and updating the policy in the long term. Through multiple experiments on a
simulated environment, we demonstrate that our approach generates the target
performance test cases for different programs more efficiently than a typical
testing process, and performs adaptively without access to source code and
performance models.
