בדיקות אוטומטיות – כיצד עושים זאת נכון? חלק ג' ואחרון
דובי וינברג מפרט את שלושת השלבים האחרונים בתהליך שמאפשר לבצע את הבדיקות בהצלחה
במאמרים הקודמים ניתחתי כמה מן השלבים שצריך לעשות כדי לבצע את תהליך הבדיקות האוטומטיות בצורה מוצלחת – במאמר הראשון שני שלבים ובשני שלושה נוספים. הפעם אפרט על שלושת השלבים האחרונים בתהליך.
אולם תחילה, הבה ניזכר בחמשת השלבים הראשונים: הגדרת יעדים נכונים וריאליים; בחירת כוח אדם מקצועי ומיומן; בחירת כלי אוטומציה מתאימים; בחירה נכונה של האזורים במוצר למימוש הבדיקות האוטומטיות; ובנייה נכונה ומודולרית של תשתית האוטומציה. במאמר הנוכחי אתמקד בבחירה נכונה של טכניקות למימוש הטסטים האוטומטיים; בניית תהליך הרצת טסטים וניתוח תוצאות יעיל ומהיר; והגדרת מטריקות ומדדים לאוטומציה.
בחירה נכונה של טכניקות למימוש הטסטים האוטומטיים
ניתן להשתמש במגוון רחב של טכניקות למימוש טסטים אוטומטיים:
● הרצה של בדיקות נכונות על מגוון רחב של דטה (Data-driven tests).
● הרצה של בדיקת נכונות מבוססת פרמטרים על מכפלה קרטזית של כל ערכי הפרמטרים.
● בדיקות נכונות ו-Workflow מבוססות תתי שלבים בתהליך (Keyword-driven testing – אסביר על כך בהמשך).
● בדיקות נכונות מבוססות קלט ופלט ספציפיים או מבוססות צילומי מסך.
● בדיקות נכונות מבוססות אלגוריתם דינמי (בניית אלגוריתם כללי לכל סוג דטה).
● בדיקות Equivalence – בדיקות מבוססות-השוואה לתוצאות אלגוריתם מגרסת Reference קודמת.
● בדיקות ביצועים (מדידת זמני תגובה) והשוואה מול דרישות או גרסה בדוקה קודמת.
● בדיקות נכונות מבוססות רנדומיזציה של ערכי הקלט.
אני ממליץ על יישום אוטומציה בשיטת ה-Keyword-driven testing. בשיטה זו ממפים כל תהליך באפליקציה לתתי שלבים, כך שתיווצרנה מספיק "אבני לגו", כאלה שניתן יהיה לבנות מהן כל תהליך שנרצה. כל "אבן לגו" כזו היא בעצם פונקציה שהפרמטרים שלה מדריכים את הפונקציה האוטומטית אילו פעולות לבצע באפליקציה ומה לבדוק. השרשור של "אבני הלגו" נעשה באמצעות קובץ (למשל Excel), שהכלי האוטומטי טוען בעת ההרצה ומריץ אותו שורה אחרי שורה. בדרך זו ניתן לשלב גם בודקים ידניים בבניית הקובץ, בהרצת הטסטים ובניתוח התוצאות שלהם.
בניית תהליך הרצת טסטים וניתוח תוצאות יעיל ומהיר
הפעלת האוטומציה חייבת להיות יעילה מאוד, עד כדי לחיצה על Run, וזמן הניתוח של התוצאות צריך להיות מידי – מספר קליקים בודדים על העכבר עד לבחינת הבעיה. מנגנון מסורבל של הרצה וניתוח תוצאות מייגע ירחיקו בודקים ידניים מהאוטומציה, והנטל ייפול על כתפיו של מפתח האוטומציה. כך ייווצר מצב שהוא יעסוק רוב הזמן בניתוח התוצאות ובשחזור מאשר בפיתוח של קוד חדש.
לשם כך יש לאפשר פיתוח מעטפת הרצה וניתוח תוצאות שתכלול את האלמנטים הבאים:
• בחירה מהירה של טסטים לריצה – לדוגמה, קובץ Excel עם עמודה של "0" או "1".
• לחיצה על Run להרצת כל החבילות – למשל, הרצת כל הטקסטים שנבחרו על ידי קובץ Batch.
• כל חבילת אוטומציה "דואגת לעצמה" – אתחולים, "ניקוי" דטה בייס וכדומה.
• בעת מציאת בעיה (פוטנציאל לבאג) – יצירת לינק למחיצה הכוללת תצלום מסך, לוגים ותיאור קצר של הבעיה, שיוצר על ידי הסקריפט האוטומטי.
• לאחר סיום כל הטסטים האוטומטיים – בניית סיכום תוצאות כולל, סוג של דשבורד המכיל "נורות ירוקות" לטסטים שעברו בהצלחה ו-"נורות אדומות" לכאלה שנכשלו, עם לינקים ישירים לתוצאות.
הגדרת מטריקות ומדדים לאוטומציה
כדי להוכיח את יעילות הבדיקות האוטומטיות ואת החיסכון שהן מביאות לארגון, אסור להסתמך רק על "נפנופי ידיים" והסברים מלומדים, אלא יש צורך להראות מספרים. אני מציע כאן מספר מדדים:
● ROI לכל חבילה – חישוב של כמות ימי האדם השנתית הנחסכת בשנה בקיזוז עלות פיתוח החבילה.
● המספר הכולל של ימי הבדיקות הידניות הנחסכות מדי חודש.
● נפח הבדיקות האוטומטיות – מכיוון שהן מאפשרות להריץ בדיקות פרמטרים, קונפיגורציות ודטה בכיסויים הרבה יותר נרחבים ממה שנבדק ידנית (בעיקר מאילוצי כוח אדם וזמן), חשוב לתאר מה היה נפח זה לו תורגם בחזרה לבדיקה ידנית.
● שיעור הבאגים שהתגלו בבדיקה האוטומטית ותוקנו על ידי צוות הפיתוח. יש להגדיר קריטריון קבלה.
● מספר ימי הבדיקות שנחסכו על ידי מניעת התקנה גרסה לא ראויה (Fast alerts).
לסיכום, נושא הבדיקות האוטומטיות, על כלל מרכיביו, הוא התמחות בפני עצמה, שיש ליישם בכובד ראש ובמקצועיות בטרם מגייסים את כוח האדם ורוכשים את הכלים המתאימים. חשוב לעשות זאת נכון ובאופן מתודולוגי מתאים – באופן עצמאי, אם קיים הידע לכך, או באמצעות גוף המומחה בתחום הבדיקות האוטומטיות.
על הכותב
דובי וינברג הוא מנהל אתר הבדיקות בחברת GE Healthcare, חטיבת הבדיקות של נס. הוא בעל תואר במדעי המחשב מהטכניון ו-18 שנות ניסיון בתחום הבדיקות, תוך התמחות בבדיקות מערכות רפואיות, סלולר, אחסון ו-ווב. ל-וינברג ניסיון רב בהובלת צוותי בדיקות ידניות ואוטומטיות (QTP ו-Squish), וכן ניסיון בינלאומי בהובלת תהליכי QA בארגון (הסמכת ISO 9001). כיום הוא מנהל כ-40 עובדים במסגרת השירות המנוהל של נס ב-GE Healthcare לבדיקות מערכות רפואה גרעינית.
תגובות
(0)