Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 14020|Απάντηση: 1

[Γ++] Wings - Αφήστε τις δοκιμές μονάδων να δημιουργηθούν έξυπνα και αυτόματα

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 6/8/2018 2:30:37 μ.μ. | | | |
Παρασκήνια-Κάντε τις δοκιμές μονάδων έξυπνες και πλήρως αυτοματοποιημένεςπρόλογος
Η δοκιμή μονάδας είναι ένα πολύ αποτελεσματικό μέσο για τη διασφάλιση της ποιότητας του λογισμικού, είτε από την άποψη της έννοιας της έγκαιρης παρέμβασης στις δοκιμές είτε από τα χαρακτηριστικά των δοκιμών μονάδας που μπορούν να επαληθευτούν σε υψηλή ταχύτητα χωρίς να επηρεάζονται από τη διεπαφή χρήστη, επομένως η δοκιμαστική ανάπτυξη που υποστηρίζεται από τη βιομηχανία, το πρόγραμμα οδήγησης δοκιμής που αναφέρεται σε αυτό αναφέρεται περισσότερο στο πρόγραμμα οδήγησης δοκιμής μονάδας. Ωστόσο, η γενική ομάδα ανάπτυξης εξακολουθεί να εκτελεί σπάνια δοκιμές μονάδων συστηματικά και η δοκιμή για λογισμικό εφαρμογών εκτελείται περισσότερο από επαγγελματικές ομάδες δοκιμών για την εκτέλεση δοκιμών μαύρου κουτιού. Η μεγαλύτερη δυσκολία της δοκιμής μονάδας δεν είναι ότι η είσοδος και η έξοδος δεν μπορούν να προσδιοριστούν, σε τελική ανάλυση, έχει ήδη καθοριστεί στο στάδιο ανάπτυξης της μονάδας, αλλά ότι η σύνταξη των περιπτώσεων δοκιμής μονάδας θα καταναλώσει πολλές ανθρωποώρες προγραμματιστή και σύμφωνα με σχετικά στατιστικά στοιχεία, ο χρόνος των περιπτώσεων δοκιμής μονάδας θα υπερβεί ακόμη και κατά πολύ τον χρόνο ανάπτυξης της ίδιας της λειτουργίας. Ακολουθούν μερικοί από τους πιο συνηθισμένους λόγους για τους οποίους η ανάπτυξη δεν γράφει δοκιμές μονάδας:
●Οι απαιτήσεις είναι πάντα ατελείωτες και υπάρχουν ακόμη λειτουργικές απαιτήσεις που πρέπει να πραγματοποιηθούν στο επόμενο στάδιο και δεν υπάρχει χρόνος για να γεμίσει η μονάδα
●Υπάρχουν πάρα πολλές δοκιμές μονάδας που πρέπει να συμπληρωθούν και δεν υπάρχει τρόπος να ξεκινήσω, οπότε αντιστέκομαι υποκειμενικά.
● Οι δοκιμές μονάδας είναι δύσκολο να γραφτούν. Από τη μία πλευρά, ο λόγος μπορεί να είναι ότι η υλοποίηση της λειτουργικής συνάρτησης δεν είναι αρκετά λογική και, από την άλλη πλευρά, δεν υπάρχουν (ή άγνωστα) χρήσιμα πλαίσια δοκιμής μονάδας και εικονικά πλαίσια.
● Οι δοκιμές μονάδας δεν περιλαμβάνονται στον φόρτο εργασίας.
Δεύτερον, οι λειτουργικές απαιτήσεις εξακολουθούν να είναι ασταθείς και η απόδοση κόστους των δοκιμών μονάδας γραφής δεν είναι υψηλή. Με άλλα λόγια, εάν οι απαιτήσεις αλλάξουν αύριο, δεν θα καταργηθεί μόνο ο λειτουργικός κώδικας, αλλά και οι δοκιμές μονάδας. Εάν δεν γράψετε δοκιμές μονάδας, τότε αυτό το μέρος της προσπάθειας δεν θα είναι μάταιο.
Στην πραγματικότητα, η βασική αιτία των παραπάνω σημείων είναι ότι η εγγραφή της δοκιμής μονάδας είναι πολύ χρονοβόρα, γεγονός που τελικά οδηγεί σε απώλεια ισχύος του δοκιμαστικού κινητήρα, με αποτέλεσμα το όμορφο όραμα της δοκιμαστικής ανάπτυξης να σταματήσει στο πραγματικό σενάριο, επειδή είναι πολύ δύσκολο και ακριβό να κατασκευαστεί ο κινητήρας για αυτήν την κίνηση. Οι διάφορες μονάδες "x" στην αγορά και τα πλαίσια δοκιμών μονάδων λύνουν μόνο το πρόβλημα της δημιουργίας εξωτερικών πλαισίων που βασίζονται σε δοκιμές, χωρίς καμία λογική περίπτωσης χρήσης και δυνατότητες δημιουργίας δεδομένων που βασίζονται στη βαθιά κατανόηση του προγράμματος. Ως εκ τούτου, καθιστά τους προγραμματιστές ανθεκτικούς σε διάφορα σενάρια που σχετίζονται με την ανάπτυξη. Η κυκλοφορία του Wings (επί του παρόντος για το C) λύνει ένα από τα μεγαλύτερα προβλήματα για τους προγραμματιστές και έχει τη δυνατότητα να αλλάξει ριζικά το status quo των δοκιμών μονάδων, γεγονός που θα μετριάσει αποτελεσματικά την πίεση των δοκιμών μαύρου κουτιού σε επίπεδο συστήματος και των αυτοματοποιημένων δοκιμών που βασίζονται σε τεράστιους ανθρώπινους πόρους.
Οι περιπτώσεις δοκιμής περιορισμών δημιουργούνται αυτόματα από προγράμματα και η πιο κρίσιμη υποκείμενη τεχνολογία είναι η σύνθετη τεχνολογία ανάλυσης παραμέτρων. Δηλαδή, μπορεί να ορίσει αυθαίρετα εμφωλευμένη αναδρομική ανάλυση επιπέδου σε επίπεδο μεταγλωττιστή για αυθαίρετα πολύπλοκους τύπους. Χωρίς αυτή την ανακάλυψη σε αυτήν την κρίσιμη τεχνολογία, το αυτόματο σύστημα παραγωγής δοκιμαστικών περιπτώσεων είτε θα ήταν εμπορικά ανίκανο είτε θα εξελισσόταν για να παράγει συμβατά δεδομένα δοκιμών με πολύ χαμηλή απόδοση. Για παράδειγμα, το διάσημο εργαλείο fuzzing American Fuzzy Lop δεν μπορεί να προσδιορίσει τον τύπο της δομής που απαιτείται από το πρόγραμμα του χρήστη και πρέπει να εξελίξει τον αλγόριθμο αναζήτησης με βάση το πιο εξωτερικό επίπεδο. Τα χαρακτηριστικά του προγράμματος είναι ότι η είσοδος σε επίπεδο διεπαφής και οι απαιτήσεις δεδομένων μιας εσωτερικής μονάδας είναι πολύ μακριά και τα εξωτερικά δεδομένα συνήθως μετατρέπονται στρώμα προς στρώμα σύνθετου μετασχηματισμού για να γίνουν ο τύπος δομής δεδομένων που απαιτείται από την εσωτερική μονάδα, επομένως η ποσότητα υπολογισμού και ο χρόνος που απαιτείται για την εξερεύνηση από το εξωτερικό επίπεδο θα είναι αδιανόητο. Με βάση το αμερικανικό Fuzzy Lop, για να μπορέσετε να δημιουργήσετε μια νόμιμη δήλωση SQL, η εσωτερική ενότητα του προγράμματος πρέπει να εξερευνηθεί σε ημέρες, μακριά από λεπτά ή ώρες. Ένας άλλος περιορισμός είναι ότι οι είσοδοι που μπορεί να αναλάβει κάθε πρόγραμμα είναι προσεκτικά δομημένα και συγκεντρωμένα δεδομένα με μεγάλο αριθμό κανόνων και είναι πολύ μη ρεαλιστικό και εξαιρετικά χρονοβόρο να δημιουργηθούν αυτά τα δεδομένα μέσω τυχαίων + διερευνητικών μεθόδων. Επομένως, δεν είναι εφικτή η δημιουργία περιπτώσεων χρήσης που δημιουργούνται αυτόματα από το μαύρο κουτί καθώς και από την εξώτατη είσοδο.
Εάν η περίπτωση χρήσης δημιουργείται από την ανάλυση της εσωτερικής δομής του λογισμικού, είναι απαραίτητο να έχουμε βαθιά κατανόηση της δομής μεταγλώττισης του λογισμικού. Ένα βιώσιμο σύστημα παραγωγής δοκιμαστικών περιπτώσεων θα πρέπει να βασίζεται στη μέση του προγράμματος (βασικό σημείο εισόδου) ως το καταλληλότερο σημείο εισόδου δοκιμής. Οι είσοδοι αυτών των μονάδων έχουν μετατρέψει τις ασαφείς εισόδους σε εξαιρετικά δομημένες παραμέτρους. Εφόσον μπορούν να εντοπιστούν αυτές οι πολύπλοκες δομές, οι σύνθετοι τύποι δεδομένων μπορούν να υποβαθμιστούν σε απλούς τύπους δεδομένων βήμα προς βήμα και η κατασκευή παραμέτρων μπορεί να ολοκληρωθεί ταυτόχρονα, η δημιουργία περιπτώσεων χρήσης οδήγησης μπορεί να ολοκληρωθεί αυτόματα.
Οι δοκιμές που βασίζονται σε μονάδες, οι οποίες μπορούν να ταξινομηθούν ως παραδοσιακές δοκιμές μονάδων, είναι ο καλύτερος τρόπος για να βρείτε και να περιορίσετε ελαττώματα στη φάση Ε&Α. Ωστόσο, λόγω των περιορισμών των δοκιμών μονάδας, πρέπει να αναπτυχθεί μεγάλος αριθμός προγραμμάτων οδήγησης και η προώθηση και η εφαρμογή στον κλάδο είναι πολύ περιορισμένες. Φυσικά, οι δοκιμές μονάδων μπορούν επίσης να εκτελεστούν μετά την ενσωμάτωση του συστήματος για να αποφευχθεί η δημιουργία εικονικών προγραμμάτων στελέχους.
Το προϊόν Wings της Nebulas Testing, το οποίο κυκλοφόρησε στον κόσμο για πρώτη φορά πριν από λίγες ημέρες, είναι ένα έξυπνο και πλήρως αυτοματοποιημένο σύστημα δημιουργίας περιπτώσεων δοκιμών μονάδας, το οποίο έχει μελετήσει και λύσει τις ακόλουθες δυσκολίες και τώρα μοιράζεται μαζί σας.
(1) Σε βάθος ανάλυση των παραμέτρων του προγράμματος
Το Wings χρησιμοποιεί την υποκείμενη τεχνολογία του μεταγλωττιστή για να σχηματίσει αντικείμενα μονάδας με βάση το αρχείο προέλευσης εισόδου σύμφωνα με τη συνάρτηση. Το αντικείμενο περιέχει τις παραμέτρους εισόδου της συνάρτησης, τον τύπο της τιμής επιστροφής και άλλες πληροφορίες, οι οποίες μπορούν να χρησιμοποιηθούν από τη μονάδα λειτουργίας προγράμματος οδήγησης και τη μονάδα δοκιμαστικής περίπτωσης. Κάθε αρχείο είναι μια μονάδα που εκτελεί εις βάθος ανάλυση κάθε παραμέτρου κάθε συνάρτησης σε αυτό και μπορεί να επιτύχει ακριβή ανάλυση και αποσύνθεση για ένθετους τύπους, σύνθετους τύπους κ.λπ., να εξηγήσει σύνθετους τύπους στρώμα προς στρώμα ως βασικούς τύπους δεδομένων και να δημιουργήσει ένα αρχείο περιγραφής (PSD) της δομής παραμέτρων.
(2) Αυτόματη δημιουργία μονάδων κίνησης λειτουργίας
Σύμφωνα με τις πληροφορίες μορφής του αρχείου PSD, όλες οι λειτουργίες προγράμματος οδήγησης του υπό δοκιμή προγράμματος προέλευσης δημιουργούνται αυτόματα και η διαδικασία δοκιμής μονάδας δεν βασίζεται πλέον στους προγραμματιστές για τη μη αυτόματη εγγραφή δοκιμαστικών λειτουργιών, αλλά χρειάζεται μόνο να μεταγλωττίσουν τις δημιουργημένες λειτουργίες προγράμματος οδήγησης και τα αρχεία προέλευσης υπό δοκιμή μαζί και τα αποτελέσματα της δοκιμής μπορούν να εκτελεστούν και τα αποτελέσματα της δοκιμής μπορούν να προβληθούν. Το πρόγραμμα οδήγησης δοκιμής δημιουργεί αυτόματα το πρόγραμμα με βάση την περιγραφή του PSD, δημιουργεί πλήρως αυτόματα όλες τις παραμέτρους και τις απαραίτητες καθολικές μεταβλητές που οδηγούν τη δοκιμή υπό δοκιμή και μπορεί να δημιουργήσει ένα δομημένο πρόγραμμα οδήγησης δοκιμής σύμφωνα με την ιεραρχία των πολύπλοκων μεταβλητών, το οποίο μπορεί να εξοικονομήσει πολύ χρόνο στη σύνταξη περιπτώσεων δοκιμής μονάδας.
(3) Αυτόματη παραγωγή και διαχείριση δεδομένων δοκιμής
Χρησιμοποιείται για την αυτόματη δημιουργία δεδομένων δοκιμής, τα οποία αντιστοιχούν στις πληροφορίες που εξάγονται από τη συνάρτηση δοκιμής και τα δεδομένα αποθηκεύονται σε ένα αρχείο JSON με μια συγκεκριμένη ιεραρχική λογική σχέση. Τα δεδομένα και ο τύπος δεδομένων μετά την ανάλυση και την επέκταση αντιστοιχούν μεταξύ τους. Οι χρήστες μπορούν αυθαίρετα να περιθωριοποιήσουν αυτά τα δεδομένα σύμφωνα με τις επιχειρηματικές απαιτήσεις και να χρησιμοποιήσουν αρχεία JSON για να τα εμφανίσουν με δομημένο και ιεραρχικό τρόπο, κάτι που είναι πολύ σαφές. Τα δεδομένα δοκιμής περιλαμβάνουν τις τιμές των καθολικών μεταβλητών και τις τιμές παραμέτρων όταν καλείται η υπό δοκιμή συνάρτηση.
Το Wings παρέχει μια μέθοδο δοκιμής μονάδας για την αυτόματη δημιουργία λειτουργιών προγράμματος οδήγησης, η οποία περιλαμβάνει κυρίως τα ακόλουθα βήματα:
Εικόνα 1: Ροή κατασκευής βάσει δοκιμής μονάδας
1   Εξαγωγή των πληροφοριών του υπό δοκιμή προγράμματος
Οι πληροφορίες δομής του υπό δοκιμή προγράμματος περιλαμβάνουν κυρίως τις καθολικές μεταβλητές και τις πληροφορίες συνάρτησης στο πρόγραμμα και οι πληροφορίες συνάρτησης περιλαμβάνουν κυρίως τον αριθμό των παραμέτρων, τους τύπους παραμέτρων και τους τύπους τιμών επιστροφής της συνάρτησης. Το πιο σημαντικό πράγμα είναι να εξαγάγετε τις πληροφορίες συμβόλων και τις πληροφορίες τύπου για ορισμένους σύνθετους τύπους και να τις αναλύσετε σε βασικούς τύπους δεδομένων στρώμα προς στρώμα για να ολοκληρώσετε την κατασκευή καθολικών μεταβλητών και παραμέτρων συνάρτησης.
Οι τύποι μεταβλητών χωρίζονται γενικά σε βασικούς τύπους, τύπους κατασκευής, τύπους δείκτη και μηδενικούς τύπους. Το Wings χρησιμοποιεί την υποκείμενη τεχνολογία μεταγλώττισης για να χειριστεί διαφορετικούς τύπους μεταβλητών με διαφορετικούς τρόπους.
(1) Βασικοί τύποι, όπως ανυπόγραφος ακέραιος u_int=20, το Wings θα αναλύσει το όνομα της μεταβλητής σε u_int και τον τύπο δεδομένων σε ανυπόγραφο ακέραιο.
(2) Οι τύποι κατασκευής, οι τύποι κατασκευής χωρίζονται χονδρικά σε πίνακες, δομές, κοινά και τύπους απαρίθμησης.
● Τύπος πίνακα, όπως intarray[2][3], το όνομα του πίνακα είναι πίνακας, ο τύπος int και το μήκος του πίνακα 2D, συμπεριφορά 2, στήλη 3.
●Τύπος δομής, για δομές ως πίνακες, συνδεδεμένες λίστες δομών κ.λπ., χωρίζονται διαφορετικοί δείκτες.
(3) Τύπος δείκτη, π.χ. int **ptr = 0; , αναλύει τον δείκτη ως δείκτη επιπέδου 2 τύπου int.
(4) Μηδενικός τύπος, ο οποίος επιλύεται ως NULL.
(5) Οι τύποι συστήματος, όπως Αρχείο, size_t κ.λπ., επισημαίνονται ως τύποι συστήματος και θα προστεθούν στο πρότυπο και θα εκχωρηθούν από τον χρήστη.
(6) Τύπος δείκτη συνάρτησης, αναλύστε τον τύπο της τιμής επιστροφής, τον τύπο παραμέτρου και τον αριθμό των παραμέτρων της συνάρτησης
Για κάθε μονάδα μεταγλώττισης του υπό δοκιμή προγράμματος πηγής, οι πληροφορίες της αναλυμένης συνάρτησης αποθηκεύονται στην αντίστοιχη δομή PSD και περιγράφονται τα ακόλουθα παραδείγματα πηγαίου κώδικα:
   

Στο παραπάνω πρόγραμμα, ακυρώστε το StructTypeTest3(myy_struct mm_struct[2])Η αποθηκευμένη δομή PSD έχει ως εξής:

Οι έννοιες κάθε κόμβου στο αρχείο PSD είναι οι εξής:
●StructTypeTest3 αντιπροσωπεύει το όνομα της συνάρτησης, το parmType0 αντιπροσωπεύει τον τύπο παραμέτρου και το parmNum αντιπροσωπεύει τον αριθμό των παραμέτρων
●mm_struct αντιπροσωπεύει το σύμβολο της παραμέτρου συνάρτησης, το baseType1 αντιπροσωπεύει την ταξινόμηση των τύπων (βασικός τύπος δεδομένων, τύπος κατασκευής, τύπος δείκτη, μηδενικός τύπος), ο τύπος αντιπροσωπεύει συγκεκριμένους τύπους, συμπεριλαμβανομένων των int, char, short, long, double, float, bool και αυτών των τύπων ανυπόγραφων τύπων και άλλων βασικών τύπων, και υπάρχουν ορισμένοι ειδικοί τύποι όπως: ZOA_FUN τύπος αντιπροσωπεύει τον τύπο συνάρτησης, Το StructureOrClassType αντιπροσωπεύει τον τύπο δομής, κ.λπ., και το όνομα αντιπροσωπεύει το όνομα της δομής, της ένωσης και του τύπου απαρίθμησης
●i_int αντιπροσωπεύει τον βασικό τύπο, ο οποίος είναι η μικρότερη μονάδα εκχώρησης
●array_one αντιπροσωπεύει τον τύπο πίνακα, το RowSize αντιπροσωπεύει το μήκος του πίνακα και ο πίνακας μπορεί να χωριστεί σε μονοδιάστατους πίνακες, δισδιάστατους πίνακες κ.λπ
●Το σημείο αντιπροσωπεύει τον τύπο δείκτη, ο δείκτης χωρίζεται σε δείκτη πρώτου επιπέδου, δείκτη δεύτερου επιπέδου κ.λπ., και ο γενικός δείκτης χρησιμοποιείται ως παράμετρος συνάρτησης ως πίνακας, επομένως για τον βασικό τύπο δείκτη, η μέθοδος πίνακα δυναμικής κατανομής χρησιμοποιείται για την εκχώρηση τιμών και ο χρήστης μπορεί να τροποποιήσει το αντίστοιχο αρχείο τιμών σύμφωνα με τις ανάγκες.
● Το W αντιπροσωπεύει τον τύπο του πεδίου bit και το bitfileld αντιπροσωπεύει τον αριθμό των ψηφίων
●functionPtr αντιπροσωπεύει τον τύπο δείκτη συνάρτησης, ο οποίος αναλύει τον τύπο παραμέτρου, τον αριθμό των παραμέτρων και τις πληροφορίες τιμής επιστροφής αντίστοιχα
●Dem σημαίνει τύπος κοινοπραξίας
● Το dy αντιπροσωπεύει τον τύπο απαρίθμησης και η τιμή αντιπροσωπεύει την τιμή του τύπου απαρίθμησης
● Το αρχείο αντιπροσωπεύει τον τύπο δομής, το SystemVar αντιπροσωπεύει ότι αυτή η μεταβλητή ανήκει στη μεταβλητή στο αρχείο κεφαλίδας συστήματος, για αυτόν τον τύπο μεταβλητής, το Wings προσθέτει μεταβλητές προτύπου στη βιβλιοθήκη προτύπων, οι χρήστες μπορούν να εκχωρήσουν ειδικές τιμές σύμφωνα με συγκεκριμένες ανάγκες. Για παράδειγμα, ο χειρισμός του τύπου αρχείου γίνεται ως εξής:

Οι χρήστες μπορούν επίσης να προσθέσουν τις δικές τους μεθόδους ανάθεσης. Για τύπους συστημάτων, τα Wings μπορούν να διακριθούν από τους συνηθισμένους τύπους που ορίζονται από το χρήστη και κατά την ανάλυση στον ενσωματωμένο τύπο του συστήματος, μπορεί να σταματήσει την αναδρομική ανάλυση προς τα κάτω.
●g_int αντιπροσωπεύει καθολικές μεταβλητές και το globalType αντιπροσωπεύει καθολικές μεταβλητές
●next αντιπροσωπεύει τη δομή της συνδεδεμένης λίστας και το NodeType αντιπροσωπεύει αυτήν τη δομή ως συνδεδεμένη λίστα
●returnType αντιπροσωπεύει τον τύπο επιστρεφόμενης τιμής της συνάρτησης.
2   Αυτόματη δημιουργία προγραμμάτων οδήγησης
Στην παραπάνω εργασία, αναλύονται και εξάγονται οι δομικές πληροφορίες των καθολικών μεταβλητών και συναρτήσεων και οι ακόλουθες πληροφορίες χρησιμοποιούνται για αποθήκευση στο PSD για την ολοκλήρωση της συνολικής δημιουργίας του πλαισίου οδήγησης του υπό δοκιμή προγράμματος πηγής.
Η παραγωγή χωρίζεται κυρίως στις ακόλουθες πτυχές:
Ø Δήλωση καθολικών μεταβλητών
Ø Λειτουργία ανάθεσης παραμέτρων συνάρτησης, σύμφωνα με τον αριθμό των παραμέτρων συνάρτησης, εκχωρήστε τιμές με τη σειρά
Ø Η ανάθεση των καθολικών μεταβλητών πραγματοποιείται διαδοχικά σύμφωνα με τον αριθμό των καθολικών μεταβλητών που χρησιμοποιούνται από την ανάλυση
Ø Κλήση της αρχικής συνάρτησης
Μερικά σημεία που πρέπει να σημειωθούν είναι τα εξής:
●Κατά τη διαδικασία δημιουργίας προγραμμάτων οδήγησης, ορισμένες ειδικές λειτουργίες, όπως κύριες λειτουργίες, στατικές συναρτήσεις κ.λπ., δεν υποβάλλονται σε επεξεργασία προσωρινά επειδή δεν είναι προσβάσιμες από τον έξω κόσμο.
● Για κάθε αρχείο προέλευσης υπό δοκιμή, δημιουργείται ένα αντίστοιχο αρχείο προγράμματος οδήγησης.
● Ο έλεγχος μονάδας δίσκου περιλαμβάνεται στο Driver_main.cpp για αυτόματη διαμόρφωση του αριθμού των δοκιμών της λειτουργίας μέσω μακροεντολών
Η λειτουργία προγράμματος οδήγησης που δημιουργείται από το παραπάνω πρόγραμμα προέλευσης είναι η εξής:
● Όλες οι μεταβλητές ονομάζονται πριν από το όνομα της αρχικής μεταβλητής, προσθέστε _
●Με τη λήψη των αντίστοιχων δεδομένων δοκιμής, οι μεταβλητές εκχωρούνται με τη σειρά τους
●Για τις ενσωματωμένες παραμέτρους του συστήματος και τις ειδικές παραμέτρους του χρήστη, η μέθοδος ανάθεσης διαμορφώνεται ομοιόμορφα μέσω της μεθόδου προτύπου.
●Εκχωρήστε και καλέστε παραμέτρους στην υπό δοκιμή συνάρτηση.
3   Τα δεδομένα δοκιμής δημιουργούνται αυτόματα
Το παρακάτω είναι ένα σύνολο δεδομένων που δημιουργούνται σε μορφή PSD στο Σχήμα 3, κάθε σύνολο δεδομένων αποθηκεύεται σε μορφή JSON, καθιστώντας ευκολότερη την προβολή της ιεραρχικής σχέσης των δεδομένων.

Για κάθε μονάδα μεταγλώττισης, δημιουργείται από προεπιλογή ένα σύνολο αρχείων δεδομένων δοκιμής που αντιστοιχούν σε όλες τις συναρτήσεις και η δημιουργία τιμών μπορεί να τροποποιηθεί από τον αριθμό των διαμορφώσεων.
4 MysqlΕμφανίζονται τα αποτελέσματα των δοκιμών του προγράμματος
Πώς να ολοκληρώσετε τη δημιουργία του πλαισίου προγράμματος οδήγησης, ακολουθεί μια λεπτομερής εξήγηση της πλήρους διαδικασίας δημιουργίας του προγράμματος ανοιχτού κώδικα MySQL.
Ακολουθεί το κύριο διάγραμμα διεπαφής του Wings που δοκιμάζει τη Mysql:
Κάντε κλικ στο κουμπί Αρχείο για να ορίσετε τον κατάλογο έργου του υπό δοκιμή προγράμματος προέλευσης. Αφού ολοκληρωθούν οι ρυθμίσεις, κάντε κλικ στη λειτουργία λειτουργίας, η οποία περιλαμβάνει κυρίως ανάλυση παραμέτρων, δημιουργία προγραμμάτων οδήγησης, δημιουργία αρχείων τιμών και προσθήκη προτύπου. Για την ανάλυση δημιουργούνται οι ακόλουθοι φάκελοι:
Μεταξύ αυτών, η μονάδα ανάλυσης παραμέτρων δημιουργεί FunXml και GlobalXml, τα οποία αποθηκεύουν τις πληροφορίες συνάρτησης και τις καθολικές μεταβλητές πληροφορίες κάθε εξαγόμενης μονάδας μεταγλώττισης αντίστοιχα.
Η μονάδα δημιουργίας προγραμμάτων οδήγησης θα δημιουργηθεί Wings_Projects αντίστοιχο φάκελο, ο οποίος αποθηκεύει τα αρχεία προγραμμάτων οδήγησης για κάθε μονάδα μεταγλώττισης
Η μονάδα δημιουργίας αξίας αποθηκεύει τα παραγόμενα δεδομένα δοκιμής για κάθε μονάδα μεταγλώττισης.
Το παρακάτω σχήμα δείχνει τις πληροφορίες δομής του αρχείου προγράμματος οδήγησης που φορτώνονται από τη Mysql και το δέντρο πλοήγησης στα αριστερά είναι το αρχείο προγράμματος οδήγησης που δημιουργήθηκε, το οποίο περιέχει τις συναρτήσεις κάθε μονάδας μεταγλώττισης, καθώς και τις παραμέτρους και τις καθολικές μεταβλητές των συναρτήσεων. Κάντε κλικ σε μία από τις μονάδες μεταγλώττισης για να φορτώσετε το αντίστοιχο αρχείο προγράμματος οδήγησης και το αντίστοιχο αρχείο τιμών.
Το παραπάνω είναι το αρχείο προγράμματος οδήγησης και το αρχείο τιμών που αντιστοιχεί στη συνολική γενιά της Mysql, και το αρχείο προγράμματος οδήγησης περιγράφεται αναλυτικά στον παρακάτω κώδικα.
● Για κάθε μονάδα μεταγλώττισης, η αναφορά της καθολικής μεταβλητής είναι εξωτερική.
●Η λειτουργία προγράμματος οδήγησης ονομάζεται ομοιόμορφα ως μέθοδος Driver_XXX, το JSON χρησιμοποιείται ως τρόπος λήψης δεδομένων δοκιμής και οι χρόνοι αντιπροσωπεύουν τον αριθμό των δοκιμών μιας μεμονωμένης συνάρτησης.
●Για κάθε λειτουργία εκχώρησης παραμέτρων, η αναλυμένη μορφή αποθήκευσης PSD χρησιμοποιείται για την εκχώρηση τιμών σε κάθε δομή επιπέδου με τη σειρά.
Η εφαρμογή του Wings είναι πολύ απλή, το παρακάτω είναι ένα στατιστικό ευρετήριο των παραγόμενων δεδομένων δοκιμής χρησιμοποιώντας κώδικα Mysql που μπορεί να μεταγλωττιστεί κανονικά στο Visual Studio 2015 για παράδειγμα, ολόκληρη η διαδικασία παραγωγής δεν απαιτεί χειροκίνητη παρέμβαση, χρειάζεται μόνο να διαμορφώσει τη διαδρομή του πηγαίου κώδικα που πρέπει να δημιουργηθεί και να οδηγηθεί.
Η MySQLΔεδομένα δοκιμής
  
Η Mysqlεκδοχή
  
5.5
CΑριθμός αρχείων κωδικών γλώσσας
578Ιδιώτες
Χρόνος που απαιτείται για την ανάλυση (PSDΧρόνος γενιάς)
149.099δευτ.
Ο χρόνος που απαιτείται για την προώθηση της παραγωγής
27.461δευτ.
Η τιμή δημιουργείται από το χρόνο που χρειάζεται για τη δημιουργία της
84.974 δευτ.
Οδηγίες διαμόρφωσης υπολογιστή:
  
Λειτουργικό σύστημα
  
Παράθυρα7
Επεξεργαστής
Inter(R) Πυρήνας (TM) i7-7700CPU 3.60GHz
Μνήμη
8,00 γιγαμπάιτ
Τύπος συστήματος
64Κομμάτι
Παρακάτω είναι τα αποτελέσματα που ελήφθησαν χρησιμοποιώντας το εργαλείο στατιστικών πηγαίου κώδικα, με περισσότερες από 4 εκατομμύρια γραμμές έγκυρου κώδικα δοκιμής μονάδας που δημιουργούνται από το Wings πλήρως αυτόματα. Αυτό που είναι ακόμη πιο ενδιαφέρον είναι ότι μπορεί να φανεί ότι το κόστος της χειροκίνητης ανάπτυξης αυτών των κωδικών φτάνει τους 1.079 ανθρωπομήνες και το κόστος φτάνει τα 10,79 εκατομμύρια.
Η Wings έχει πραγματοποιήσει το πρώτο βήμα εξερεύνησης από το πρόγραμμα για την αυτόματη δημιουργία του προγράμματος, η πρώτη έκδοση κυκλοφορεί αυτήν τη στιγμή, οι ενδιαφερόμενοι προγραμματιστές μπορούν να το κατεβάσουν απευθείας στην πλατφόρμα cloud κώδικα (https://gitee.com/teststars/wings_release), η εμπορική άδεια παρέχει μια απεριόριστη περίοδο εμπειρίας λειτουργίας ενός μήνα, μπορείτε να ζήσετε γρήγορα τη μαγική δύναμη του Wings, η έκδοση γλώσσας Wings c υποστηρίζει πολλές πλατφόρμες, όπως το visual studio, vxworks, gcc, qt κ.λπ. Το Wings σχεδιάστηκε και αναπτύχθηκε από την ομάδα δοκιμών Nebulas (www.teststar.cc) και οι ενδιαφερόμενοι προγραμματιστές μπορούν να έρθουν σε επαφή με την ομάδα δοκιμών Nebulas μέσω της διαδραστικής πλατφόρμας του Codecloud για να συνεισφέρουν τις σχεδιαστικές τους ιδέες και τα σχόλια χρήσης του προϊόντος (για τις εξαιρετικές προτάσεις που υιοθετήθηκαν, το Nebulas μπορεί να παρατείνει την περίοδο δωρεάν χρήσης του για τουλάχιστον τρεις μήνες). Το Wings έχει ένα ισχυρό, υποκείμενο γονίδιο για να βελτιώσει σημαντικά την ποιότητα του λογισμικού και στο μέλλον, το Wings θα βελτιστοποιήσει σε βάθος την αναγνωσιμότητα των αυτόματα γραμμένων προγραμμάτων (πιο κοντά στο επίπεδο γραφής των καλών προγραμματιστών) και την υποστήριξη για τη γλώσσα C++.





Προηγούμενος:Ανάπτυξη έξυπνων συμβολαίων Ethereum μέσω Nethereum και .NET
Επόμενος:Αποτυχία του Tencent Cloud Drive, με αποτέλεσμα οι χρήστες να "χάσουν εντελώς δεδομένα"
Δημοσιεύτηκε στις 6/8/2018 3:39:42 μ.μ. |
https://gitee.com/teststars/wings_releaseΔιεύθυνση έργου
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com