כבודקים אנו נתקלים בתופעה של Flaky - Tests שידוע כנושא בעייתי הגוזל משאבים רבים מצוותי הבדיקות.
אך למרות הנושא הכואב כמעט ולא מדברים עליו וחבל שכך.
במאמר זה אנסה להסביר מהן האסטרטגיות הנפוצות להתמודדות עם הבעיה וכן מה הם היתרונות שניתן להפיק מאימוץ האסטרטגיות שיבוהרו בהמשך.
מה זה Flaky tests ? - זהו טסט שגם עובר וגם נופל מדי פעם ללא שינוי הקוד והסביבה שבו הוא רץ (טסטים שנופלים באופן קבוע אינם מוגדרים כ-Flaky Tests.)
הסיבות
ישנם סיבות רבות להופעת מצב Flakiness, אלו חלק מהסיבות העיקריות להופעתן:
בעיות רשת
החשיבות בטיפול הבעיה
שוב את הפייפליין ובכך גורם לחוסר אמון בטסטים שנכתבו, ובסופו של דבר יוביל למצב של אי אמון לתוצאות הטסטים ובמיוחד כאשר הטסט יכשל שנית ויחשב כ-FT שיוביל לבדיקות ידניות מיותרות.
תהליך הזיהוי
בדיקת תוצאות ההרצות של הטסטים בכמה הרצות לחקירת הסיבות:
אימוץ שיטות להפחתת ה-Flakiness
לצערנו לא ניתן למגר לחלוטין את ה-Flaky - Tests אבל ישנם מספר שיטות וכלים לצמצם את התופעה באופן משמעותי.
לסיכום
כאשר אנו מריצים כמות גדולה של טסטים לא ניתן להימנע מ - Flaky tests במיוחד בבדיקות UI ואינטגרציה אך גם בשאר סוגי שאר הבדיקות ניתן להיתקל בהם במינונים נמוכים יותר. במחקר [1]שנעשה בחברת גוגל העולמית כמות הטסטים המורצים לפני הטמעת קוד עומד על כ-4.2 מיליון הרצות, נמצא שאומנם רק כ-1% מהטסטים נופלים אך כמעט 16% מכל הטסטים שהורצו מוגדרים בדרגות שונות של Flaky Tests. כ- 84% מהבדיקות שעברו ממצב עובר למצב נכשל הוגדרו כ-Flaky Tests.
זהו מצב שאסור לנו הבודקים להתעלם ממנו. רמת המודעות בקרב צוותי הפיתוח והניטור צריכה להיות גבוהה. לדעתי כל חברה בעלת קיבולת גבוה של בדיקות חייבת לקבל על עצמה כתרבות – חלק מאסטרטגיה בהתמודדות בטסטים המוגדרים FT כי בסופו של דבר כל הפרודוקטיביות של הצוות מושפעת מכך.
כאשר אתה הבודק או המנטר מתרגל למצב בו הפייפליין שאתה מריץ הוא אדום, במשך הזמן אתה פחות שם לב לבעיות. טסט שנכשל ועובר מידי פעם הופך ללא אמין כשאתה מגיע למצב בו אתה מתעלם ממנו.
כמוך, גם אחרים יסתכלו בפייפליין ויאבדו במשך הזמן את המשמעת לנקוט בפעולות כלשהם ברגע שטסטים יהפכו לאדום, ברגע הזה כל כישלון בפייפליין יחשב כמשהו חסר משמעות. בסופו של יום ללא נקיטה של מדיניות כל פרויקט אוטומציה בחברה ייהפך ללא רלוונטי. טסט שנופל צריך להיות מוגדר כהתראה שאסור לנו להמשיך ללא נקיטה ובדיקה מה גרם לטסט הזה ליפול וביתר שאת אם מדובר ב FT.
[1] https://static.googleusercontent.com/media/research.google.com/iw//pubs/archive/46593.pdf