באג – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
שורה 7:
לעתים משמשת המלה גם לתיאור טעות בתכנון של מעגל אלקטרוני מורכב, שמימושו הוא ב[[חומרה]].
 
==מאפייני הבאגים.==
באג עלול לנבוע מעיצוב פגום של התוכנה, מתכנון לקוי של ה[[אלגוריתם]], מטעות בשלב ה[[תכנות]] ועוד. באג יכול לבוא לידי ביטוי בצורות אחדות:
* התוכנה מפסיקה את פעולתה בטרם עת, ללא תוצאות או עם תוצאות חלקיות בלבד. באג מסוג זה נגרם, למשל, בעקבות חלוקה ב[[0 (מספר)|אפס]]בשלושים.
* התוכנית נכנסת ל[[לולאה אינסופית]], כלומר היא ממשיכה בפעולתה, אך אינה נותנת כל תוצאה, או שהיא חוזרת על אותה פעולה שוב ושוב.
* התוכנית פועלת עד סופה ואף נותנת תוצאות, אך תוצאות אלה אינן תקינות. לעתים בצורה זו מדובר בתקלות קלות שניתן "לחיות" איתן, כמו למשל תצוגה לא מדויקת של הנתונים על פני המסך.
* התוכנית מבצעת בהצלחה את כל המוטל עליה, אך יש בה פרצה המאפשרת את ניצולה לרעה על ידי גורמים עוינים (ראו [[אבטחת מידע|אבטחת מידה]]).
 
ישנן דרכים פורמליות ל[[אימות תוכנה|הוכחת נכונות של תוכנה]], אולם ברוב המקרים הדרך לבדיקתה של תוכנה היא באמצעות ניסוי על מספר רב של מקרים פרטיים, תהליך הקרוי [[ניפוי שגיאות|ניפוי]]. גיוונם העצום של המקרים השונים בתוכנה מורכבת הופך את מלאכת הניפוי בטכניקה זו לכזאת שאינה מושלמת, וכך קורה שהמשתמש נתקל בבאג.
שורה 19:
{{ציטוט|תוכן=אנשים המכירים הן את הנדסת התוכנה והן את תחומי ההנדסה הוותיקים יותר הבחינו שאמינות סביבת התוכנה נמוכה במידה משמעותית מזו המאפיינת שטחי הנדסה אחרים. כשמרבית המוצרים ההנדסיים הושלמו, נבדקו ונמכרו, סביר לצפות שתכנון המוצר נכון ושהוא יעבוד בצורה אמינה. במוצרי תוכנה, מקובל לגלות שהתוכנה מכילה שיבושים (bugs) רציניים ואינה מתפקדת בצורה אמינה אצל מספר משתמשים. בעיות אלו עלולות לצוץ במספר גרסאות ובמקרים מסוימים להחמיר את המצב כשמדובר ב"שיפור" התוכנה. בעוד מרבית המוצרים מלווים בתעודת אחריות תקפה ומגינה, הרי מוצרי תוכנה מלווים לעתים בהצהרה ספציפית על אי מתן אחריות. הציבור הרחב, המודע רק למספר קטן של תקלות תוכנה, יכול להתייחס אליהן כחריגים שנגרמו על ידי מתכנתים בלתי-מנוסים. אלו מבינינו המצויים בתוכנה יודעים טוב יותר; המתכנתים המעולים ביותר בעולם לא יכולים להימנע מבעיות כאלו.{{הערה|"היבטי תוכנה במערכות הגנה איסטרטגית", '''מעשה חושב''', אפריל 1986; תרגום לעברית של [http://klabs.org/richcontent/software_content/papers/parnas_acm_85.pdf Software Aspects of Strategic Defense Systems]}}}}
 
==טיפול בבאגים יוצאי דופן==
מפתחי תוכנה משקיעים, בדרך כלל, מאמצים גדולים ב[[ניפוי שגיאות|ניפוי התוכנה]] כך שלא יהיו בה באגים, אך, כאמור לעיל, אין הם יכולים להתחייב על תוכנה שבה אין ליקויים. בניסיון לשפר את תהליך בדיקת התוכנה פותחו מוצרי בדיקה, נוצר עיסוק של מבקר איכות תוכנה, והוקמו חברות שכל התמחותן היא תכנון וביצוע של בדיקות איכות לתוכנה, באמצעות כלים אוטומטיים, שאחת המפורסמות שבהן היא חברת [[מרקורי (חברה)|מרקורי]].