Testing is an aspect of developing RESTful Web services that is still underrepresented in public discussions. Nevertheless it is an important topic in distributed system development in order to ensure implementation quality and manage system changes over time.
This presentation explains the nature of the contract between clients and servers in RESTful systems and how it influences the way in which we should approach testing. Specifically it will be shown in which ways RESTful Web services can violate this contract and what kinds of black box tests apply to detect such failure conditions. In addition it will be discussed how regression testing can be used to verify correct evolution of services.