Δοκιμή σαν το Google: Βέλτιστες πρακτικές από τους γίγαντες του κλάδου (04.24.24)

Μπορούμε να μάθουμε πολλά από τους γίγαντες του κλάδου παρατηρώντας τις μεθόδους και τις προσεγγίσεις τους στις ροές εργασίας.

Πώς καταφέρνουν να διατηρήσουν τη διαδικασία δοκιμής λογισμικού σε εκατομμύρια γραμμές κώδικα; Πώς οργανώνουν τη ροή εργασίας με χιλιάδες μηχανικούς QA;

Πώς αντιμετωπίζουν την επέκταση του έργου;

Η εμπειρία εταιρειών όπως η Google ή το Spotify μπορεί να βοηθήσει στη βελτίωση των διαδικασιών δοκιμών σε μικρές εταιρείες και ομάδες.

Ας ρίξουμε μια πιο προσεκτική ματιά στο πώς δοκιμάζουν οι γίγαντες.

Google: η σημασία της κάλυψης κώδικα

Ωστόσο, πολλοί μηχανικοί υποστηρίζουν τη σημασία ενός τέτοιου μέτρου απόδοσης δοκιμής λογισμικού ως κάλυψη κώδικα. Ειδικοί από την Google επιμένουν ότι τα δεδομένα κάλυψης κώδικα μπορεί να είναι πολύτιμες πληροφορίες για την αξιολόγηση κινδύνων και σημείων συμφόρησης σε μια δοκιμαστική δραστηριότητα. Οι Carlos Arguelles, Marko Ivanković και Adam Bender μοιράζονται βέλτιστες πρακτικές για την κάλυψη κώδικα:

  • Η κάλυψη κώδικα μπορεί να συμβάλει στη μείωση σφαλμάτων και βλαβών. Η εμπειρία των μηχανικών QA από την Google έδειξε ότι η αύξηση της κάλυψης κώδικα οδηγεί σε αλλαγές στις προσεγγίσεις και τη στάση απέναντι στις δοκιμές. Ομάδες με κάλυψη κώδικα ως πρωταρχικοί στόχοι τείνουν να κάνουν καλύτερη δοκιμή των προϊόντων τους. Γράφουν πιο αποτελεσματικό κώδικα για τη δοκιμή για την επίτευξη στόχων δοκιμών ευκολότερα και λιγότερο χρονοβόρα.
  • Χρησιμοποιήστε δοκιμές μετάλλαξης για να εξασφαλίσετε υψηλή κάλυψη δοκιμών. Η πλήρης κάλυψη κώδικα μπορεί να είναι άχρηστη και δεν εγγυάται κάλυψη δοκιμών υψηλής ποιότητας. Ένα υψηλό ποσοστό κάλυψης κώδικα δεν σημαίνει ότι όλες οι λειτουργίες ελέγχθηκαν σωστά. Αυτό σημαίνει ότι ο κώδικας δοκιμάστηκε συνολικά. Για να διασφαλιστεί υψηλή ποιότητα κάλυψης δοκιμών, οι ειδικοί της Google προτείνουν τη χρήση δοκιμών μετάλλαξης. Αυτή η μέθοδος περιλαμβάνει την εφαρμογή μικρών αλλαγών κώδικα και τον έλεγχο του τρόπου ταυτοποίησης των δοκιμαστικών συνόλων.
  • Το ποσοστό κάλυψης κώδικα εξαρτάται από πολλούς παράγοντες. Δεν πρέπει να στοχεύουμε στην κάλυψη υψηλού κώδικα, αλλά η χαμηλή κάλυψη οδηγεί επίσης σε μεγάλο αριθμό αποτυχιών. Και το ερώτημα είναι, ποια είναι η ειδική κάλυψη κώδικα για ένα συγκεκριμένο σύστημα; Για να απαντήσουμε σε αυτήν την ερώτηση, θα πρέπει να εξετάσουμε πράγματα όπως η κριτική, η πολυπλοκότητα και η συχνότητα αλλαγής κώδικα. Η κάλυψη κώδικα είναι επιχειρηματική απόφαση και οι κάτοχοι προϊόντων πρέπει να την ορίσουν.
  • Αναλύστε τι πρέπει να καλύψετε. Δεν μπορούμε να λάβουμε κάλυψη κώδικα 100%, οπότε οι μηχανικοί της QA πρέπει να το παρατηρήσουν καλύπτονται τα πιο πολύτιμα μέρη του κώδικα. Μια ομάδα προγραμματιστών πρέπει να συζητά και να μην σκέφτεται πόσες γραμμές κώδικα καλύπτονται, αλλά τι ακριβώς καλύπτεται.
Spotify: αξιόπιστη στρατηγική

Η Spotify είναι μια ταχέως αναπτυσσόμενη εταιρεία. Ιδρύθηκε το 2008 με 150 υπαλλήλους. Το 2019 ο αριθμός των εργαζομένων αυξήθηκε σε 4 405. Σήμερα, το Spotify εξυπηρετεί περίπου 300 εκατομμύρια χρήστες παγκοσμίως, καθιστώντας την την πιο δημοφιλή υπηρεσία ροής στον κόσμο.

Μπορούμε να μάθουμε μαθήματα σχετικά με το πώς το Spotify κλιμακώνει τις δοκιμές του και διαδικασίες ανάπτυξης.

  • Ορίστε στόχους προϊόντος για την ομάδα QA. Το Spotify έχει ομάδες πολλαπλών λειτουργιών. Κάθε ομάδα έχει στόχους και ένα σύνολο ειδικών δεξιοτήτων για να προσεγγίσει αυτούς τους στόχους. Η δομή της ομάδας εξαρτάται από τους στόχους. Ως εκ τούτου, ορισμένες ομάδες αποτελούνται μόνο από προγραμματιστές και ορισμένες έχουν προγραμματιστές και δοκιμαστές. Έτσι, οι υπεύθυνοι δοκιμών συνεργάζονται στενά με την ομάδα ανάπτυξης και επικεντρώνονται στους πρωταρχικούς στόχους του προϊόντος. Μια τέτοια προσέγγιση επιτρέπει στο Spotify να κλιμακώσει αποτελεσματικά τη διαδικασία ανάπτυξης.
  • Ο έλεγχος αυτοματισμού είναι ένα εργαλείο, αλλά όχι πανάκεια. Ο διαχειριστής δοκιμών και ανάπτυξης στο Spotify Kristian Karl ισχυρίζεται ότι οι δοκιμαστές λογισμικού δεν μπορούν να αντικατασταθούν από αυτοματοποίηση. Η δοκιμή απαιτεί ανθρώπινη εμπειρία και γνώση. Ο έλεγχος αυτοματισμού είναι ένα ισχυρό εργαλείο για την επιτάχυνση της διαδικασίας, αλλά οι άνθρωποι λαμβάνουν αποφάσεις και αναλύουν αυτοματοποιημένες αναφορές. Το Spotify χρησιμοποιεί αυτοματισμό ως ένα από τα εργαλεία κλίμακας. Επιτρέπει στους δοκιμαστές να αφήνουν ρουτίνα για αλγόριθμους και να επικεντρώνονται σε στόχους προϊόντων.
SpaceX: η συνεχής δοκιμή είναι απαραίτητη υψηλή απόδοση.

Ο Nicholas Chaillan, επικεφαλής λογισμικού της Πολεμικής Αεροπορίας, δήλωσε ότι το σύστημα ανάπτυξης του SpaceX είναι πέντε φορές πιο αποτελεσματικό από τις εταιρείες με κλασική ροή εργασίας. Πώς αντιμετωπίζει η SpaceX τη διαδικασία δοκιμών με τέτοια απόδοση;

Οι προσεγγίσεις DevOps και Agile επιτρέπουν στους μηχανικούς SpaceX QA να παρέχουν δοκιμές μαζικού αυτοματισμού. Μέσω του κύκλου ανάπτυξης, οι υπεύθυνοι δοκιμών παρέχουν συνεχείς δοκιμές για να λάβουν άμεσα σχόλια και να εξαλείψουν τους υπάρχοντες κινδύνους. Με αυτόν τον τρόπο εργάζονται προληπτικά, δοκιμάζουν συχνά και νωρίς.

Η εταιρεία ανέπτυξε μια στρατηγική για το πώς να εφαρμόσει συνεχείς δοκιμές στη διαδικασία ανάπτυξης.

  • Προτεραιότητα στην αξία. Όπως το Google, το SpaceX συνιστά τη χρήση μετρήσεων κάλυψης κώδικα για να κατανοήσετε τι πρέπει να αυτοματοποιήσετε και τι δεν πρέπει. Βοηθά στη βελτιστοποίηση των συνεχών δοκιμών και στην ενίσχυση των δραστηριοτήτων που έχουν ήδη αναληφθεί.
  • Το κλειδί είναι οι αυτοματοποιημένες δοκιμές από άκρο σε άκρο. Κάντε μια ανάλυση επιπτώσεων μέρος της συνεχούς ολοκλήρωσης. Επιτρέπει στις εταιρείες να αναλύουν πώς η προσθήκη νέων λειτουργιών ή η αλλαγή κώδικα μπορεί να επηρεάσει ένα συνολικό σύστημα ή ορισμένα μέρη του συστήματός του.
  • Η ομάδα πρέπει να έχει ένα σταθερό και εύκολα αντιγραφόμενο περιβάλλον δοκιμών. Ένα εργαλείο όπως το Στιγμιότυπο εικονικής μηχανής μπορεί να σας βοηθήσει να αποθηκεύσετε την κατάσταση δεδομένων, να επιστρέψετε στις δοκιμές ή να συνεχίσετε την εργασία.
  • Χρησιμοποιήστε την Τεχνητή Νοημοσύνη και τη Μηχανική εκμάθηση για την ανάλυση αναφορών δοκιμών. - βασισμένα εργαλεία επιταχύνουν την ανάπτυξη και βελτιστοποιούν τη διαδικασία δοκιμών.
  • Δημιουργήστε μια ισχυρή αρχιτεκτονική συνεχούς ολοκλήρωσης. Το κύριο πλεονέκτημα του συστήματος CI είναι οι μικρές περίοδοι μεταξύ κατασκευής και δοκιμών του κώδικα . Οι συνεχείς δοκιμές πρέπει να εμπλέκονται στη διαδικασία ανάπτυξης και να περιλαμβάνουν τους απαραίτητους τύπους δοκιμών.
  • Συνοπτική παρουσία

    Κάθε εταιρεία έχει τη στρατηγική, τη διαδικασία και τις προσεγγίσεις της. Κάθε ομάδα επιλέγει και προσαρμόζει τη διαδικασία δοκιμών με βάση τους τελικούς στόχους και τις δυνατότητες του προϊόντος. Το κύριο καθήκον κάθε ειδικού είναι να σκέφτεται τον πελάτη και τον τελικό χρήστη, να προσαρμόζεται στις νέες απαιτήσεις και να υιοθετεί την εμπειρία των καλύτερων στον κλάδο.


    Βίντεο YouTube: Δοκιμή σαν το Google: Βέλτιστες πρακτικές από τους γίγαντες του κλάδου

    04, 2024