dc.contributor.author |
Σταθόπουλος, Παύλος
|
el |
dc.contributor.author |
Stathopoulos, Pavlos
|
en |
dc.date.accessioned |
2021-02-18T07:34:42Z |
|
dc.date.available |
2021-02-18T07:34:42Z |
|
dc.identifier.uri |
https://dspace.lib.ntua.gr/xmlui/handle/123456789/52897 |
|
dc.identifier.uri |
http://dx.doi.org/10.26240/heal.ntua.20595 |
|
dc.rights |
Default License |
|
dc.subject |
Μοντέλο RESTful API |
el |
dc.subject |
Έλεγχος λογισμικού |
el |
dc.subject |
Δηλωτική γλώσσα |
el |
dc.subject |
Κατασκευή λογισμικού |
el |
dc.subject |
Γεννήτρια κώδικα |
el |
dc.subject |
RESTful API model |
en |
dc.subject |
Software testing |
en |
dc.subject |
Declarative language |
en |
dc.subject |
Software builder |
en |
dc.subject |
Code generator |
en |
dc.title |
Αυτόματη παραγωγή σεναρίων ελέγχου για προγραμματιστικές διεπαφές τύπου REST (RESTful APIs) |
el |
dc.title |
Automated test case generation for RESTful APIs |
en |
dc.contributor.department |
Τεχνολογίας Πληροφορικής & Υπολογιστών |
el |
heal.type |
bachelorThesis |
|
heal.classification |
Τεχνολογία λογισμικού |
el |
heal.classification |
Software engineering |
en |
heal.language |
el |
|
heal.access |
campus |
|
heal.recordProvider |
ntua |
el |
heal.publicationDate |
2021-02-08 |
|
heal.abstract |
Η παρούσα εργασία έχει σκοπό τον σχεδιασμό και την υλοποίηση ενός μηχανισμού αυτόματης παραγωγής σεναρίων ελέγχου για προγραμματιστικές διεπαφές τύπου REST (RESTful APIs), με βέλτιστο για τον προγραμματιστή τρόπο.
Οι προγραμματιστικές διεπαφές τύπου REST είναι o κατ’ εξοχήν μηχανισμός επικοινωνίας εφαρμογών στον Παγκόσμιο Ιστό. Το μεγαλύτερο μέρος των διαδικτυακών υπηρεσιών σήμερα παρέχονται με τη βοήθεια προγραμματιστικών διεπαφών τύπου REST, οι οποίες αναλαμβάνουν την μεταφορά πληροφοριών μεταξύ συστημάτων. Οι τεχνολογικές εξελίξεις σε τομείς όπως η μηχανική μάθηση και το Διαδίκτυο των Πραγμάτων (IoT) εδραιώνουν περαιτέρω τον ρόλο των προγραμματιστικών διεπαφών στο σύγχρονο ψηφιακό οικοσύστημα.
Παράλληλα απαραίτητος θεωρείται ο συστηματικός έλεγχος των προγραμματιστικών διεπαφών, καθώς η πολυπλοκότητα του σχεδιασμού τους εγκυμονεί κινδύνους σφαλμάτων. Ο αποτελεσματικός έλεγχός τους είναι ένας τομέας που ήδη απασχολεί την προγραμματιστική κοινότητα τόσο σε ερευνητικό όσο και σε επιχειρησιακό επίπεδο, ενώ όσο αυξάνεται η δημοτικότητά τους, τόσο πιο απαραίτητος θα γίνεται.
Στο πλαίσιο της εργασίας σχεδιάστηκε αρχικά μία δηλωτική γλώσσα ορισμού μοντέλων RESTful API. Με αυτήν μπορεί κανείς να περιγράψει μία προγραμματιστική διεπαφή τύπου REST ως προς τα χαρακτηριστικά της, όπως είναι τα τελικά σημεία (endpoints) και οι μέθοδοι (methods) που υποστηρίζονται. Από το μοντέλο της διεπαφής που παράγεται, δημιουργείται πλήρως αυτόματα ένα σύνολο από σενάρια ελέγχου για το RESTful API. Αυτά ελέγχουν την ορθότητά του μέσα από την αλληλεπίδρασή τους με αυτό. Ακόμα, για την βέλτιστη προγραμματιστική εμπειρία, η διαδικασία παραγωγής των σεναρίων ελέγχου υλοποιήθηκε έτσι ώστε να υποστηρίζεται η ενσωμάτωσή της σε εργαλείο κατασκευής λογισμικού.
Για την επαλήθευση της ορθής λειτουργίας των μηχανισμών που αναπτύχθηκαν στο πλαίσιο της παρούσας εργασίας παρατίθενται οι εφαρμογές τους σε δύο RESTful API του διαδικτύου, ένα παρατηρητήριο τιμών και ένα ψηφιακό μητρώο δικτυακών υποδομών. Μέσα από αυτές αποδεικνύεται η προσφορά της βέλτιστης εμπειρίας προγραμματισμού
κατά τον δηλωτικό ορισμό ενός RESTful API και τελικά της πλήρως αυτόματης παραγωγής σεναρίων ελέγχου που επιβεβαιώνουν την ορθή λειτουργία του. |
el |
heal.abstract |
The purpose of this thesis is the design and implementation of a mechanism for automated RESTful API test case generation, in the best possible programming experience.
RESTful APIs are the de facto communication mechanism for applications used in World Wide Web. Most of web services today are provided using RESTful APIs, which help transfer information between computer systems. Technological advances in fields such as machine learning and the Internet of Things (IoT) strengthen the role of RESTful APIs in today's digital ecosystem.
At the same time, the systematic testing of RESTful APIs is considered necessary as their design complexity carries risk of errors. Software testing is currently a field of much interest for the programming community both in research and in business level and with the rise in their popularity, it becomes even more needed.
For the purpose of this thesis, a declarative language for RESTful API models was initially designed. Using it, a RESTful API can be described by its features, like the supported endpoints and methods. Using the created model, a set of test cases for the RESTful API is automatically generated. These test the RESTful API's functionality by interacting with it.
Also, for the best programming experience, the mechanism for the automated RESTful API test case generation was designed in a way that it is offered for integration in build automation tools.
In order to evaluate the tools developed within the thesis, their application on two RESTful Web APIs is listed, a price observatory and a digital networking infrastructure register. Through the above, the best programming experience is proved to be offered for the declarative specification of a RESTful API and finally the fully automated generation of test cases which validate its proper functioning. |
en |
heal.advisorName |
Παπασπύρου, Νικόλαος |
el |
heal.advisorName |
Σαΐδης, Κώστας |
el |
heal.committeeMemberName |
Παπασπύρου, Νικόλαος |
el |
heal.committeeMemberName |
Γκούμας, Γεώργιος |
el |
heal.committeeMemberName |
Βεσκούκης, Βασίλειος |
el |
heal.academicPublisher |
Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών |
el |
heal.academicPublisherID |
ntua |
|
heal.numberOfPages |
65 σ. |
el |
heal.fullTextAvailability |
false |
|