ניתוח קוד סטאטי ובדיקות קוד דינאמיות כשיטות בדיקה משולבות ומשלימות להשגת קוד מקור איכותי ויציב ,סקירה מקצועית של שיטות ודרכי פעולה דניאל לייזרוביץ, Engineering Software Lab מערכות תוכנה מודרניות הינן לרוב בעלות מספר מאפיינים עיקריים :כמות עצומה של שורות קוד ,שהייתה נחשבת לדמיונית רק לפני מספר שנים בודדות; שימוש רב בקוד שמקורו מחוץ לארגון ,בין אם קוד מסחרי שנקנה מחברה מתמחה ובין אם קוד פתוח; ומספר רב של מפתחים ברמות שונות של ניסיון והכשרה. דומה ,כי רוב רובם של מפתחי התוכנה העובדים בפרויקטים מורכבים וגדולים, הכיר בצורך בשימוש בכלי בדיקה אוטומטים המסוגלים לסרוק ,לנתח ולגלות שגיאות תכנות במאות אלפי שורות קוד בזמן קצר .כפועל יוצא ,אנו מוצאים עצמנו מתלבטים מהו הכלי המתאים לנו
ואיזה כלי ישיג את התמורה הטובה יותר יחסית להשקעה הכספית וזמן ההטמעה האם אחד מכלי ניתוח קוד סטאטיהקלים יחסית להטמעה ותפעול ,או שמא עדיף האם כלי בדיקה דינמי ,הקשה יותר להטמעה ,אך יוכל לחשוף בעיות שונות? ואולי מספיק להיצמד לתקן כתיבה מסוים ( )Coding Standardכגון MISRA Cאו MISRA CPPולהפעיל כלי ,ה”אוכף” את התקן על המפתחים? כאשר מדובר בפרויקטים הדורשים רשיון לתקנים ,כגון DO178B/Cבתחום התעופה האזרחית בארה”ב ,הדרישות ברורות ואנו פועלים בהתאם להנחיות ה(FAA -רשות התעופה הפדרלית) ללא יכולת ערעור.
אם בדרגת הרישיון שלנו נדרשות בדיקות כיסוי ( )Code Coverageמסוימות (למשל ( , MC/DCנצטייד בכלי דינאמי מתאים ללא לבטים ,וכך הלאה .עם זאת יש לזכור, שקוד “מרושיין” ל DO178B/C -הנו, ותמיד יהיה ,חלק קטן מהקוד בארגון. ברוב המכריע של המקרים ,ההתלבטות תהיה מתוך הצורך והרצון המובן מאליו של מחלקת הפיתוח לייצר קוד יציב ,נקי ושלם ומתוך מודעות אירגונית לעלות האפסית של תיקון שגיאות תכנות בשלב הפיתוח ,לעומת העלות המטפסת בצורה מעריכית של תיקון אותן שגיאות כאשר הקוד יגיע למחלקת ה , QA-לאינטגרציה ובדיקות מערכת או גרוע מכל ,ללקוח.