האתר הישראלי להנדסת תכנה

דף ראשי | מפת האתר | רשימת מושגים | מקורות נוספים | אודות
בדיקות מבוססות מבנה בדיקות כילול

בדיקת מסלולים

זהו למעשה סוג מסוים של בדיקות מבוססות מבנה. בגישה זו ממפים את מבנה זרימת התוכנית בקטע קוד מסוים (שגרה, למשל) על מנת לקבל תמונה מקורבת של המקרים אותם יש לבדוק.
בדיקת כל המסלולים תוודא כי כל שורת קוד התבצעה לפחות פעם אחת ואף תוודא כי כל תנאי נבדק הן עבור מצב בו ערך האמת שלו הוא אחד והן עבור מצב בו הוא אפס. בכך יושג, כזכור, אחד הקווים המנחים בבחירת המקרים לבדיקה שהזכרנו קודם: בדיקת כל שורות הקוד לפחות פעם אחת.

הנה דוגמא למיפוי כזה של שגרה המבצעת חיפוש בעץ בינארי:



כאן מתגלה למעשה כי המצב מסובך יותר משנראה בתחילה: הקוד מכיל לולאות (כמו כל קטע קוד למעט הפשוטים ביותר). הדבר הופך מיד את בדיקת כל המסלולים לבלתי אפשרית, אבל עדיין מאפשר לוודא כי כל שורת קוד מתבצעת לפחות פעם אחת וכי כל תנאי החזיר פעם אחת "אמת" ופעם אחת "שקר".

מספר מקרי המבחן הנדרשים, אם כן, שווה למספר המסלולים הקיימים בקוד. מספר זה ניתן לחישוב עבור כל גרף קשיר (כמו זה שבתמונה) על ידי חיסור מספר הצמתים ממספר הקשתות והוספת 2. מספר זה מכונה "הסיבוכיות הציקלומטית של תוכנית" והוא אף מהווה מדד לחוסנו של הקוד.

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

בדיקות מבוססות מבנה לתחילת הדף בדיקות כילול
©איתן 2003. כל הזכויות שמורות למערכת המידע איתן