Καθώς οι υπηρεσίες διαδικτύου (Web Services) αρχίζουν και αποτελούν ολοένα και βα-
σικότερα τμήματα μοντέρνων διαδικτυακών συστημάτων λογισμικού, η ύπαρξη αυτόματων
και εύχρηστων αλλά ταυτόχρονα και εκφραστικών προγραμμάτων ελέγχου για υπηρεσίες
διαδικτύου καθίσταται όλο και σημαντικότερη. Η διπλωματική αυτή στοχεύει στον πλήρως
αυτοματοποιημένο έλεγχο υπηρεσιών διαδικτύου: Ιδανικά, ο χρήστης απλά περιγράφει ιδιό-
τητες που οι υπηρεσίες πρέπει να ικανοποιούν, με τη μορφή σχέσεων εισόδου-εξόδου, και το
σύστημά μας αναλαμβάνει τα υπόλοιπα. Σε αυτή τη διπλωματική περιγράφουμε αναυτικά
όα τα επιμέρους τμήματα του εργαλείου που φτιάξαμε: Πώς οι προδιαγραφές (WSDL) μιας
υπηρεσίας διαδικτύου χρησιμοποιούνται για να παραχθούν με αυτόματο τρόπο γεννήτριες
συντακτικά ορθών τυχαίων δεδομένων και ιδιότητες, οι οποίες μπορούν να δοθούν στο PropEr,
ένα εργαλείο ελέγχου μέσω ιδιοτήτων, ώστε να κληθούν οι μέθοδοι της υπηρεσίας διαδικτύου
και να ελεγχθεί η απόκρισή τους. Παρόλο που η διαδικασία είναι πλήρως αυτοματοποιημένη,
το εργαλείο δίνει τη δυνατότητα στο χρήστη να αλλάξει το παραγόμενο αρχείο ελέγχου που
περιέχει τις ιδιότητες και τις γεννήτριες ώστε να έχει μεγαλύτερο έλεγχο στην όλη διαδικασία
και να μπορέσει να ελέγξει πιο στοχευμένα την λειτουργικότητα της υπηρεσίας διαδικτύου.
With web services already being key ingredients of modern web systems, automatic and
easy-to-use but at the same time powerful and expressive testing frameworks for web
services are increasingly important. Our work aims at fully automatic testing of web
services: ideally the user only specifies properties that the web service is expected to
satisfy, in the form of input-output relations, and the system handles all the rest. In this
thesis we present in detail all the components which form this system: how the WSDL
specification of a web service is used to automatically create test case generators and
properties that can be fed to PropEr, a property-based testing tool, to create structurally
valid random test cases for its operations and check its responses. Although the process
is fully automatic, our tool optionally allows the user to easily modify its output to either
add semantic information to the generators or write properties that test for more involved
functionality of the web services.