Διαδρομή 02Μάθημα 4 / 6

Εξετάστε κώδικα που παράγεται από AI

Εξετάστε την πραγματική αλλαγή, τα όρια εμπιστοσύνης της και τα αποδεικτικά στοιχεία πριν την αποδεχτείτε.

Πρακτικό επίπεδο12 minΕλέγχθηκε

Εκδότης Πώς γράφουμε

Ελέγξτε τι κατανοήσατεΈνα endpoint ελέγχει ότι ο χρήστης έχει συνδεθεί και μετά φορτώνει μια εγγραφή από αναγνωριστικό που παρέχεται στο αίτημα. Τι πρέπει να επαληθεύσετε;Κάντε την άσκηση
Ένα endpoint ελέγχει ότι ο χρήστης έχει συνδεθεί και μετά φορτώνει μια εγγραφή από αναγνωριστικό που παρέχεται στο αίτημα. Τι πρέπει να επαληθεύσετε;

Τι θα μάθετε

  • Εξετάστε τη συμπεριφορά και την εξουσιοδότηση πριν από το ύφος του κώδικα.
  • Εντοπίστε έναν έλεγχο εξουσιοδότησης που λείπει σε μικρό παράδειγμα.
  • Διαχωρίστε μια παραγόμενη σύνοψη από επαληθευμένα αποδεικτικά στοιχεία.

Διαβάστε την απαίτηση πριν από τη σύνοψη

Ξεκινήστε από τη ζητούμενη συμπεριφορά και τα κριτήρια αποδοχής. Έπειτα εξετάστε το πραγματικό diff. Η σύνοψη ενός agent μπορεί να σας βοηθήσει να προσανατολιστείτε, αλλά μπορεί να παραλείπει αλλαγές ή να περιγράφει ελέγχους ανακριβώς.

Επιβεβαιώστε το branch και το commit που εξετάζετε. Ελέγξτε αλλαγές στη διαμόρφωση, στις εξαρτήσεις, στην υποδομή και στα tests, όχι μόνο στον κώδικα της εφαρμογής. Μια μικρή ορατή λειτουργία μπορεί να περιλαμβάνει μεγάλη αλλαγή σε δικαιώματα ή στη συμπεριφορά deployment.

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

Ιχνηλατήστε την ταυτότητα μέχρι τον πόρο

Εξετάστε αυτό το ελλιπές, πλασματικό endpoint. Το παράδειγμα δείχνει ένα πρόβλημα ανασκόπησης· δεν είναι κώδικας παραγωγής.

async function getInvoice(request) {
  const user = await requireSignedInUser(request);
  return database.invoice.findById(request.params.id);
}

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

Ιχνηλατήστε το αίτημα στο πραγματικό σύστημα. Προσδιορίστε τον έμπιστο χρήστη και οργανισμό. Ελέγξτε πώς το ερώτημα περιορίζει την πρόσβαση στη ζητούμενη εγγραφή. Εξετάστε τη συμπεριφορά σφαλμάτων και τα tests για απαγορευμένα αιτήματα.

Μην υποθέτετε ότι ένα κρυμμένο κουμπί προστατεύει το API. Ο καλών μπορεί να στείλει αίτημα χωρίς να χρησιμοποιήσει τη διεπαφή. Μην υποθέτετε ότι ένα έγκυρο αναγνωριστικό εγγραφής παραχωρεί πρόσβαση.

Ρωτήστε ποια αποδεικτικά στοιχεία θα μπορούσαν να απορρίψουν την αλλαγή

Ένα test που περνά μπορεί να χρησιμοποιεί fixture διαχειριστή ή mock εξουσιοδότησης. Ελέγξτε αν δοκιμάζει το όριο που έχει σημασία. Προσθέστε περίπτωση με διαφορετικό οργανισμό και πραγματική διαδρομή εξουσιοδότησης, όπου ενδείκνυται.

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

Για αλλαγή εξάρτησης, επαληθεύστε γιατί χρειάζεται. Εξετάστε την έκδοση, την άδεια χρήσης και τα ευρήματα ασφάλειας. Μην αποδέχεστε άσχετη αναβάθμιση μόνο επειδή ο agent τη δημιούργησε κατά την εργασία.

Κρατήστε την ανασκόπηση ανεξάρτητη

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

Απαιτήστε από τα ευρήματα να προσδιορίζουν συγκεκριμένη διαδρομή αστοχίας και τον σχετικό κώδικα. Αντιμετωπίστε τις ατεκμηρίωτες προειδοποιήσεις ως ερωτήματα προς διερεύνηση. Αντιμετωπίστε μια βέβαιη έγκριση ως ακόμη μία γνώμη μέχρι οι σημαντικοί ισχυρισμοί να έχουν αποδεικτικά στοιχεία.

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

Ολοκληρώστε την ανασκόπηση στην τελική αναθεώρηση

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

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

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

Κάντε την άσκηση

Ανοίξτε την άσκηση ανασκόπησης κώδικα στο εργαστήριο πρακτικής. Προσδιορίστε ποιος ενεργεί, τον ζητούμενο πόρο και το έμπιστο όριο οργανισμού. Έπειτα εξετάστε ένα πραγματικό μικρό PR με την ίδια μέθοδο. Χρησιμοποιήστε μόνο κώδικα που έχετε άδεια να εξετάσετε.

Λήψη φύλλου εργασίας (Markdown)
Ελέγξτε τι κατανοήσατε ↑

Συνεχίστε τη μάθηση

Πηγές και πρόσθετη μελέτη

Σχετικό υλικό από την Taiga

Προηγούμενο μάθημα: Χρησιμοποιήστε τα tests ως αποδεικτικά στοιχεία