Γιατί δοκιμές Android;
Το Android είναι το μεγαλύτερο λειτουργικό σύστημα στον κόσμο. Ταυτόχρονα, το Android είναι κατακερματισμένο. Υπάρχουν τόνοι συσκευών και εκδόσεων Android με τις οποίες η εφαρμογή σας πρέπει να είναι συμβατή.
Δεν έχει σημασία πόσος χρόνος επενδύετε στο σχεδιασμό και την εφαρμογή, τα λάθη είναι αναπόφευκτα και θα εμφανιστούν σφάλματα.
Σε αυτό το σεμινάριο, θα μάθετε-
- Γιατί δοκιμές Android;
- Στρατηγική δοκιμών Android
- Δοκιμές μονάδας
- Δοκιμές ολοκλήρωσης
- Επιχειρησιακές δοκιμές
- Δοκιμές συστήματος
- Αυτοματοποιημένη δοκιμή ANDROID
- Πλαίσιο δοκιμών Android
- Ρομπολεκτρικό πλαίσιο δοκιμών
- Μύθοι για δοκιμές Android
- Βέλτιστες πρακτικές στο Android Testing
Στρατηγική δοκιμών Android
Μια σωστή στρατηγική δοκιμών Android πρέπει να περιλαμβάνει τα ακόλουθα
- Δοκιμή μονάδας
- Δοκιμή ολοκλήρωσης
- Επιχειρησιακή δοκιμή
- Δοκιμή συστήματος
Δοκιμές μονάδας
Οι δοκιμές μονάδας περιλαμβάνουν σύνολα ενός ή περισσοτέρων προγραμμάτων τα οποία έχουν σχεδιαστεί για την επαλήθευση μιας ατομικής μονάδας πηγαίου κώδικα, όπως μια μέθοδος ή μια κλάση.
Η πλατφόρμα Android διαθέτει προ-ενσωματωμένο πλαίσιο Junit 3.0. Είναι πλαίσιο ανοιχτού κώδικα για αυτοματοποίηση δοκιμών μονάδας. Το Android Testing Framework είναι ένα ισχυρό εργαλείο για τον προγραμματιστή για τη σύνταξη του αποτελεσματικού προγράμματος δοκιμών μονάδας.
Η ενσωμάτωση του πλαισίου Android και JUnit
Μια προσθήκη στη δοκιμή μονάδας είναι οι δοκιμές διεπαφής χρήστη (UI). Αυτές οι δοκιμές σχετίζονται με στοιχεία διεπαφής χρήστη της εφαρμογής στόχου σας. Οι δοκιμές διεπαφής χρήστη διασφαλίζουν ότι η εφαρμογή σας επιστρέφει τη σωστή έξοδο διεπαφής χρήστη ως απάντηση στην ακολουθία ενεργειών χρήστη στη συσκευή.
Συνήθεις ενέργειες διεπαφής χρήστη κατά την εφαρμογή
Ο κοινός τρόπος εκτέλεσης των δοκιμών διεπαφής χρήστη στη συσκευή είναι η οργάνωση Android Αυτό όμως έχει προβλήματα απόδοσης. Ένα από τα καλύτερα εργαλεία για τη διεξαγωγή δοκιμών UI στο Android είναι το Robotium.
Δοκιμές ολοκλήρωσης
Στο Integration Testing, όλες οι μονάδες που δοκιμάστηκαν από τη μονάδα, συνδυάζονται και επαληθεύονται. Στο Android, οι δοκιμές ενοποίησης συχνά περιλαμβάνουν τον έλεγχο ενσωμάτωσης με στοιχεία Android, όπως Δοκιμή υπηρεσίας, Δοκιμή δραστηριότητας, δοκιμή Παροχέα περιεχομένου κ.λπ.
Τύποι δοκιμής ενοποίησης σε Android
Υπάρχουν πολλά πλαίσια δοκιμών που χρησιμοποιούνται για τη διεξαγωγή δοκιμών ενοποίησης για Android όπως Troyd, Robolectric, Robotium.
Επιχειρησιακές δοκιμές
- Οι λειτουργικές ονομάζονται επίσης λειτουργικές δοκιμές ή δοκιμές αποδοχής. Πρόκειται για δοκιμές υψηλού επιπέδου που έχουν σχεδιαστεί για να ελέγχουν την πληρότητα και την ορθότητα της εφαρμογής.
- Στο Android, το FitNesse είναι ένα πλαίσιο ανοιχτού κώδικα που διευκολύνει τη διεξαγωγή λειτουργικών δοκιμών για την εφαρμογή στόχου.
Δοκιμές συστήματος
Στο System Testing το σύστημα ελέγχεται στο σύνολό του και ελέγχεται η αλληλεπίδραση μεταξύ των στοιχείων, του λογισμικού και του υλικού.
Στο Android, το System Testing συνήθως περιλαμβάνει
- Δοκιμές GUI
- Δοκιμές ευχρηστίας
- Δοκιμές απόδοσης
- Δοκιμές στρες
Στην παραπάνω λίστα, η Δοκιμή απόδοσης δίνεται μεγαλύτερη εστίαση. Μπορείτε να χρησιμοποιήσετε εργαλεία όπως το Traceview για τη διεξαγωγή δοκιμής απόδοσης σε Android. Αυτό το εργαλείο μπορεί να σας βοηθήσει να εντοπίσετε σφάλματα στην εφαρμογή σας και να σχεδιάσετε την απόδοσή της.
Αυτοματοποιημένη δοκιμή ANDROID
Καθώς το Android είναι κατακερματισμένο, απαιτείται δοκιμή σε πολλές συσκευές. Αλλά αυτό θα σας κοστίσει επίσης χρήματα. Η αυτοματοποιημένη δοκιμή Android μπορεί να μειώσει το κόστος
Οφέλη των αυτοματοποιημένων δοκιμών Android
- Μειώστε το χρόνο εκτέλεσης δοκιμαστικών περιπτώσεων
- Αυξήστε την παραγωγικότητα της διαδικασίας ανάπτυξης
- Έγκαιρη ανίχνευση σφαλμάτων, εξοικονομήστε κόστος στη συντήρηση λογισμικού
- Βρέθηκαν γρήγορα και διορθώστε τα σφάλματα κατά την εφαρμογή
- Εξασφαλίστε την ποιότητα του λογισμικού
Θα μελετήσουμε τα ακόλουθα 2 πλαίσια
- Πλαίσιο δοκιμών Android
- Πλαίσιο Robolectric Testing
Πλαίσιο δοκιμών Android
Ένα από τα τυπικά πλαίσια δοκιμών για την εφαρμογή Android είναι το πλαίσιο δοκιμών Android . Είναι ένα ισχυρό και εύχρηστο πλαίσιο δοκιμών που είναι καλά ενσωματωμένο με τα εργαλεία Android SDK.
Αρχιτεκτονική πλαισίου δοκιμών Android
- Το πακέτο εφαρμογών είναι η εφαρμογή-στόχος σας που πρέπει να δοκιμαστεί
- InstrumentationTestRunner είναι ο δρομέας Test Case που εκτελεί δοκιμαστική θήκη στην εφαρμογή-στόχο. Περιλαμβάνει:
2α) Εργαλεία δοκιμής: Εργαλεία SDK για δοκιμή δόμησης. Ενσωματώνονται στο Eclipse IDE ή εκτελούνται ως γραμμή εντολών.
2b) MonkeyRunner: Ένα εργαλείο που παρέχει API για πρόγραμμα γραφής που ελέγχει μια συσκευή Android ή έναν εξομοιωτή εκτός του κώδικα Android.
- Το πακέτο δοκιμής οργανώνεται σε δοκιμαστικά έργα. Αυτό το πακέτο ακολουθεί τη σύμβαση ονομασίας. Εάν η υπό δοκιμή εφαρμογή έχει το όνομα πακέτου "com.mydomain.myapp" από το Test package θα πρέπει να είναι "com.mydomain.myapp.test". Το πακέτο δοκιμής περιλαμβάνει 2 αντικείμενα όπως παρακάτω:
3α) Κατηγορίες δοκιμαστικών περιπτώσεων: περιλαμβάνουν μεθόδους δοκιμής που θα εκτελεστούν στην εφαρμογή στόχου
3b) Mock αντικείμενα: περιλαμβάνει πλαστά δεδομένα που θα χρησιμοποιηθούν ως δείγμα εισαγωγής για δοκιμαστικές περιπτώσεις.
Μαθήματα δοκιμής Android
Διάγραμμα κλάσης AndroidTestCase
- Το TestCase περιλαμβάνει μεθόδους JUnit για την εκτέλεση δοκιμής JUnit
- Το TestSuite χρησιμοποιείται για την εκτέλεση σετ δοκιμαστικών περιπτώσεων
- InstrumentationTestSuite είναι ένα TestSuite που εγχέει Instrumentation στο InstrumentationTestCase πριν από την εκτέλεση τους.
- InstrumentationTestRunner είναι ο δρομέας δοκιμαστικής υπόθεσης που εκτελεί δοκιμαστική θήκη στην εφαρμογή-στόχο.
- Το AndroidTestCase επεκτείνει το JUnit TestCase. Περιέχει μεθόδους για πρόσβαση σε πόρους όπως το Activity Activity.
- Το ApplicationTestCase επαληθεύει τις κλάσεις εφαρμογών σε ελεγχόμενο περιβάλλον.
- Το InstrumentationTestCase επαληθεύει μια συγκεκριμένη δυνατότητα ή συμπεριφορά της εφαρμογής στόχου, για παράδειγμα, επαλήθευση της εξόδου της διεπαφής χρήστη της εφαρμογής.
- Το ActivityTestCase είναι βασική κλάση που υποστηρίζει τον έλεγχο των δραστηριοτήτων εφαρμογής.
- Το ProviderTestCase είναι κλάση για τη δοκιμή ενός μοναδικού ContentProvider.
- Το ServiceTestCase χρησιμοποιείται για τη δοκιμή τάξεων υπηρεσιών σε περιβάλλον δοκιμών. Υποστηρίζει επίσης τον κύκλο ζωής της υπηρεσίας.
- Το SingeLauchActivityTestCase χρησιμοποιείται για τη δοκιμή μιας δραστηριότητας με ένα InstrumentationTestCase.
- Το ActivityUnitTestCase
χρησιμοποιείται για τον έλεγχο μιας μεμονωμένης δραστηριότητας. - Το ActivityInstrumentationTestCase2
επεκτείνει την κλάση JUnit TestCase. Σας συνδέει για να στοχεύσετε την εφαρμογή με όργανα. Με αυτήν την τάξη, μπορείτε να αποκτήσετε πρόσβαση στο στοιχείο GUI της εφαρμογής και να στείλετε συμβάν UI (πληκτρολόγιο ή συμβάν αφής) στη διεπαφή χρήστη.
Ακολουθεί ένα παράδειγμα ActivityInstrumentationTestCase. Επαληθεύει τη λειτουργία UI της εφαρμογής Αριθμομηχανή, ελέγχει την ορθότητα των εξόδων UI.
Παράδειγμα δοκιμής ActivityInstrumentationTestCase2
Ρομπολεκτρικό πλαίσιο δοκιμών
Η δοκιμή χρησιμοποιώντας το Android Testing framework με συσκευή ή εξομοιωτή είναι δύσκολη. Η δοκιμή οικοδόμησης και λειτουργίας είναι αργή και απαιτεί πολλή προσπάθεια ανάπτυξης. Για να διορθώσετε αυτό το πρόβλημα, υπάρχει μια άλλη επιλογή - το πλαίσιο δοκιμών Robolectric .
Το ρομπολεκτρικό πλαίσιο σάς επιτρέπει να εκτελείτε δοκιμές Android απευθείας στο JVM χωρίς την ανάγκη για συσκευή ή εξομοιωτή.
Προηγμένα χαρακτηριστικά του Robolectric
Μαθήματα Robolectric Test Case
Λειτουργία του Robolectric
- Όπως φαίνεται παραπάνω, το Robolectric μπορεί να εκτελέσει τις ακόλουθες ενέργειες:
- Εγγραφείτε και δημιουργήστε μια κατηγορία Shadow
- Διακοπή φόρτωσης της κλάσης Android
- Χρησιμοποιεί το javaassist για να παρακάμψει τα σώματα μεθόδου της κλάσης Android
- Δεσμός αντικειμένου σκιάς σε κλάση Android
- Αυτό επιτρέπει στον κώδικα υπό δοκιμή να εκτελεστεί χωρίς περιβάλλον Android.
Άλλα πλαίσια δοκιμών
Εκτός από τα δοκιμαστικά πλαίσια που αναφέρθηκαν παραπάνω, υπάρχουν πολλά άλλα πλαίσια δοκιμών όπως:
- Αναφορά Android Junit, ένα πρόγραμμα δοκιμών προσαρμοσμένων οργάνων για Android που δημιουργεί αναφορές XML για ενσωμάτωση με άλλα εργαλεία.
- Expresso
- Όπιο
Μύθοι για δοκιμές Android
Πολλές επιχειρήσεις αναπτύσσουν στρατηγικές δοκιμών Android που βασίζονται σε κοινές παρανοήσεις. Αυτή η ενότητα εξετάζει μερικούς δημοφιλείς μύθους και πραγματικότητες των δοκιμών Android.
Μύθος # 1: Όλες οι συσκευές Android είναι ίδιες… αρκεί η δοκιμή σε εξομοιωτές
Ας ξεκινήσουμε με ένα απλό παράδειγμα. Μια εφαρμογή λειτουργεί τέλεια σε εξομοιωτή, αλλά σε ορισμένες πραγματικές συσκευές, διακόπτεται κατά την εκτέλεση
Η εφαρμογή διακόπτεται κατά την εκτέλεση σε πραγματική συσκευή
Οι εξομοιωτές δεν επαρκούν για τη δοκιμή του κινητού σας. Πρέπει να δοκιμάσετε την εφαρμογή σας σε πραγματικές συσκευές.
Μύθος # 2: Αρκεί η δοκιμή σε ορισμένες κοινές συσκευές
- Σε διαφορετικές συσκευές, η εφαρμογή σας φαίνεται διαφορετική επειδή διαφορετικές συσκευές έχουν διαφορετικό υλικό, μεγέθη οθόνης, μνήμη κ.λπ. Πρέπει να δοκιμάσετε την εφαρμογή σας σε διαφορετικές συσκευές, εκδόσεις λειτουργικού συστήματος, δίκτυα φορέα και τοποθεσίες.
Μύθος # 3: Η διερευνητική δοκιμή λίγο πριν από την κυκλοφορία είναι αρκετή
- Γενικά σε όλες τις δοκιμές, σχεδιάζουμε τις δοκιμαστικές περιπτώσεις και στη συνέχεια τις εκτελούμε. Όμως, στις εξερευνητικές δοκιμές, ο σχεδιασμός και η εκτέλεση δοκιμών θα γίνουν μαζί.
- Στις διερευνητικές δοκιμές, δεν υπάρχει σχέδιο και καμία προετοιμασία, τότε ο εξεταστής θα έκανε δοκιμές που θέλει να κάνει. Ορισμένες λειτουργίες θα δοκιμαστούν επανειλημμένα, ενώ ορισμένες λειτουργίες δεν θα δοκιμαστούν εντελώς.
Μύθος # 4: Εάν υπάρχουν κάποια σφάλματα στην εφαρμογή, οι χρήστες θα καταλάβουν
- Εάν η εφαρμογή δεν λειτουργεί και παρουσιάζει σφάλματα, οι χρήστες απεγκαθιστούν την εφαρμογή σας
- Τα ζητήματα ποιότητας είναι ο πρώτος λόγος για κακή κριτική στο Google Play. Επηρεάζει τη φήμη σας και χάνετε την εμπιστοσύνη του πελάτη.
Ως εκ τούτου, είναι απαραίτητο να υπάρχει μια σωστή στρατηγική δοκιμών Android
Βέλτιστες πρακτικές στο Android Testing
- Οι προγραμματιστές εφαρμογών θα πρέπει να δημιουργήσουν τις δοκιμαστικές περιπτώσεις ταυτόχρονα με τη σύνταξη του κώδικα
- Όλες οι δοκιμαστικές περιπτώσεις πρέπει να αποθηκεύονται σε έλεγχο έκδοσης, μαζί με τον πηγαίο κώδικα
- Χρησιμοποιήστε συνεχή ενοποίηση και εκτελέστε δοκιμές κάθε φορά που αλλάζει ο κωδικός
- Αποφύγετε τη χρήση εξομοιωτών και ριζωμένων συσκευών