Android Εκπαιδευτικό σεμινάριο δοκιμής εφαρμογών με το πλαίσιο αυτοματισμού
⚡ Έξυπνη Σύνοψη
Android Οι δοκιμές εφαρμογών επαληθεύουν μια κατασκευή σε ένα κατακερματισμένο τοπίο συσκευών, συνδυάζοντας ελέγχους μονάδων, ενοποίησης, λειτουργίας και συστήματος με πλαίσια αυτοματισμού που εκτελούνται είτε σε μια συσκευή είτε απευθείας στο JVM.
Γιατί Android Δοκιμές;
Android είναι το μεγαλύτερο λειτουργικό σύστημα στον κόσμο. Συγχρόνως, Android είναι κατακερματισμένο: υπάρχουν τόνοι συσκευών και Android εκδόσεις με τις οποίες πρέπει να είναι συμβατή η εφαρμογή σας.
Δεν έχει σημασία πόσο χρόνο επενδύετε στο σχεδιασμό και την υλοποίηση, τα λάθη είναι αναπόφευκτα και θα εμφανιστούν σφάλματα.
Android Στρατηγική Δοκιμών
Ένα σωστό Android Η στρατηγική δοκιμών θα πρέπει να περιλαμβάνει τα ακόλουθα
- Δοκιμή μονάδας
- Έλεγχος ολοκλήρωσης
- Operaτεστ
- Δοκιμή συστήματος
Δοκιμές μονάδας
Οι Δοκιμές Μονάδων (Unit Tests) είναι σύνολα προγραμμάτων που έχουν σχεδιαστεί για την επαλήθευση μιας ατομικής μονάδας του πηγαίου κώδικα, όπως μια μέθοδος ή μια κλάση.
The Android η πλατφόρμα είναι προενσωματωμένη με το JUnit 3.0 framework. Είναι ένα framework ανοιχτού κώδικα για αυτοματοποίηση Δοκιμή μονάδαςκαι επιτρέπει στους προγραμματιστές να γράφουν αποτελεσματικά προγράμματα δοκιμών μονάδας.
Μια προσθήκη στις δοκιμές μονάδων είναι οι δοκιμές διεπαφής χρήστη (UI). Καλύπτουν τα στοιχεία UI της εφαρμογής-στόχου σας και διασφαλίζουν ότι επιστρέφει τη σωστή έξοδο για μια ακολουθία ενεργειών χρήστη στη συσκευή.
Ο συνήθης τρόπος εκτέλεσης δοκιμών UI σε μια συσκευή είναι Android Όργανα. Αλλά αυτό έχει προβλήματα απόδοσης. Ένα από τα καλύτερα εργαλεία για τη διεξαγωγή δοκιμών διεπαφής χρήστη Android is Robotium.
⚠️ Σημείωση έκδοσης: JUnit 3 τάξεις όπως InstrumentationTestCase είχαν καταργηθεί στο API 24. Τα τρέχοντα έργα χρησιμοποιούν AndroidΔοκιμή Χ, Espresso και Αυτοματοποιητής UI. Robotium δεν έχει κυκλοφορήσει από το 2016.
Δοκιμές ολοκλήρωσης
In Δοκιμή ολοκλήρωσης, όλες οι ενότητες που ελέγχονται σε μονάδες συνδυάζονται και επαληθεύονται. Android Αυτό συχνά σημαίνει έλεγχο της ενσωμάτωσης με στοιχεία όπως οι δοκιμές Υπηρεσίας, Δραστηριότητας και Παρόχου Περιεχομένου.
Πολλά πλαίσια δοκιμών χρησιμοποιούνται για τη διεξαγωγή δοκιμών ολοκλήρωσης για Android, όπως η Troyd, η Robolectric και Robotium.
Operaεθνικές δοκιμές
OperaΟι δοκιμασίες επιχειρησιακού χαρακτήρα, που ονομάζονται επίσης Λειτουργικές Δοκιμές ή Δοκιμές Αποδοχής, είναι δοκιμές υψηλού επιπέδου που ελέγχουν την πληρότητα και την ορθότητα της αίτησης.
In Android, FitNesse είναι ένα πλαίσιο ανοιχτού κώδικα που διευκολύνει την εκτέλεση λειτουργικών δοκιμών στην εφαρμογή-στόχο.
Δοκιμές συστήματος
In Δοκιμή συστήματος το σύστημα ελέγχεται στο σύνολό του και ελέγχεται η αλληλεπίδραση μεταξύ των στοιχείων, του λογισμικού και του υλικού.
In Android, Η δοκιμή συστήματος συνήθως περιλαμβάνει
- Δοκιμές GUI
- Δοκιμές χρηστικότητας
- Δοκιμές απόδοσης
- Δοκιμές άγχους
Στην παραπάνω λίστα, Δοκιμές Απόδοσης δίνεται περισσότερη εστίαση. Μπορείτε να χρησιμοποιήσετε εργαλεία όπως Tracπροβολή για τη διεξαγωγή δοκιμών απόδοσης σε AndroidΑυτό το εργαλείο μπορεί να σας βοηθήσει να εντοπίσετε σφάλματα στην εφαρμογή σας και να καταγράψετε την απόδοσή της. Tracη αξιολόγηση έχει πλέον καταργηθεί υπέρ του Προφίλ CPU.
Αυτοματοποιημένη Android Δοκιμές
As Android είναι κατακερματισμένο, οι δοκιμές σε πολλές συσκευές είναι απαραίτητες και αυτό κοστίζει χρήματα. Αυτοματοποιημένο Android Οι δοκιμές βοηθούν στη μείωση αυτού του κόστους.
Οφέλη από την αυτοματοποίηση Android δοκιμών
- Μειώστε το χρόνο για την εκτέλεση δοκιμαστικών υποθέσεων
- Αυξήστε την παραγωγικότητα της διαδικασίας ανάπτυξής σας
- Έγκαιρη ανίχνευση σφαλμάτων, εξοικονόμηση κόστους στη συντήρηση του λογισμικού
- Βρήκε γρήγορα και διορθώστε τα σφάλματα κατά την υλοποίηση
- Εξασφαλίστε την ποιότητα του λογισμικού
Θα μελετήσουμε τα ακόλουθα 2 πλαίσια
- Android Πλαίσιο δοκιμών
- Πλαίσιο ρομποηλεκτρικών δοκιμών
Android πλαίσιο δοκιμών
Ένα από τα τυπικά πλαίσια δοκιμών για Android εφαρμογές είναι η Android πλαίσιο δοκιμών. Είναι καλά ενσωματωμένο με το Android Τα εργαλεία SDK και η αρχιτεκτονική τους έχουν τρία μέρη.
- Το πακέτο εφαρμογής είναι η εφαρμογή-στόχος σας η οποία πρέπει να δοκιμαστεί.
- Το InstrumentationTestRunner είναι το Δοκιμαστική θήκη Εκτελώνταs που εκτελεί δοκιμαστικές περιπτώσεις στην εφαρμογή-στόχο. Περιλαμβάνει:
- Εργαλεία δοκιμής: Εργαλεία SDK για τη δημιουργία δοκιμών. Ενσωματώνονται στο IDE ή εκτελούνται από τη γραμμή εντολών.
- MonkeyRunner: Ένα εργαλείο που παρέχει API για τη σύνταξη προγραμμάτων που ελέγχουν ένα Android συσκευή ή εξομοιωτή εκτός Android κώδικας.
- Το πακέτο δοκιμής είναι οργανωμένο σε έργα δοκιμής και ακολουθεί μια σύμβαση ονομασίας. Εάν η εφαρμογή που υπό δοκιμή έχει όνομα πακέτου "com.mydomain.myapp", τότε το πακέτο δοκιμής θα πρέπει να είναι "com.mydomain.myapp.test". Το πακέτο δοκιμής περιλαμβάνει 2 αντικείμενα:
- Κατηγορίες δοκιμαστικών περιπτώσεων: περιλαμβάνουν μεθόδους δοκιμών που θα εκτελεστούν στην εφαρμογή-στόχο.
- Ψεύτικα αντικείμενα: συμπεριλάβετε εικονικά δεδομένα που θα χρησιμοποιηθούν ως δείγματα εισόδου για δοκιμαστικές περιπτώσεις.
Android Μαθήματα δοκιμαστικών περιπτώσεων
- Το TestCase περιλαμβάνει JUnit μεθόδους εκτέλεσης JUnit δοκιμή
- Το TestSuite χρησιμοποιείται για την εκτέλεση ενός συνόλου δοκιμαστικών περιπτώσεων
- Το InstrumentationTestSuite είναι ένα TestSuite που εισάγει την Instrumentation στο InstrumentationTestCase πριν την εκτελέσει.
- Το InstrumentationTestRunner εκτελεί δοκιμαστικές περιπτώσεις στην εφαρμογή-στόχο.
- AndroidΤο TestCase επεκτείνεται JUnit TestCase με μεθόδους για πρόσβαση σε πόρους όπως το Activity Context.
- Το ApplicationTestCase επαληθεύει τις κλάσεις Application σε ένα ελεγχόμενο περιβάλλον.
- Το InstrumentationTestCase επαληθεύει μια συγκεκριμένη λειτουργία ή συμπεριφορά, για παράδειγμα την έξοδο του UI της εφαρμογής.
- Το ActivityTestCase είναι η βασική κλάση που υποστηρίζει τον έλεγχο των Δραστηριότητες Εφαρμογής.
- Το ProviderTestCase είναι μια κλάση για τον έλεγχο ενός μόνο ContentProvider.
- Το ServiceTestCase δοκιμάζει τις κλάσεις υπηρεσιών σε ένα περιβάλλον δοκιμών και υποστηρίζει τον κύκλο ζωής της υπηρεσίας.
- Το SingleLaunchActivityTestCase χρησιμοποιείται για τον έλεγχο μίας μόνο Δραστηριότητας με ένα InstrumentationTestCase.
- Μονάδα ΔραστηριότηταςTestCase Χρησιμοποιείται για τον έλεγχο μεμονωμένης μεμονωμένης δραστηριότητας.
- ΔραστηριότηταΟργάνωσηTestCase2 επεκτείνει το JUnit Η κλάση TestCase σας συνδέει με την εφαρμογή-στόχο με όργανα, ώστε να έχετε πρόσβαση σε στοιχεία GUI και να στέλνετε συμβάντα UI, όπως πατήματα πλήκτρων ή αγγίγματα.
Παρακάτω είναι ένα παράδειγμα του ActivityInstrumentationTestCase. Επαληθεύει τη λειτουργία του UI μιας εφαρμογής Αριθμομηχανής και ελέγχει την ορθότητα των εξόδων του UI.
Πλαίσιο ρομποηλεκτρικών δοκιμών
Δοκιμή χρησιμοποιώντας το Android Η δοκιμή του πλαισίου με μια συσκευή ή έναν εξομοιωτή είναι δύσκολη. Η δημιουργία και η εκτέλεση δοκιμών είναι αργή και απαιτεί μεγάλη προσπάθεια ανάπτυξης. Για να διορθωθεί αυτό το πρόβλημα, υπάρχει μια άλλη επιλογή: το πλαίσιο δοκιμών Robolectric.
Το Robolectric σάς επιτρέπει να τρέχετε Android δοκιμές απευθείας στην JVM χωρίς την ανάγκη για συσκευή ή εξομοιωτή.
Μαθήματα ρομποηλεκτρικών δοκιμών
Το Robolectric μπορεί να εκτελέσει τις ακόλουθες ενέργειες:
- Εγγραφείτε και δημιουργήστε μια κλάση Shadow
- Αναχαιτίστε τη φόρτωση του Android τάξη
- Javaβοήθεια για την παράκαμψη των σωμάτων μεθόδου του Android τάξη
- Σύνδεση αντικειμένου σκιάς σε Android τάξη
Αυτό επιτρέπει στον υπό δοκιμή κώδικα να εκτελεστεί χωρίς Android περιβάλλοντος.
Άλλα πλαίσια δοκιμών
Εκτός από τα πλαίσια δοκιμών που αναφέρθηκαν παραπάνω, υπάρχουν πολλά άλλα, όπως:
- Android Έκθεση Junit, ένας προσαρμοσμένος δοκιμαστικός δρομέας οργάνων για Android που δημιουργεί αναφορές XML για ενοποίηση με άλλα εργαλεία.
- Espresso
- Appium
Μύθοι του Android Δοκιμές
Πολλές επιχειρήσεις αναπτύσσονται Android Δοκιμές στρατηγικές που βασίζονται σε κοινές παρανοήσεις. Αυτή η ενότητα εξετάζει μερικούς δημοφιλείς μύθους και πραγματικότητες Android δοκιμών.
Μύθος #1: Όλα Android οι συσκευές είναι οι ίδιες, επομένως η δοκιμή σε εξομοιωτές είναι αρκετή
Μια εφαρμογή μπορεί να λειτουργεί τέλεια σε εξομοιωτές, αλλά να παρουσιάζει σφάλμα κατά την εκτέλεση σε ορισμένες πραγματικές συσκευές.
Οι εξομοιωτές δεν επαρκούν για τις δοκιμές σας σε κινητά. Πρέπει να δοκιμάσετε την εφαρμογή σας σε πραγματικές συσκευές.
Μύθος #2: Οι δοκιμές σε ορισμένες κοινές συσκευές είναι αρκετές
Η εφαρμογή σας φαίνεται διαφορετική σε όλες τις συσκευές, επειδή το υλικό, τα μεγέθη οθόνης και η μνήμη διαφέρουν. Δοκιμάστε την σε μια σειρά συσκευών, εκδόσεων λειτουργικού συστήματος, δικτύων παρόχων και τοποθεσιών.
Μύθος #3: Αρκούν οι διερευνητικές δοκιμές λίγο πριν την κυκλοφορία
- Στις περισσότερες δοκιμές σχεδιάζουμε περιπτώσεις δοκιμών και στη συνέχεια τις εκτελούμε. Στις διερευνητικές δοκιμές, ο σχεδιασμός και η εκτέλεση συμβαίνουν μαζί.
- Δεν υπάρχει σχέδιο ή προετοιμασία, επομένως ο ελεγκτής εκτελεί όποιες δοκιμές επιλέξει. Ορισμένες συναρτήσεις δοκιμάζονται επανειλημμένα, ενώ άλλες δεν δοκιμάζονται ποτέ.
Μύθος #4: Εάν υπάρχουν κάποια σφάλματα στην εφαρμογή, οι χρήστες θα τα καταλάβουν
- Εάν η εφαρμογή δεν λειτουργεί και παρουσιάζει σφάλματα, οι χρήστες την απεγκαθιστούν.
- Τα ζητήματα ποιότητας είναι ο πρώτος λόγος για κακές κριτικές Google Παίξτε, βλάπτοντας τη φήμη σας και χάνοντας την εμπιστοσύνη των πελατών.
Επομένως, είναι απαραίτητο να υπάρχει μια σωστή Android στρατηγική δοκιμών σε ισχύ.
καλυτερα ασκησεις in Android Δοκιμές
- Οι προγραμματιστές εφαρμογών θα πρέπει να δημιουργούν τις δοκιμαστικές περιπτώσεις την ίδια στιγμή που γράφουν τον κώδικα
- Όλες οι δοκιμαστικές περιπτώσεις θα πρέπει να αποθηκεύονται στον έλεγχο έκδοσης, μαζί με τον πηγαίο κώδικα.
- Χρησιμοποιήστε συνεχή ενοποίηση και εκτελέστε δοκιμές κάθε φορά που αλλάζετε τον κώδικα
- Αποφύγετε να βασίζεστε μόνο σε emulators και rooted συσκευές. Επιβεβαιώστε τα αποτελέσματα σε πραγματικό υλικό με έναν επιθεωρητή όπως uiautomatorviewer





