הרעיון שעמד מאחורי הקלעים למפתחי פריימוורק האוטומציה: AnyAUT היה לאפשר לבודקי תוכנה ללא רקע תכנותי לכתוב טסטים אוטומטיים בקלות, במהירות ובפשטות. למען האמת, אני חייב לציין, זהו המוטו של רוב הפריימוורקים העכשוויים כיום בתחום.
אז האם ה-AnyAUT עושה משהו שאחרים לא ? האם יש לו ערך מוסף ? בואו נראה.
ה-AnyAUT שפותח על ידי חברת Varkasa (החלה את דרכה כחברה שמספקת שירותי הדרכה בהודו בעיקר) רוכב מעל תשתיות Selenium WebDriver בשפת Java עם הפריימוורק TestNG, מה שזה אומר, שאנחנו מדברים פה על מוצר התומך בדיקות פונקציונליות על Web (דפדפנים: Google Chrome, Mozilla Firefox, Internet Explorer, Microsoft Edge, Opera).
על ידי שימוש ב-Page Objects עם שילוב של Keyword Driven Testing וממשק המשתמש ה-Webי נוכל ליצור מקרי בדיקה ללא שום הכרה בשפות פיתוח.
המוצר הינו מוצר מסחרי שמגיע עם גירסה חינמית שמוגבלת למשתמש בודד, תחילה יש לבצע רישום לאתר שלהם, הרישום מאוד קל ומהיר.
הדף הראשי שיוצג לנו הינו ה-Dashboard, כאן אנו נראה במבט על את כל הSteps , Test Cases, Modules שניצור, כמו כן, מכאן גם נוכל להיכנס ל-Keywords הבנויים או לאלו שאנו נוכל ליצור ובנוסף, מפה גם נשלוט בהרצות שלנו.
כאמור, ה-AnyAUT תומך בשיטת ה-Keyword Driven Testing , עם מילים שמורות שאנחנו נוכל ליצור או שמגיעות כבר Built in עם המוצר, זוהי רשימה חלקית של המילים (שמייצגות פעולות) שמגיעות עם המוצר:
בואו נראה דוגמא ליצירת מקרה בדיקה של פעולת ה-Login באתר github.com, מצד ימין יופיע לנו תפריט ה-Test Setup , נצטרך להגדיר את האלמנטים עימם ניצור מקרה בדיקה, החל מהגדרת Step ועד ליצירת Module (שזה למעשה הסוויטה של הבדיקות).
נתחיל מלמעלה למטה, וניכנס בתפריט ל-AUT , שם נכניס פרטים אל האפליקציה הנבדקת:
בשלב הבא ניצור מודול , המודול הינו למעשה Test Set או סוויטה של בדיקות, אני קראתי לו Sanity:
עם שמירת המודול, נראה נראה על המסך את רשימת כל המודולים שיצרנו עד כה:
לאחר מכן, ניצור Test Case , שהוא מקרה הבדיקה, נקרא לו: Login Action , ה-Test Case יקושר ל-מודול שיצרנו לפני כן:
עם שמירת ה-Test Case, נראה על המסך את רשימת כל ה-Test Cases שיצרנו עד כה:
נמשיך עם יצירת ה- Steps , שהם יקושרו לTest Case שיצרנו לפני כן:
זהו ה-Step שמייצג הכנסת ערך לשדה ה-User Name :
נמשיך ככה ונכניס גם את ה-Steps להכנסת שדות הסיסמא וכפתור ה-Sign In
כעת ניצור Page Objects עבור האיזורים השונים באפליקציה, במקרה שלנו ניצור Page אחד שיקרא Login Page:
ונגדיר את האלמנטים שבו, כאן למשל אנחנו מזהים את שדה הUserName עם ה-id שלו:
נמשיך לעשות כך עבור כל האלמנטים בדף
מה שעשינו עד כה היה ליצור את ה-Data עבור מקרה הבדיקה שלנו, ה-Data הזה הוא ברמת ה-פסאודו קוד בשלב זה, אופן העבודה של AnyAUT הוא לקחת את ה-Data הזה כשהוא מיוצא לתוך מסמך Excel , לשמור אותו במכונה עליה אנו מעוניינים להריץ את הטסט ואז להריץ אותו מהקליינט (שעדיין לא דיברנו עליו).
אז בשביל ליצור Data Set נצבע את השלבים הבאים:
מכאן אנו יכולים להוריד את קובץ האקסל (תחת ה-Download)
שימו לב כי בשלב זה, לאחר שיצרנו את ה-Data , נצטרך להתקין את הקליינט על מכונה ההרצה, לשם כך עלינו להוריד קובץ Runnable JAR ולעקוב אחר ההוראות המפורטות בצילום המסך מעל.
כשנפתח את הקליינט של ה-AnyAUT , הוא יראה כך (לאחר מילוי פרטי ההרצה):
לאחר ההרצה, יתווספו לספריית ההתקנה של הקליינט , שלוש תתי ספריות שם ישבו תוצאות ההרצה, אלו הן ספריות הלוגים והדוחות הסטנדרטיים של TestNG :
ה-AnyAUT תומך גם במערכת הדוחות של ExtentReport להצגה ויזואלית טובה יותר של תוצאות הריצה
החסרונות שזעקו לי ממש כשעבדתי עם AnyAUT:
1. תמיכה ב-Web בלבד
2. תמיכה על מערכות הפעלה Windows בלבד
3. אמנם הבנייה של הטסטים מתבצעת על ממשק Web אליו ניתן להתחבר מכל מכונה, אך בשביל להריץ אנחנו נצטרך לבצע התקנה של מנוע ההרצה אצלינו במכונה
4. ההרצה היא לוקאלית, אין אפשרות להריץ על מחשבים מרוחקים (ולא על ענן)
5. אין אפשרות להריץ במקביל (לא בגרסה החינמית בכל אופן)
6. לא ראיתי אופציה להתממשק עם המוצר לכלי CI כלשהם
7. למרות שניתן לייצא את מבניות הבדיקות שלכם כקבצי אקסל, אין אפשרות לייצא את הקוד מאחורי הקלעים, מה שזה אומר שאם מחר החברה סוגרת את הבסטה, אתם נשארים עם כלום ביד
לסיכום, מוצר חביב שיכול להועיל לאנשים שמעולם לא כתבו טסטים אוטומטיים ורוצים להתנסות, אך מאוד מאכזב בסיכום הכללי.
מכיוון שהם תומכים ב-Web בלבד, מלכתחילה הם מייעדים את עצמם לתחרות גדולה ושוק רווי מאוד בפריימוורקים מצויינים. זה אומר שבשביל להתבלט מעל כולם, הם צריכים לתת הרבה מעבר למה שהם נותנים היום.
בנוסף לכל החסרונות הכתובים לעיל, הדבר שהכי הציק לי היה שהם פיספסו לגמרי את הרעיון המרכזי שלהם שהוא (אני מצטט מהאתר שלהם): "It has been built with 1 core idea. How to Automate with Ease, Speed and Power?" , נוח ליצור איתם טסטים, אך אופן היצירה איטי מידיי לטעמי (הייתי צריך לעבור יותר מידיי מסכים עם יותר מידיי הקלקות של העכבר עד שיצרתי מקרה בדיקה בודד), ו-Power ?? קשה להגיד שיש למוצר הזה יכולות מעבר למובן מאליו, חיפשתי את ה-Added Value ולא מצאתי אותו כאן.
בגרסה הנוכחית, עם התמיכה המועטה, קשה לי לראות את האנשים נוהרים אליהם בהמוניהם ומשתמשים בכלי, לא בגרסה החינמית ובטח לא זאת שבתשלום.