לדלג לתוכן

תרגול הוכחת איכות ספרייה

בנו תוכנית בדיקה ל־parse_u32 שמכסה את כל מצבי השגיאה ואת הערכים אפס, תשע, עשר והערך המרבי. הוסיפו תכונת round trip לאלף מספרים שנוצרים ממחולל עם seed קבוע.

בדקו תכונה נוספת: הוספת אפסים לתחילת מחרוזת תקינה אינה משנה את הערך. קבעו גבול לאורך שנבדק והסבירו מה הגבול אינו מוכיח.

צרו גרסה פגומה שבה בדיקת הגלישה מתבצעת רק אחרי value = value * 10 + digit. מצאו קלט שהופך לתוצאה חוקית שגויה בגלל wraparound. אל תסתפקו בטענה כללית ש־unsigned גולש.

כתבו תוכנית בדיקות עבור הרכיב הגנרי מהשיעור 2.2: קובץ שימוש חוקי וקובץ שאמור להיכשל ב־constraint. הגישו בנפרד תצפיות שבאמת הרצתם וצעדים שלא הרצתם כי הכלי אינו זמין.

הסבירו אילו תקלות לא יימצאו בהכרח ב־fuzzing של parser שאינו שומר state, ואילו ראיות צריך להוסיף כדי לבדוק מכולה עם בעלות והקצאות.