המוצרים שלנו עברו בהצלחה בדיקות קוד סטאטי של Parasoft !
לאחרונה נתקלנו בבאג שהיה קשה לזיהוי באחד המוצרים שאנו מפתחים, וסיפור המקרה הוא כזה: לקוח מצרפת דיווח לנו על באג הקשור לתצוגה של תאריכים, וגורם לנפילת האפליקציה בסיטואציה מסויימת. הבאג התרחש רק בשימוש בשפה הצרפתית, ולכן היה קשה לזיהוי במסגרת תהליך ה- QA שלנו .
בתחקור לאחר מכן, שיפרנו את תהליך הבדיקות שלנו וכיסינו מקרים דומים, ויתירה מזאת – הסקנו שסביר להניח שמסתתרים לנו עוד כמה באגים קשים לזיהוי, ועלינו לגלות אותם ויהי מה.
מכיוון שרוב המוצרים שלנו מפותחים בדוט נט (בעיקר #C), התחלנו לחפש כלי שיעזור לנו לאתר באגים קשים לגילוי, ויתירה מזאת – למצוא את אותם באגים שטרם נכתבו. כידוע, זהו האתגר האמיתי!
מצאנו כמה כלים מתאימים, והחלטנו לנסות לעומק כלי דיבאג אוטומטי ייעודי לסביבת דוט נט הנקרא dotTEST Parasoft, והפועל בטכנולוגיה של "ניתוח קוד סטאטי" (יש אגב גם גרסאות עבור C/C++ /JAVA וכן בסביבת Linux).
נכון שלכאורה כלים דומים מסוג זה כלולים בתוך Visual Studio , או שניתן להוסיפם בקלות בעזרת תוכנות פשוטות כגון ReSharper , אך הסתבר לנו שתוכנת Parasoft הנה בעלת יכולות מורכבות ביותר שאינן כלולות בכלים הנזכרים לעיל, למשל ניתוח הקוד הסטאטי של Parasoft הינו מבוסס משוואות זרימה (Data Flow Analysis) ולא רק השוואת תבניות טקסטואליות, מה שמאפשר לזהות טעויות תכנות תליות נתיבים בקוד, כגון אי שחרור משאבים בנתיב אחד מני רבים כאשר רובם משחררים וכולי. כמו כן כולל הכלי אפשרות ליצירת בדיקות יחידה בצורה אוטומטית (Automated Unit Testing) , בדיקות כיסוי (Code Coverage) וסקר קוד אוטומטי (Automatic Code Review)
לכלי יש אינטגרציה מלאה לתוך כל גרסאות Visual Studio (אנחנו ניסינו עם 2008 ו- 2010), מערכת סנכרון נתוני הבאגים לקוד המקור הכוללת צפיה בפרטי הבאג פלוס מערכת ניהול תיקונים מרשימה, אינטואיטיבית ומאד נוחה (ראו תמונה להמחשה. ניתן גם להקליק ולהגדיל אותה) . אנחנו כמובן ישר חיברנו זאת עם ClearCase ו- Rational Team Concert .
הצלחנו לאתר מספר באגים קשים לאיתור בקוד שלנו בעזרת הכלי. בהסתמך על פידבק מיצרני הכלי שבחנו את התוצאות שהופקו מסריקת הקוד שלנו, אני שמח לבשר שהקוד שלנו יציב ונקי מבאגים, ואפילו יותר מהמקובל בישומים דומים – ובדקנו את כל המוצרים שלנו!
כידוע למי שעוסק ב- ALM ומפתח ב- Agile, תהליכי פיתוח הם תהליכים איטרטיביים ומתמשכים. אנו כמובן מתכוונים לבדוק גם את הקוד שנוסיף בעתיד, ואנו בהחלט נמשיך להשתמש במערכת של Parasoft באופן שוטף.
למתעניינים, אשמח לפרט יותר על צורת העבודה עם המערכת הנ"ל ועל תובנות נוספות – מוזמנים ליצור איתי קשר.