זיהוי ותיקון שגיאות
הוצג| English | משמעות |
|---|---|
| bug/bʌɡ/ | באג |
| debugging/ˈdiːbʌɡɪŋ/ | ניקוי באגים |
| syntax error/ˈsɪntæks ˈerə/ | שגיאת סינטקס |
| logic error/ˈlɒdʒɪk ˈerə/ | שגיאת לוגיקה |
| runtime error/ˈrʌntaɪm ˈerə/ | שגיאת ריצה |
| overflow error/ˌəʊvəˈfləʊ ˈerə/ | שגיאת גלישה |
| edge case/edʒ keɪs/ | מקרה קצה |
| expected output/ekˈspektɪd ˈaʊtpʊt/ | תוצאה מצופייה |
לכל תוכנית יש באגים
- לא משנה כמה הצוות זהיר, לתוכניות יש טעויות.
- טעות בתוכנית היא באג (bug).
- מציאת תיקון באגים נקראת דיבאגינג.
- דיבאגינג מקצועי היא אחת המיומנויות היקרות ביותר שכל תוכנתן יכול לבנות.
איזה סוג של שגיאה?
שגיאת סינטקס עצרת את ריצת התוכנית; שגיאת לוגיקה רצה אך נותנת תשובה שגויה; שגיאת זמן ריצה גורמת להקרס בחצי הדרך; שגיאת עומס חורגת מהקיבולת.
העבודה של איתור ותיקון טעויות בתוכנית נקראת ______.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
טעות היא באג; תיקון באגים הוא דיבאגिंग.
סוגר חסר שעוצר את ריצת התוכנית הוא:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
פרצת כללי השפה היא שגיאת סינטקס.
מדוע שגיאות לוגיקה לעיתים קרובות הקשות ביותר לאיתור?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
אין שום דבר שנשבר באופן ברור, ולכן עליך להשוות את התוצאה למה שהיית צפוי לקבל.
סוגי השגיאה העיקריים
- שגיאת סינטקס מפרה את כללי השפה (למשל, סוגרייה חסרה) — התוכנה מסרבת להפעיל.
- שגיאת לוגיקה רצה אך נותנת תוצאה שגויה, משום שההוראות אינן תואמות לתוכנית.
- שגיאת ריצה גורמת לקריסת התוכנה בזמן הריצה — כגון חלוקה באפס.
- שגיאת גלישה מתרחשת כאשר ערך גדול מדי עבור מקום האחסון שלו.
בדיקה עם מקרי קצה (קלט ריק, מספרים גדולים מאוד) עוזרת למצוא bugs נסתרים.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
bugs נסתר לעיתים קרובות בגבולות מה שהתוכנית מצפה לה.
כדי לזהות bug במבחן, יש להשוות את התוצאה בפועל עם ה:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
הבדל בין תוצאה בפועל לתוצאה מצופה מצביע על bug.
כיצד למצוא אותם
- בדיקה עם כניסות רבות, כולל כניסות לא שגרתיות — מספר גדול מאוד, כניסה ריקה או מקרה קיצוני בגבול.
- השוואת התוצאה בפועל עם התוצאה הצפויה; הבדל מצביע על אג.
- הוספת פקודות הדפסה זמניות כדי לראות ערכים פנימיים, כך שתמצאו איפה הדבר מתחיל לשלוט.
- חלקו ובדקו: ודאו חלק אחד הוא נכון, ולאחר מכן צמצמו את שארית התוכנה.
יש לבצע בדיקה מחדש של כל התוכנית לאחר תיקון bug, מכיוון שתיקון יכול ליצור bug חדש.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
בדיקה מחדש זהירה היא מה שמייצר אמון בתוכנה.
תיקון, ולאחר מכן בדיקה מחדש
- שגיאות לוגיקה הן הקשות ביותר — אין דבר ברור "שנשבר", התשובה פשוט שגויה.
- תיקון אג אחד עלול ליצור אג נוסף.
- לכן לאחר כל תיקון, בדקו מחדש את כל התוכנה.
- בדיקה זהירה ומחוזקת הופכת פרוטו-טיפ גס לתוכנה שאנשים יכולים לסמוך עליה.
"רצה" לא אומר "נכון." שגיאת לוגיקה רצה ללא קריסה וללא הודעה — התוכנה נראית בסדר אך התשובה שגויה. הדרך היחידה לתפוס אותה היא להשוות את התוצאה עם מה שציינתם, ולא רק לבדוק שהיא רצה.
אג הוא טעות; תיקון אגים הוא דיבאגינג. שגיאת סינטקס מונעת מהתוכנה לרץ, שגיאת לוגיקה רצה אך נותנת תשובה שגויה, שגיאת ריצה קורסת אותה בחלקה, ושגיאת גלישה חורגת מאחסון. מצאו אגים על ידי בדיקה של כניסות רבות (במיוחד מקרים קיצוניים) מול התוצאה הצפויה, ותמיד בדקו מחדש לאחר תיקון.