Successfully reported this slideshow.
Your SlideShare is downloading. ×

Bug Fix Time Classification on Open Source Repositories

Bug Fix Time Classification on Open Source Repositories

Download to read offline

Nowadays, software development teams follow modern principles regarding the software development life cycle and use many tools, such as version control systems, bug tracking systems etc., in order to improve their productivity. The popularity and the intensive use of such tools and systems, has gathered a big amount of information regarding every stage of the software development process. By utilizing and analyzing these data, we can extract valuable information and build tools that contribute to the field of qualitative software development. New trends around software development processes aim at proper distribution of tasks to the team, flexibility in dynamic situations and development of a timetable that corresponds to reality. The achievement of the above in large open source organizations can be achieved through the analysis of software development methods and the design of systems that automate relevant processes. This diploma proposes an end-to-end system that contributes to the research of bug fix time prediction, by applying information retrieval techniques. More precisely, the designed system collects and analyzes data from GitHub repositories. The system classifies software issues according to their predicted fix time. Our approach is multilevel, taking into consideration the features title, description, assignee and labels of a bug report. A subsystem is designed for each of these features. Subsystems analyze previous data and generate a score that represents the probability of participation for each issue in every class. Finally, classification is performed by a neural network that aggregates every subsystem’s scores. Moreover, data processing techniques are used in order to cope with the particularities shown in the datasets of open source software repositories. The proposed system is trained and evaluated in a dataset that consists of 11099 issues from 26 big Java repositories in GitHub. Experiments show that our system has satisfactory efficiency, especially when it comes to binary classification where high evaluation metrics are observed.

Nowadays, software development teams follow modern principles regarding the software development life cycle and use many tools, such as version control systems, bug tracking systems etc., in order to improve their productivity. The popularity and the intensive use of such tools and systems, has gathered a big amount of information regarding every stage of the software development process. By utilizing and analyzing these data, we can extract valuable information and build tools that contribute to the field of qualitative software development. New trends around software development processes aim at proper distribution of tasks to the team, flexibility in dynamic situations and development of a timetable that corresponds to reality. The achievement of the above in large open source organizations can be achieved through the analysis of software development methods and the design of systems that automate relevant processes. This diploma proposes an end-to-end system that contributes to the research of bug fix time prediction, by applying information retrieval techniques. More precisely, the designed system collects and analyzes data from GitHub repositories. The system classifies software issues according to their predicted fix time. Our approach is multilevel, taking into consideration the features title, description, assignee and labels of a bug report. A subsystem is designed for each of these features. Subsystems analyze previous data and generate a score that represents the probability of participation for each issue in every class. Finally, classification is performed by a neural network that aggregates every subsystem’s scores. Moreover, data processing techniques are used in order to cope with the particularities shown in the datasets of open source software repositories. The proposed system is trained and evaluated in a dataset that consists of 11099 issues from 26 big Java repositories in GitHub. Experiments show that our system has satisfactory efficiency, especially when it comes to binary classification where high evaluation metrics are observed.

More Related Content

More from ISSEL

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Bug Fix Time Classification on Open Source Repositories

  1. 1. Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τομέας Ηλεκτρονικής & Υπολογιστών Διπλωματική Εργασία Εργαστήριο Επεξεργασίας Πληροφορίας και Τεχνολογίας Λογισμικού (ISSEL) Επίβλεψη Αναπληρωτής Καθηγητής Ανδρέας Λ.Συμεωνίδης Μεταδιδακτορικός Ερευνητής Δρ. Διαμαντόπουλος Θεμιστοκλής Εκπόνηση Ζηκόπης Ευάγγελος ΑΕΜ: 8808 Ταξινόμηση Σφαλμάτων από Αποθετήρια Ανοιχτού Λογισμικού με Βάση το Χρόνο Επιδιόρθωσής τους
  2. 2. Απρίλιος, 2021 Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 2 Δομή Παρουσίασης Συμπεράσματα & Μελλοντική εργασία Συμπεράσματα & Μελλοντική Εργασία Ε Εισαγωγή Αποτελέσματα & Αξιολόγηση
  3. 3. Εισαγωγή
  4. 4. Περιγραφή • Κατακόρυφη αύξηση απαιτήσεων • Νέα πρότυπα εργασίας ομάδων λογισμικού • ‘Έλλειψη αυτοματοποιημένων διαδικασιών σχετικά με την ανάπτυξη λογισμικού • Αδυναμία δημιουργίας αντιπροσωπευτικού χρονοδιαγράμματος ολοκλήρωσης έργου Απρίλιος, 2021 Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 4 Σκοπός • Συμβολή στην αυτοματοποίηση της διαχείρισης ομάδων ανάπτυξης λογισμικού • Εκμετάλλευση όλης της διαθέσιμης πληροφορίας που κρύβει ένα Issue Report • Εξαγωγή συμπερασμάτων σχετικά με τα έργα ανοιχτού κώδικα Ορισμός Προβλήματος Η σχεδίαση ενός συστήματος το οποίο ταξινομεί τα σφάλματα λογισμικού ενός συγκεκριμένου αποθετηρίου, ανάλογα με τον εκτιμώμενο χρόνο επιδιόρθωσής τους
  5. 5. GitHub Issue Report Απρίλιος, 2021 Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 5 1 1 Τίτλος 2 2 Κατάσταση 3 3 Περιγραφή 4 4 Υπεύθυνος 5 5 Labels 6 6 Συνδεδεμένα Commits 7 7 Σχόλια
  6. 6. Μεθοδολογία
  7. 7. Αρχιτεκτονική Συστήματος Απρίλιος, 2021 Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 7
  8. 8. Συλλογή & Προεπεξεργασία Δεδομένων Απρίλιος, 2021 Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 8 Κανόνες Επιλογής Issues από τη Βάση Δεδομένων Είναι σε κατάσταση closed Έχει διαθέσιμες ημερομηνίες στις οποίες άνοιξε / έκλεισε Έχει συμπληρωμένα τα πεδία τίτλος, περιγραφή, labels, assignee Το αποθετήριο έχει από 50 έως 5000 έγκυρα issues 01 02 03 04 Προεπεξεργασία Συλλεγμένων Issues Προεπεξεργασία & Προετοιμασία κειμένου για εφαρμογή τεχνικών εξόρυξης δεδομένων Εφαρμογή μετασχηματισμού Z-Score για απομάκρυνση θορύβου Διατήρηση μόνο όσων έχουν κλείσει ή αναφερθεί σε commits ή έχουν σχόλια Διαχωρισμός των issues σε κλάσεις Διαχωρισμός σε σετ εκπαίδευσης / αξιολόγησης
  9. 9. Ανάλυση Υπομοντέλων Απρίλιος, 2021 Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 9 Υπομοντέλα Τίτλου & Περιγραφής “ Υπάρχει σύνδεση μεταξύ της λεκτικής περιγραφής ενός σφάλματος και του χρόνου επιδιόρθωσής του; ” Επεξεργασία λεκτικών δεδομένων για αύξηση αποδοτικότητας Διανυσματοποίηση με τον μετασχηματισμό TF-IDF (Term Frequency – Inverse Document Frequency) 𝑡𝑓 − 𝑖𝑑𝑓 𝑤, 𝐷 = 𝑡𝑓 𝑤, 𝐷 × log 𝐶 1 + 𝐷 ∈ 𝐶: 𝑤 ∈ 𝐷 Εκπαίδευση Naïve Bayes ταξινομητή 𝑃 𝑥𝑖 𝑐 = 𝑡𝑓𝑖𝑑𝑓 𝑥𝑖, 𝑐 + 1 𝑡𝑓𝑖𝑑𝑓 𝑐 + |𝑉| Σχεδίαση ξεχωριστών μοντέλων για τίτλο και περιγραφή
  10. 10. Ανάλυση Υπομοντέλων Απρίλιος, 2021 Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 10 “ Μπορούμε να προβλέψουμε τον χρόνο στον οποίο θα διορθώσει ένα σφάλμα κάποιος μηχανικός με βάση το ιστορικό του; ” Υπομοντέλο Assignee Συγκέντρωση των issues που έχει επιλύσει στο παρελθόν ο συγκεκριμένος χρήστης Μέτρηση της συχνότητας εμφάνισης αυτών των issues σε κάθε κλάση Εξαγωγή σκορ συμμετοχής του χρήστη σε κάθε κλάση (σκορ στο διάστημα [0,1])
  11. 11. Ανάλυση Υπομοντέλων Απρίλιος, 2021 Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 11 “ Πόσο γρήγορα επιλύονται τα σφάλματα που χαρακτηρίζονται από συγκεκριμένο label; ” Υπομοντέλο Labels Απομόνωση των issues που έχουν κάποιο από τα labels του εξεταζόμενου issue Δημιουργία ευρετηρίου για κάθε ένα από τα labels του εξεταζόμενου issue Εξαγωγή τελικού σκορ συμμετοχής σε κάθε κλάση από τη σύνθεση των επιμέρους σκορ κάθε label
  12. 12. Σύνθεση Υπομοντέλων Απρίλιος, 2021 Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 12 Άθροιση & Μέσος Όρος των επιμέρους Σκορ Class 0 – Fast Class 1– Medium Class 2 - Slow Title Score 0.22 0.35 0.43 Body Score 0.36 0.25 0.39 Labels Score 0.4 0.6 0 Assignee Score 0.4 0.5 0.1 Final Score 0.345 0.425 0.23 Εξαγωγή των σκορ συμμετοχής σε κάθε κλάση Άθροιση και Κανονικοποίηση του τελικού σκορ συμμετοχής του εξεταζόμενου issue σε κάθε κλάση
  13. 13. Σύνθεση Υπομοντέλων Απρίλιος, 2021 Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 13 “ Υπάρχει πιο έξυπνος τρόπος σύνθεσης των επιμέρους σκορ σε κάθε αποθετήριο; ” Βελτιστοποιημένη Σύνθεση των επιμέρους Σκορ Χρήση του εικονιζόμενου νευρωνικού δικτύου Εύρεση του συνδυασμού βαρών που βελτιστοποιεί την ταξινόμηση των issues Είσοδος Νευρωνικού: 𝑋 = 𝑇𝑖𝑡𝑙𝑒𝑆𝑐𝑜𝑟𝑒, 𝐵𝑜𝑑𝑦𝑆𝑐𝑜𝑟𝑒, 𝐿𝑎𝑏𝑒𝑙𝑠𝑆𝑐𝑜𝑟𝑒, 𝐴𝑠𝑠𝑖𝑔𝑛𝑒𝑒𝑆𝑐𝑜𝑟𝑒 Έξοδος: Βαθμός συμμετοχής ([0,1]) του issue σε κάθε κλάση
  14. 14. Αποτελέσματα & Αξιολόγηση
  15. 15. Διαδικασία Εκπαίδευσης & Αξιολόγησης Τελικό Σύνολο Δεδομένων 11500 issues από 26 δημοφιλή έργα στο GitHub Εκπαίδευση Συστήματος • Αναλογία συνόλων εκπαίδευσης αξιολόγησης 70/30 • Σετ αξιολόγησης από τα πιο πρόσφατα issues κάθε έργου • Αυξητική Μάθηση Συνδυασμοί που Αξιολογήθηκαν 1. Title + Body 2. Title + Body + Labels 3. Title + Body + Labels + Assignee 4. Optimized Model Απρίλιος, 2021 Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 15
  16. 16. Αποτελέσματα Δυαδικής Ταξινόμησης Απρίλιος, 2021 Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 16 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 Binary Classification Accuracy Plot Title + Body Title + Body + Labels Title + Body + Labels + Assignee Optimized 12% 23% 27% 38% Best Result per Submodels Combination Title + Body Title + Body + Labels Title + Body + Labels + Assignee Optimized
  17. 17. Αποτελέσματα Δυαδικής Ταξινόμησης Απρίλιος, 2021 Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 17
  18. 18. Αποτελέσματα Ταξινόμησης Τριών Κλάσεων Απρίλιος, 2021 Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 18 0 0.1 0.2 0.3 0.4 0.5 0.6 3 Class Classification Accuracy Title + Body Title + Body + Labels Title + Body + Labels + Assignee Optimized
  19. 19. Αποτελέσματα Ταξινόμησης Τριών Κλάσεων Απρίλιος, 2021 Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 19
  20. 20. Συμπεράσματα Απρίλιος, 2021 Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 20 1 Τα συγκεκριμένα χαρακτηριστικά που αναλύθηκαν μπορούν να οδηγήσουν στην πρόβλεψη του χρόνου διόρθωσης σφαλμάτων 2 Η βέλτιστη σύνθεση των υπομοντέλων μπορεί να αυξήσει την προβλεπτική ικανότητα του συστήματος 3 Το σύστημα αποδίδει πολύ καλά για δυαδική ταξινόμηση, έχοντας παρόμοια απόδοση με άλλες βιβλιογραφικές έρευνες 4 • Αναλύοντας ξεχωριστά τα υπομοντέλα, το χαρακτηριστικό των labels είχε τη μεγαλύτερη συσχέτιση με το εξεταζόμενο πρόβλημα
  21. 21. Μελλοντική Εργασία Απρίλιος, 2021 Ταξινόμηση Σφαλμάτων Λογισμικού από Αποθετήρια Ανοιχτού Λογισμικού με Βάση τον Εκτιμώμενο Χρόνο Επιδιόρθωσής τους 21 1. Δοκιμή του συστήματος σε δεδομένα από διαφορετικές πλατφόρμες διαδικτυακών αποθετηρίων 2. Σχεδίαση του υπομοντέλου ανάλυσης κειμένων με πιο εξειδικευμένες τεχνικές 3. Τροποποίηση του συστήματος για προσέγγιση και υπολογισμό του χρόνου διόρθωσης σφαλμάτων 4. Ανάπτυξη διαδικτυακής εφαρμογής ή ενός GitHub plugin για ταξινόμηση σφαλμάτων σε πραγματικό χρόνο
  22. 22. Σας Ευχαριστώ! Ευχαριστώ τον Αν. Καθηγητή Ανδρέα Συμεωνίδη Ευχαριστώ τον Δρ. Θεμιστοκλή Διαμαντόπουλο
  23. 23. Ευχαριστώ για το χρόνο σας! Ερωτήσεις ;

×