כך בינה מלאכותית תייצר בדיקות תוכנה אוטומטיות חכמות יותר

ליאור כץ, CTO מטריקס בדיקות ואוטומציה

artificial intelligence

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

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

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

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

עוד דוגמה מהתחום שלנו לשימוש בבינה מלאכותית הם הכלים האוטומטיים שהם Code Less.

כלים לבדיקות אוטומטיות שמשתמשים בטכנולוגיית הML- לצורך זיהוי אובייקטים במהלך ריצה. אז מה זה אומר מבחינת AI? דמיינו שיש לנו אפליקציית WEB שיש לה מלא אובייקטים כמו כפתורים, List boxes, שדות ועוד. בכדי שכלים אוטומטיים יוכלו לזהות את האובייקטים צריך לתת להם 'מזהים', או יותר נכון 'מאפיינים'. לצורך הדוגמא ניגע בEdit field- סטנדרטי שיש לו כמה מאפיינים על מנת שנוכל לזהות אותו במהלך ריצה.

> מעדיפים לקבל ייעוץ ישירות מהמומחים? דברו איתנו

כמובן שנדרש לזהות את השדה על מנת להכיל בו נתונים, כמו לדוגמה, כתובת, שם פרטי ו/או שם משפחה וכו', אז איזה מאפיינים יכולים להיות לשדה כזה? Id, type, name ועוד. אחת מבעיות התחזוקה בבדיקות אוטומטיות היא בעיית שינוי ה'מאפיינים' בין גרסה לגרסה, או בין build ל- build. מה שקורה בדרך כלל אם מה שכתוב בתסריט כגורם לזיהוי אובייקט, למשל id="mainSearch, משתנה ל id="mainSearch_1", התסריט שלנו ייתקע. מעבר לכך, במציאות של היום, לא רק שהתסריט שלנו ייתקע אלא כל הסט יכול ליפול, והסט הוא חלק מתהליך הCI\CD. אנו לא יכולים להרשות לעצמינו את הנפילה הזו בגלל שינויי במאפיין של אובייקט.

אז מה הפתרון של הכלים האלה אומר? כשאנחנו רוצים לזהות אובייקט, ומזהים אותו בעזרת הכלי, כל המאפיינים של אותו אובייקט, נלקחים, וגם מסתדרים לפי תיעדוף של הכלי. למשל, כולנו יודעים שאם יש name\ID מסודר של האובייקט זה המאפיין הכי טריוויאלי לזהות את אותו אובייקט, אז הID- של האובייקט יהיה מספר 1 ברשימה. אחרי שכל המאפיינים מסתדרים לפי תיעדוף של הכלי, ומה קורה בזמן ריצה, השורה בתסריט היא:

WebElement password = driver.findElement(By.name("passwd"));

אך לדוגמה ה- By.name("passwd" משתנה ל- By.name("passwd_1"

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

Artificial Intelligenceהעבודה במודל של Machine Learning אומרת דבר כזה: הכלי במהלך הריצה נעצר, מגלה שהוא לא מזהה את האובייקט, מעביר את המאפיין שלא מזוהה לסוף הרשימה (במהלך ריצה) ומשתמש במאפיין הבא ע"מ לזהות את האובייקט. בצורה זו אפשר להשתמש בטכנולוגית הML- ע"מ לשפר את התחזוקה של הבדיקות האוטומטיות, ולהוריד עוד פרמטר שיכול להיות בעייתי בהרצה (שינוי בזיהוי אובייקטים). אמנם זה לא מוריד את התחזוקה לאפס, זה לא אומר שמעכשיו התסריטים שלנו ירוצו ב-100% כי יכולות להיות עוד סיבות לנפילות, כמו אי התאמה של DATA ב- Business process ועוד.

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

רוצים לשמוע עוד? דברו איתנו

מלאו פרטים ונחזור אליכם בהקדם