סקירת כלים - Testim | רחל ברוך

הכרות 

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

Testim הוא כלי ניהול בדיקות לאוטומציה שמכיל את ניהול הבדיקות וביצוע ההקלטות ביחד. ניתן להשתמש בכלי ללא כתיבת קוד או ע"י כתיבת קוד ב - Java Script לצורך התאמה אישית. 

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

תכונות מרכזיות 

  1. כתיבה מהירה  - Fast authoring
  2. ניתוח שורש הבעיה - Root Cause Analysis
  3. יציבות
  4. גמישות
  5. ביצוע
  6. התממשקות
  7. ניהול בדיקות
  8. דוחות
  9. התאמה לארגון - Enterprise readiness
  10. תמיכה

כתיבה מהירה Fast Authoring

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

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

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

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

 לכלי יש מאפיינים מוכנים הניתנים לשימוש:

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

ולידציה: ניתן להגדיר ולידציה עבור נתונים, דוא"ל (הכלי מייצר מיילים בתחילת הטסט ומוחק בסוף ההרצה), קבצי וורד, קבצי PDF ועוד.

תנאים: ניתן להגדיר תנאים לשלבים (steps) או לקבוצות.

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

פרמטרים: ניתן להגדיר פרמטרים ולקרוא להם מתוך קוד ג'אווה סקריפט או HTML.

DDT: ניתן לשלב את נתוני הקלט מקבצי JSON, אקסל או CSV.

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

מאפיינים של השלבים בבדיקה:

שינוי הגדרות של שלבים בבדיקה:

 

ניתוח שורש הבעיה – Root Cause Analysis

הכלי נותן יכולת למצוא במהירות את סיבה לכל נפילה על ידי צילומי מסך, קבצי network log-HAR ו-console logs. ניתן לשתף את תוצאות הבדיקות ולגשת לצילומי המסך וללוגים באופן מקוון. 

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

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

Root Cause מסייע למשתמשי Puppeteer ו Playwright למצוא את שורש הבעיה, ובכך לפתור את הבעיה במהירות. בזמן הרצת הבדיקה הוא לוקח צילומי מסך, קבצי network log-HAR וconsole logs ושומר אותם במחשב או בענן. ניתן לשתף את תוצאות הבדיקות און ליין ולגשת לצילומי מסך וללוגים באופן מקוון. בנוסף גרסת הענן מאפשרת גישה לרשימות בדיקה, היסטורית ריצות ,לנתונים סטטיסטיים מצטברים ועוד.

מקרה נפילה :

צילומי מסך:

יציבות

אפשרות המתנה בהופעת אלמנט בדפדפן (סנכרון) מתבצעת בתנאים non visible, time ,visible או התאמה אישי.

 

ניתן לשנות את הלוקייטרים באופן ידני.

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

הצעת reusable component - הכלי סורק את הטסטים, מזהה קטעי קוד דומים, וימליץ להשתמש בקומפוננט קיים לפי צורך, או יאפשר לייצר ולעשות refactor בצורה אוטומטית. במידה ולא משתמשים ב- reusable component, תיקון שגיאה בבדיקות/עדכון מסוים צריך להעשות בכל מקום שבו נעשתה השגיאה, זה יכול להיות רלוונטי לבדיקה אחת מסוימת, אבל זה עשוי להיות רלוונטי לעשרות בדיקות נוספות, שבכל אחת מהן יש צורך לעדכן ולתקן את הדרוש תיקון. אם משתמשים ב- reusable component, יש לבצע את התיקון רק ב- group המסוים, ומייד התיקון חל על כל עשרות הבדיקות שמשתמשות בקבוצה זו. החברה מאפשרת ללקוחות משלמים לקבל הצעות ליצירת קבוצה על בסיס צעדים שחוזרים על עצמם בכמה טסטים. דבר זה מאפשר לעשות refactoring בצורה אוטומטית ויעילה. הלוקייטורים החכמים מגבירים את יציבות הטסטים בצורה רבה.

גם היכולת לייצר reusable component עוזרת לייצר בדיקות יציבות שקל לתחזק אותן.

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

התאמה ידנית של לוקייטורים:

 

גמישות

על ידי הוספת קוד ניתן להרחיב את הפונקציונליות של הבדיקה. ניתן להוסיף שלבים בהתאמה אישית ב-JS להרצת קוד בתוך או מחוץ לדפדפן.

ניתן לייצר כתובות אימייל רבות לצורך ולידציית אימיילים בבדיקה.

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

 ביצוע/הרצה

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

ניתן להריץ בדפדפן כרום או בדפדפנים נתמכים ב-Testim grid, Sauce Labs, Browserstack, 3rd party grid או ב- Selenium-based grid.

הכלי מציע שימוש ב - mock network traffic של AUT  כחלק מהבדיקה. במשך הבדיקה במקום לבצע תקשורת רגילה המערכת מעכבת את התקשורת ותחזיר mocked response. 

 דפדפנים נתמכים ב-Grid:

התממשקות

ניתן לממש התממשקות עם כלי דיווח מעקב באגים מפורסמים כמו Jira, Trello, Slack, Github Code Management.

יווצרו בהם עם פרטי תיאור וצילומי מסך של הבאגים. 

התממשקויות נוספות:

  • ניהול קוד - API של הכלי לניהול בראנצים, Github Bitbucket
  • ולידציית פיקסל , Applitools
  • ניהול בדיקות התממשקות , TestRail

התממשקות של הבדיקות ל-CI מתבצע על ידי Testim CLI (ב-npm). מעקב לאחר תרחיש הבדיקה מראה מה עבר/נכשל ופותח אותו בלחיצת כפתור ב-test result. תוצאות ההתממשקות יועברו בסטנדרט JUnitXmlReport ויופיעו בדשבורד. התממשקות מ-CLI עם:Azure Devops build pipeline, Bamboo, Circle CI, Codeship, Jenkins  עם Docker,  TeamCity, VSTS ו-TFS, GitLab.

 

ניהול בדיקות

אם רוצים להריץ את הבדיקות בסדר מסוים ולא במקביל, ניתן להשתמש ב-test suite או labels.

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

לעבודה עם לייבלים יש שתי מטרות :

לארגן את הבדיקות ולשלוף אותם לפי הצורך על ידי סינון 

וגם על ידי יצירת ,test suites שונים להריץ מקרי בדיקות ב-CI. 

לדוגמא, לייבל בשם sanity ירוץ לאחר כל שינוי בקוד, ובשם monitor ירוץ כל 15 דקות כדי לוודא שיישום בפרודקשיין עובד תקין.

ניתן להריץ ב- CLI את הלייבל שרוצים בצורה:

בקרוב:

  • מעגל חיים ניהול אוטומטי - פתרון שלם של ניהול בדיקות אוטומטי. ניהול מאות ואלפי בדיקות יהיה יותר קל כאשר מבינים איזה בדיקות לא יציבות, אילו בדיקות שבורות, וכמובן מי אחראי לתקן.
  • קבלת אישור לפני merge של בראנץ (Pull Request) כדי להגן על בראנץ הראשי.

 

דוחות

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

ניתן לסנן דוחות לפי l abel/tag/other.

בנוסף מתקבל דיווח במייל מדי שבועי .

 

התאמה לארגון Enterprise readiness

שירותים למוצר בהתאמה אישית לארגון: 

  • הרשאות ברמת הפרויקט או הארגון
  • זימון משתמשים לפרויקט קיים
  • גישה לבראנץ ללא אפשרות שינוי בו
  • SSO
  • API עבור בראנץ
  • פרוטוקולים לנגישות כמו WCAG, ARIA ועוד
  • VPN, SOC2 type II

תמיכה

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

 

יתרונות

  • קל לתחזק עקב השימוש בבינה מלאכותית
  • הצגת כישלונות במסך ההקלטה על ידי חקר וחיפוש בעיית השורש -root cause analysis
  • ממשק משתמש אינטואיטיבי 
  • ניתן לבצע מספר רב של בדיקות בזמן קצר
  • אפשרות ליצור קבוצות לצורך שימוש חוזר של השלבים בבדיקה נוספת 
  • הרצה מדפדפן או מ-CLI
  • התממשקות עם מערכות מעקב באגים פופולריות
  • התאמה אישית להרחבת בדיקה
  • אפשרות יצירת מספר רב של מיילים לצורך ולידציה
  • הכלי מאפשר להריץ במקביל מספר רב של התקנים בדפדפנים שונים
  • תמיכה טכנית 24/7 ומענה מהיר

 

חסרונות

  • לא ניתן לשנות בעלים לבדיקה
  • ניתן להוסיף Custom Steps שכתובים ב-JS ולא בשפה אחרת

 

ציון:

מענה לצרכים של החברה 9.9/10

נותן למשתמש חווית שימוש 9.8/10

תמיכה וקהילה  10/10

סה"כ 9.9