Σύστημα μηχανικής μάθησης για πρόβλεψη ποιότητας και βελτιστοποιήσεων αναπτυσσόμενου λογισμικού

Καθώς η τεχνολογία εξελίσσεται και τα project όλο και μεγαλώνουν οι ανάγκες υιοθέτησης τεχνικών που μειώνουν το χρόνο παραγωγής τους και αυξάνουν την αξιοπιστία τους, μεγαλώνει. Μία από αυτές τις τεχνικές είναι και θα είναι η Συνεχής Ενσωμάτωση (Continuous Integration). Αν και συστήματα συνεχούς ενσ...

Πλήρης περιγραφή

Λεπτομέρειες βιβλιογραφικής εγγραφής
Κύριος συγγραφέας: Τσούλος, Γεώργιος
Άλλοι συγγραφείς: Tsoulos, Georgios
Γλώσσα:Greek
Έκδοση: 2021
Θέματα:
Διαθέσιμο Online:http://hdl.handle.net/10889/15048
id nemertes-10889-15048
record_format dspace
spelling nemertes-10889-150482022-09-05T14:01:15Z Σύστημα μηχανικής μάθησης για πρόβλεψη ποιότητας και βελτιστοποιήσεων αναπτυσσόμενου λογισμικού Using machine learning to predict the outcome of CI builds Τσούλος, Γεώργιος Tsoulos, Georgios Μηχανική μάθηση Συστήματα συνεχούς ενσωμάτωσης Machine learning Continuous integration Καθώς η τεχνολογία εξελίσσεται και τα project όλο και μεγαλώνουν οι ανάγκες υιοθέτησης τεχνικών που μειώνουν το χρόνο παραγωγής τους και αυξάνουν την αξιοπιστία τους, μεγαλώνει. Μία από αυτές τις τεχνικές είναι και θα είναι η Συνεχής Ενσωμάτωση (Continuous Integration). Αν και συστήματα συνεχούς ενσωμάτωσης υπάρχουν πλέον σε κάθε εταιρεία που θέλει να βελτιώσει τις διαδικασίες της, συχνό είναι και πάλι, τα κτισίματα λογισμικού να αποτυγχάνουν, χωρίς να έχει γίνει ιδιαίτερη έρευνα στις αιτίες. Ακόμη, τα κτισίματα αυτά διαρκούν πολλές φορές μεγάλα χρονικά διαστήματα, με αποτέλεσμα σε περίπτωση αποτυχίας πολύς χρόνος και πόροι να σπαταλούνται άσκοπα. Κατά την διάρκεια της πρακτικής μου στην εταιρεία Nokia, είχα σαν στόχο να εξαλείψω τα παραπάνω προβλήματα και δημιούργησα ένα σύστημα, στα πλαίσια ενός προϊόντος της συγκεκριμένης εταιρείας, το οποίο αποθήκευε metadata που παρήγαγε o CI server της εταιρείας, τα καθαρίσαμε, μελετήσαμε αιτίες που αποτύγχαναν τα κτισίματα και προβλέπαμε για όλα τα μελλοντικά κτισίματα το αποτέλεσμά τους. Για πρόβλεψη χρησιμοποιήθηκαν πολλαπλοί αλγόριθμοι αλλά καταλήξαμε στην χρήση Random Forest. Το σύστημα μας έφτασε σε ποσοστά επιτυχίας κοντά στο 80% και έγινε δεκτό να χρησιμοποιηθεί σε περιβάλλον production. Όσο μάλιστα συνέχιζε να δέχεται δεδομένα, τόσο βελτιωνόταν. Όσον αφορά τις αιτίες που αποτυγχάνουν τα build, η μελέτη μας έδειξε πως οι σημαντικότερες είναι: το αποτέλεσμα του προηγούμενου κτισίματος, το build climate, που είναι μια μετρική που δείχνει τα αποτελέσματα των τελευταίων 5 κτισιμάτων, πόσες γραμμές έχουν προστεθεί σε αυτό το build και τέλος, πόσα αρχεία που αφορούν tests έχουν αλλαχθεί. Καθώς βασιστήκαμε σε μεγάλο βαθμό σε προηγούμενη εργασία που αναφέρεται στην συνέχεια, είδαμε πως τα αποτελέσματα μας είναι σχετικά μεταξύ τους, αν και η εργασία μας αφορά εταιρικό προϊόν κλειστού κώδικα, ενώ η εν λόγο εργασία ανοικτά project που συνεργάζονται διαφορετικά άτομα ανά τον κόσμο. 2021-07-19T06:56:41Z 2021-07-19T06:56:41Z 2021-07-16 http://hdl.handle.net/10889/15048 gr application/pdf
institution UPatras
collection Nemertes
language Greek
topic Μηχανική μάθηση
Συστήματα συνεχούς ενσωμάτωσης
Machine learning
Continuous integration
spellingShingle Μηχανική μάθηση
Συστήματα συνεχούς ενσωμάτωσης
Machine learning
Continuous integration
Τσούλος, Γεώργιος
Σύστημα μηχανικής μάθησης για πρόβλεψη ποιότητας και βελτιστοποιήσεων αναπτυσσόμενου λογισμικού
description Καθώς η τεχνολογία εξελίσσεται και τα project όλο και μεγαλώνουν οι ανάγκες υιοθέτησης τεχνικών που μειώνουν το χρόνο παραγωγής τους και αυξάνουν την αξιοπιστία τους, μεγαλώνει. Μία από αυτές τις τεχνικές είναι και θα είναι η Συνεχής Ενσωμάτωση (Continuous Integration). Αν και συστήματα συνεχούς ενσωμάτωσης υπάρχουν πλέον σε κάθε εταιρεία που θέλει να βελτιώσει τις διαδικασίες της, συχνό είναι και πάλι, τα κτισίματα λογισμικού να αποτυγχάνουν, χωρίς να έχει γίνει ιδιαίτερη έρευνα στις αιτίες. Ακόμη, τα κτισίματα αυτά διαρκούν πολλές φορές μεγάλα χρονικά διαστήματα, με αποτέλεσμα σε περίπτωση αποτυχίας πολύς χρόνος και πόροι να σπαταλούνται άσκοπα. Κατά την διάρκεια της πρακτικής μου στην εταιρεία Nokia, είχα σαν στόχο να εξαλείψω τα παραπάνω προβλήματα και δημιούργησα ένα σύστημα, στα πλαίσια ενός προϊόντος της συγκεκριμένης εταιρείας, το οποίο αποθήκευε metadata που παρήγαγε o CI server της εταιρείας, τα καθαρίσαμε, μελετήσαμε αιτίες που αποτύγχαναν τα κτισίματα και προβλέπαμε για όλα τα μελλοντικά κτισίματα το αποτέλεσμά τους. Για πρόβλεψη χρησιμοποιήθηκαν πολλαπλοί αλγόριθμοι αλλά καταλήξαμε στην χρήση Random Forest. Το σύστημα μας έφτασε σε ποσοστά επιτυχίας κοντά στο 80% και έγινε δεκτό να χρησιμοποιηθεί σε περιβάλλον production. Όσο μάλιστα συνέχιζε να δέχεται δεδομένα, τόσο βελτιωνόταν. Όσον αφορά τις αιτίες που αποτυγχάνουν τα build, η μελέτη μας έδειξε πως οι σημαντικότερες είναι: το αποτέλεσμα του προηγούμενου κτισίματος, το build climate, που είναι μια μετρική που δείχνει τα αποτελέσματα των τελευταίων 5 κτισιμάτων, πόσες γραμμές έχουν προστεθεί σε αυτό το build και τέλος, πόσα αρχεία που αφορούν tests έχουν αλλαχθεί. Καθώς βασιστήκαμε σε μεγάλο βαθμό σε προηγούμενη εργασία που αναφέρεται στην συνέχεια, είδαμε πως τα αποτελέσματα μας είναι σχετικά μεταξύ τους, αν και η εργασία μας αφορά εταιρικό προϊόν κλειστού κώδικα, ενώ η εν λόγο εργασία ανοικτά project που συνεργάζονται διαφορετικά άτομα ανά τον κόσμο.
author2 Tsoulos, Georgios
author_facet Tsoulos, Georgios
Τσούλος, Γεώργιος
author Τσούλος, Γεώργιος
author_sort Τσούλος, Γεώργιος
title Σύστημα μηχανικής μάθησης για πρόβλεψη ποιότητας και βελτιστοποιήσεων αναπτυσσόμενου λογισμικού
title_short Σύστημα μηχανικής μάθησης για πρόβλεψη ποιότητας και βελτιστοποιήσεων αναπτυσσόμενου λογισμικού
title_full Σύστημα μηχανικής μάθησης για πρόβλεψη ποιότητας και βελτιστοποιήσεων αναπτυσσόμενου λογισμικού
title_fullStr Σύστημα μηχανικής μάθησης για πρόβλεψη ποιότητας και βελτιστοποιήσεων αναπτυσσόμενου λογισμικού
title_full_unstemmed Σύστημα μηχανικής μάθησης για πρόβλεψη ποιότητας και βελτιστοποιήσεων αναπτυσσόμενου λογισμικού
title_sort σύστημα μηχανικής μάθησης για πρόβλεψη ποιότητας και βελτιστοποιήσεων αναπτυσσόμενου λογισμικού
publishDate 2021
url http://hdl.handle.net/10889/15048
work_keys_str_mv AT tsoulosgeōrgios systēmamēchanikēsmathēsēsgiaproblepsēpoiotētaskaibeltistopoiēseōnanaptyssomenoulogismikou
AT tsoulosgeōrgios usingmachinelearningtopredicttheoutcomeofcibuilds
_version_ 1771297260291751936