כיצד להצליח בבדיקות אוטומטיות בסביבה טכנולוגית מתקדמת

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

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

תפיסת הבדיקות המומלצת  מתייחסת להיבטים הבאים :

עומק הבדיקות

כלי הבדיקות

שיטת העבודה

אינטגרציה למתודולוגיות ה Agile וה DevOps  (בהתאם למתודולוגיה המוטמעת בארגון)

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

עומק הבדיקות

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

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

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

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

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

כלי הבדיקות

בחירה של כלים  למימוש בדיקות האוטומציה מחייב שימוש במספר כלים תואמים למטרות הבאות :

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

כלי אוטומציה המאפשר עבודה עם דפדפנים שונים ושפות פיתוח שונות.

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

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

שיטת העבודה

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

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

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

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

היבט חשוב נוסף שיש לנתח לעומק הנו תחזוקת תסריטי הבדיקות האוטומטיים.

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

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

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

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

אינטגרציה למתודולוגיות AGILE ו DEVOPS

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

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

אינטגרציה ל DEVOPS – מומלץ להריץ את הבדיקות האוטומטיות באמצעות כלי כמו Jenkins  שהנו בדרך כלל באחריות צוות ה DEVOPS. עם כל שחרור של BUILD חדש לסביבת הבדיקות מורצות הבדיקות באופן אוטומטי ומופק דו"ח תוצאות הנשלח לגורמים הרלוונטיים. עובדה זו מאפשרת איתור תקלות באופן מיידי עם הפצת ה BUILD החדש לסביבת הבדיקות ותורמת לייצוב מהיר של הקוד בסביבת הבדיקות ובכך למעבר חלק יותר בין סביבת הפיתוח וסביבת הבדיקות.