בדיקות והבטחת איכותMenu

בדיקות אוטומטיות – כיצד עושים זאת נכון? חלק ג

במאמרים הקודמים סקרנו את 5 השלבים הראשונים:

1. הגדרת יעדים נכונים וריאליים

2. בחירת כח אדם מקצועי ומיומן

3. בחירת כלי אוטומציה מתאימים

4. בחירה נכונה של האזורים במוצר למימוש הבדיקות האוטומטיות

5. בנייה נכונה ומודולרית של תשתית האוטומציה

השבוע נסקור את 3 השלבים האחרונים בתהליך נכון של בדיקות אוטומטיות :

6. בחירה נכונה של טכניקות למימוש הטסטים האוטומטיים

7. בניית תהליך הרצת טסטים וניתוח תוצאות יעיל ומהיר

8. הגדרת מטריקות ומדדים לאוטומציה

בחירה נכונה של טכניקות למימוש הטסטים האוטומטיים

ניתן להשתמש במגוון רחב של טכניקות למימוש טסטים אוטומטיים:

א. הרצה של בדיקות נכונות על מגוון רחב של data – data-driven tests

ב. הרצה של בדיקת נכונות מבוססת פרמטרים על מכפלה קרטזית של כל ערכי הפרמטרים

ג. בדיקות נכונות ו-workflow מבוססות תתי-שלבים בתהליך  (keyword-driven testing, מוסבר בהמשך)

ד. בדיקות נכונות מבוססות קלט ופלט ספציפיים או מבוססות צילומי מסך (screenshots)

ה. בדיקות נכונות מבוססות אלגוריתם דינמי (בניית אלגוריתם כללי לכל סוג data)

ו. בדיקות equivalence – בדיקות מבוססות-השוואה לתוצאות אלגוריתם מגרסת reference קודמת

ז. בדיקות ביצועים (מדידת זמני תגובה) והשוואה מול דרישות או גרסה בדוקה קודמת

ח. בדיקות נכונות מבוססות רנדומיזצייה של ערכי הקלט

אני ממליץ על יישום אוטומציה בשיטת ה-keyword-driven testing. בשיטה זו ממפים כל תהליך באפליקציה לתתי-שלבים, כך שתיווצרנה מספיק "אבני לגו", כאלו שניתן יהיה לבנות מהם כל תהליך שנרצה. כל "אבן לגו" כזו היא בעצם פונקציה, שהפרמטרים שלה מדריכים את הפונקציה האוטומטית אילו פעולות לבצע באפליקציה, ומה לבדוק. השרשור של אבני הלגו נעשה באמצעות קובץ (לדוגמא: Excel) שהכלי האוטומטי טוען בעת ההרצה, ומריץ אותו שורה אחרי שורה. בדרך זו ניתן לשלב גם בודקים ידניים בבניית האקסל, בהרצת הטסטים ובניתוח התוצאות שלהם.

בניית תהליך הרצת טסטים וניתוח תוצאות יעיל ומהיר

הפעלת האוטומציה חייבת להיות יעילה מאוד (עד כדי לחיצה על Run), וזמן הניתוח של התוצאות צריך להיות מידי (מספר קליקים בודדים של עכבר עד לבחינת הבעיה). מנגנון מסורבל של הרצה, וניתוח תוצאות מייגע ירחיק בודקים ידניים מהאוטומציה, והנטל ייפול על כתפיו של מפתח האוטומציה שיעסוק רוב הזמן בניתוח התוצאות ובשחזור הבאים מאשר בפיתוח של קוד חדש.

לשם כך יש לאפשר פיתוח מעטפת  הרצה וניתוח תוצאות, שתכלול את האלמנטים הבאים:

א. בחירה מהירה של טסטים לריצה (לדוגמא: קובץ אקסל עם עמודה של "0" או "1")

ב. לחיצה על "Run" להרצת כל החבילות – (לדוגמא: הרצת קובץ batch להרצת כל הטסטים שנבחרו)

ג. כל חבילת אוטומציה "דואגת לעצמה" – אתחולים, "ניקוי" database, וכדומה.

ד. בעת מציאת בעיה (פוטנציאל לבאג) – יצירת link למחיצה הכוללת תצלום מסך, לוגים ותיאור קצר של הבעיה שיוצר ע"י הסקריפט האוטומטי.

ה. לאחר סיום כל הטסטים האוטומטיים – בניית סיכום תוצאות כולל, סוג של dashboard המכיל "נורות ירוקות" לטסטים שעברו בהצלחה, ו"נורות אדומות" לטסטים שנכשלו עם לינקים ישירים לתוצאות.

הגדרת מטריקות ומדדים לאוטומציה

כדי להוכיח את יעילות הבדיקות האוטומטיות ואת החיסכון שהן מביאות לארגון, אסור להסתמך רק על "נפנופי ידיים" והסברים מלומדים, אלא יש צורך להראות מספרים. מספר מדדים מוצעים:

א. ROI לכל חבילה – כמות ימי האדם השנתית הנחסכת בשנה בקיזוז עלות פיתוח החבילה.

ב. המספר הכולל של ימי הבדיקות הידניות הנחסכות מדי חודש

ג. נפח הבדיקות האוטומטיות – מכיוון שהבדיקות האוטומטיות מאפשרות לנו להריץ בדיקות פרמטרים, קונפיגורציות ו-data בכיסויים הרבה יותר נרחבים ממה שנבדק ידנית בפועל (בעיקר מאילוצי כ"א וזמן), חשוב לתאר מהו נפח זה, לו תורגם חזרה לבדיקה ידנית.

ד. אחוז הבאגים שהתגלו ע"י הבדיקה האוטומטית ותוקנו ע"י צוות הפיתוח (יש להגדיר קריטריון קבלה).

ה. מספר ימי הבדיקות שנחסכו ע"י מניעת התקנה גרסה לא ראויה (fast alerts).

נושא הבדיקות האוטומטיות על כלל מרכיביו הוא התמחות בפני עצמה שיש ליישם בכובד ראש ובמקצועיות בטרם מגייסים את כוח האדם ורוכשים את הכלים לנושא. חשוב לעשות זאת נכון ובאופן מתודולוגי נכון באופן עצמאי אם קיים הידע לכך או לפנות לגוף המומחה בתחום הבדיקות האוטומטיות.


הכותב: דובי וינברג -  בוגר מדעי המחשב בטכניון, בעל 18 שנות ניסיון בתחום הבדיקות, עם ניסיון בבדיקות מערכות רפואיות, סלולר, storage ו-web. ניסיון רב בהובלת צוותי בדיקות ידניות ואטומטיות (QTP ו – Squish) וכן ניסיון בינלאומי בהובלת תהליכי QA  בארגון (הסמכת ISO 9001). כיום מנהל כ-40 עובדים במסגרת השירות המנוהל של  אתר הבדיקות מטעם נס טכנולוגיות בחברת GE Healthcare (בדיקות מערכות רפואה גרעינית).

עוד בנושא...

עוד פרסומים בנושא אשר עשויים לעניין אותך