Συνεχής δοκιμή σε DevOps

Τι είναι το Continuous Testing;

Συνεχής δοκιμή στο DevOps είναι ένας τύπος δοκιμής λογισμικού που περιλαμβάνει τη δοκιμή του λογισμικού σε κάθε στάδιο του κύκλου ζωής ανάπτυξης λογισμικού. Ο στόχος του Continuous testing είναι η αξιολόγηση της ποιότητας του λογισμικού σε κάθε βήμα της Διαδικασίας Συνεχούς Παράδοσης δοκιμάζοντας έγκαιρα και δοκιμάζοντας συχνά.

Η διαδικασία συνεχούς δοκιμής στο DevOps περιλαμβάνει ενδιαφερόμενα μέρη όπως οι προγραμματιστές, οι DevOps, η QA και Operaεθνικό σύστημα.

Σε τι διαφέρει το Continuous Testing;

Συνεχής δοκιμή
Συνεχής δοκιμή

Ο παλιός τρόπος δοκιμών ήταν κεντρικά. Το λογισμικό παραδόθηκε από τη μια ομάδα στην άλλη. Ένα έργο θα έχει συγκεκριμένες φάσεις Ανάπτυξης και Ποιότητας. Οι ομάδες QA πάντα ήθελαν περισσότερο χρόνο για να εξασφαλίσουν την ποιότητα. Στόχος ήταν η ποιότητα να υπερισχύσει του χρονοδιαγράμματος του έργου.

Ωστόσο, η επιχείρηση θέλει ταχύτερη παράδοση λογισμικού στον τελικό χρήστη. Όσο πιο νέο είναι το λογισμικό, τόσο καλύτερα μπορεί να διατεθεί στην αγορά και να αυξήσει τις δυνατότητες εσόδων της εταιρείας. Ως εκ τούτου, αναπτύχθηκε ένας νέος τρόπος δοκιμών.

Συνεχής σημαίνει απρόσκοπτη δοκιμή που γίνεται σε συνεχή βάση. Σε μια διαδικασία Continuous DevOps, μια αλλαγή λογισμικού (υποψήφια έκδοση) μετακινείται συνεχώς από την ανάπτυξη στη δοκιμή στην ανάπτυξη.

Συνεχής διαδικασία DevOps
Συνεχής διαδικασία DevOps

Ο κώδικας αναπτύσσεται, παραδίδεται, δοκιμάζεται και αναπτύσσεται συνεχώς.

Για παράδειγμα, κάθε φορά που ένας προγραμματιστής ελέγχει τον κώδικα στον διακομιστή πηγαίου κώδικα, όπως το αυτοματοποιημένο σύνολο δοκιμών μονάδας Jenkins, εκτελούνται στη συνεχή διαδικασία. Εάν οι δοκιμές αποτύχουν, η έκδοση απορρίπτεται και ο προγραμματιστής ειδοποιείται. Εάν το build περάσει τη δοκιμή, αναπτύσσεται σε διακομιστές απόδοσης, QA για εξαντλητικές δοκιμές λειτουργίας και φόρτωσης. Τα τεστ εκτελούνται παράλληλα. Εάν οι δοκιμές περάσουν, το λογισμικό αναπτύσσεται στην παραγωγή.

Το Continuous Testing είναι ένα μικρό γρανάζι στον κύκλο συνεχούς ανάπτυξης, ενοποίησης και ανάπτυξης.

Τρέχουσα στοίβα δοκιμής
Τρέχουσα στοίβα δοκιμής

Η ανάπτυξη λογισμικού δεν είναι ίδια όπως στο παρελθόν, μειώνουμε την ανάπτυξη από μήνα σε εβδομάδες. Η τρέχουσα δοκιμαστική στοίβα (δείτε την παραπάνω εικόνα) τιτλοφορείται για τη δοκιμή διεπαφής χρήστη. Αλλά ο στόχος είναι να έχουμε όλο και περισσότερες αυτοματοποιημένες δοκιμές μονάδων.

Πώς διαφέρει η συνεχής δοκιμή από την αυτοματοποίηση δοκιμών;

Δοκιμαστική αυτοματοποίηση vs Συνεχής δοκιμή

Παράμετρος Δοκιμή αυτοματισμού Συνεχής δοκιμή
Ορισμός Ο αυτοματισμός δοκιμής είναι μια διαδικασία όπου χρησιμοποιείται εργαλείο ή λογισμικό για την αυτοματοποίηση εργασιών. Είναι μια μεθοδολογία δοκιμής λογισμικού που εστιάζει στην επίτευξη συνεχούς ποιότητας και βελτίωσης.
Σκοπός Ένα σύνολο παρόμοιων ή επαναλαμβανόμενων εργασιών, ένα μηχάνημα μπορεί να εκτελέσει, πιο γρήγορα, με λιγότερα λάθη. Η συνεχής διαδικασία δοκιμών βοηθά στην εύρεση του κινδύνου, την αντιμετώπισή τους και τη βελτίωση της ποιότητας του προϊόντος.
Προαπαιτούμενο Δυνατότητα αυτοματισμού στις δοκιμές χωρίς την ενσωμάτωση συνεχών δοκιμών. Οι συνεχείς δοκιμές δεν μπορούν να εφαρμοστούν χωρίς αυτοματοποίηση δοκιμής.
Χρόνος Η κυκλοφορία λογισμικού μπορεί να διαρκέσει από ένα μήνα έως και χρόνια. Η έκδοση λογισμικού μπορεί να κυκλοφορεί εβδομαδιαία έως ωριαία.
Ανατροφοδότηση Τακτική ανατροφοδότηση μετά τη δοκιμή κάθε έκδοσης. Η ανατροφοδότηση σε κάθε στάδιο πρέπει να είναι άμεση.
Ιστορικό Οι αυτοματοποιημένες δοκιμές γίνονται εδώ και δεκαετίες για να κάνουν τη διαδικασία δοκιμών ταχύτερη. Η συνεχής δοκιμή είναι μια σχετικά νεότερη έννοια.

Πώς να κάνετε συνεχείς δοκιμές

  • Χρήση σε εργαλεία για τη δημιουργία δοκιμαστικής σουίτας αυτοματισμού από ιστορίες/απαιτήσεις χρηστών
  • Δημιουργία περιβάλλοντος δοκιμής.
  • Αντιγράψτε και ανωνυμοποιήστε τα δεδομένα παραγωγής για να δημιουργήσετε κρεβάτι δεδομένων δοκιμής
  • Χρησιμοποιήστε εικονικοποίηση υπηρεσίας για να δοκιμάσετε το API
  • Παράλληλη δοκιμή απόδοσης

Εργαλεία συνεχούς δοκιμής

Εδώ είναι μια επιμελημένη λίστα με τα καλύτερα Εργαλεία συνεχούς δοκιμής :

1) QuerySurge

QuerySurge είναι η έξυπνη λύση δοκιμών δεδομένων που είναι η πρώτη στο είδος της ολοκληρωμένη λύση DevOps για συνεχείς δοκιμές δεδομένων. Τα βασικά χαρακτηριστικά περιλαμβάνουν το Robust API με 60+ κλήσεις, λεπτομερή ευφυΐα δεδομένων και αναλύσεις δεδομένων, απρόσκοπτη ενσωμάτωση στη γραμμή DevOps για συνεχείς δοκιμές και επαληθεύει γρήγορα μεγάλες ποσότητες δεδομένων.

Ξεκινήστε τις δοκιμές δωρεάν

2) Τζένκινς

Το Jenkins είναι ένα εργαλείο συνεχούς ολοκλήρωσης που έχει γραφτεί χρησιμοποιώντας Java γλώσσα. Αυτό το εργαλείο μπορεί να διαμορφωθεί μέσω εντολών διεπαφής GUI ή κονσόλας.

Download link: https://jenkins.io/

3) Τράβις

Το Travis είναι ένα εργαλείο συνεχούς δοκιμής που φιλοξενείται στο GitHub. Προσφέρει παραλλαγές φιλοξενίας και εσωτερικής εγκατάστασης. Παρέχει μια ποικιλία διαφορετικών γλωσσών και μια καλή τεκμηρίωση.

Download link: https://travis-ci.org/

4) Selenium

Selenium είναι εργαλείο δοκιμής λογισμικού ανοιχτού κώδικα. Υποστηρίζει όλα τα κορυφαία προγράμματα περιήγησης όπως Firefox, Chrome, IE και Safari. Selenium Το WebDriver χρησιμοποιείται για την αυτοματοποίηση της δοκιμής εφαρμογών Ιστού.

Download link: https://www.seleniumhq.org/

Οφέλη από τις συνεχείς δοκιμές

  • Επιτάχυνση της παράδοσης λογισμικού
  • Η συνεχής δοκιμή βελτιώνει την ποιότητα του κώδικα
  • Βοηθά στην αξιολόγηση της ακριβούς κάλυψης επιχειρηματικού κινδύνου.
  • Ενσωματώνεται απρόσκοπτα στη διαδικασία DevOps
  • Βοηθά στη δημιουργία μιας ευέλικτης και αξιόπιστης διαδικασίας σε λίγες μόνο ώρες αντί για μήνες.
  • Επιταχύνει τη μετάβαση στην αγορά με μηχανισμό συνεχούς ανάδρασης.
  • Συγχωνεύει παραδοσιακά αποστειρωμένες ομάδες για να καλύψει τις σύγχρονες επιχειρηματικές ανάγκες. Διαλύει την αποσύνδεση μεταξύ των ομάδων ανάπτυξης, δοκιμών και λειτουργιών.
  • Το Test Automation βοηθά στην επίτευξη συνέπειας διατηρώντας την ίδια διαμόρφωση για όλες τις σχετικές δοκιμές.
  • Δίνει έμφαση στις επιχειρηματικές προσδοκίες για τον μετριασμό των επιχειρηματικών κινδύνων
  • Παροχή πανταχού παρούσας πρόσβασης σε περιβάλλον δοκιμών με Virtualization υπηρεσίας

Προκλήσεις συνεχών δοκιμών

  • Η παραδοσιακή διαδικασία περιορίζει την πολιτισμική μετατόπιση μεταξύ των επαγγελματιών Ανάπτυξης και Ποιότητας.
  • Έλλειψη δεξιοτήτων DevOps και σωστών εργαλείων για δοκιμές σε περιβάλλοντα Agile & DevOps.
  • Ετερογενή περιβάλλοντα δοκιμών που δεν θα αντικατοπτρίζουν ποτέ το περιβάλλον παραγωγής.
  • Συμβατική διαδικασία δοκιμών και χαλαρά καθορισμένη διαχείριση δεδομένων δοκιμής.
  • Οι μεγαλύτεροι κύκλοι ενσωμάτωσης κώδικα δημιουργούν προβλήματα ενοποίησης και καθυστερημένες επιδιορθώσεις ελαττωμάτων
  • Ανεπαρκείς και αναποτελεσματικοί πόροι και περιβάλλοντα δοκιμών
  • Πολύπλοκη αρχιτεκτονική εφαρμογών και επιχειρηματική λογική που περιορίζει την υιοθέτηση DevOps.

Συμπέρασμα

  • Στη Μηχανική Λογισμικού, η συνεχής δοκιμή είναι μια διαδικασία δοκιμών νωρίς, δοκιμών συχνά, δοκιμών παντού και αυτοματοποίησης.
  • Ο παλιός τρόπος δοκιμών ήταν ένας κεντρικός τρόπος μεταβίβασης. Το λογισμικό παραδίδεται από τη μια ομάδα στην άλλη
  • Τζένκινς, Τράβις και Selenium είναι δημοφιλείς Συνεχείς Δοκιμές και Εργαλεία ολοκλήρωσης.
  • Το Continuous Testing παρέχει ανατροφοδότηση με δυνατότητα δράσης σύμφωνα με κάθε στάδιο του αγωγού παράδοσης.
  • Η συνεχής δοκιμή βοηθά στη βελτίωση της ποιότητας του κώδικα
  • Η παραδοσιακή διαδικασία περιορίζει την πολιτισμική μετατόπιση μεταξύ των επαγγελματιών Ανάπτυξης και Ποιότητας.
  • Οι μεγαλύτεροι κύκλοι ενσωμάτωσης κώδικα δημιουργούν προβλήματα ενοποίησης και καθυστερημένες επιδιορθώσεις ελαττωμάτων