Software components need to fulfil a number of non-functional requirements on top of the natural functional requirements. In particular for scalable systems, it is important that performance requirements can be met when popularity of the service dramatically increases. Thus, the possibility to experiment at a very early stage to predict how a service behaves with respect to certain non-functional requirements is highly desirable.
In this tutorial we show how to apply property-based testing for validation of non-functional requirements in a web service. This tutorial uses QuickCheck properties to create many different load and user profiles that exercise a wide variety of aspects of the system. Megaload* performs and automates the execution allowing to test large deployed systems.
*Megaload is a scalable and customizable load testing tool written by Erlang Solutions.a
Slides
Diana discovered Erlang in 2007 while studying at University of La Coruña (Spain). Since then, she has been involved in both commercial and research Erlang projects in Spain and UK. Currently, she is a researcher in the PROWESS project at Erlang Solutions where she focuses on performance testing. Github: dcorbacho