חדשות היום

אוטומציה היברידית

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

כשמדברים על כמויות גדולות של פיצ’רים, המוצר מתנפח וככל שהיכולות שלו גדלות בודקי התוכנה נדרשים להגדיל את בדיקות הרגרסיה (Regression), ומוצאים פתרונות אוטומציה, עולם ה-OpenSource מתרחב בקהילת הבדיקות, וכלים שונים מציעים פתרונות טכנולוגיים מתקדמים.

תמונה 1:
סכמה פתרון כללי

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

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

אז איך פותרים את בעיית ההתמודדות אוטומציה בכמות הקונפיגורציות הקיימות בין העולם האפליקטיבי המגוון ובנוסף כמות הפלטפורמות האינסופית וגם מצליחים לבצע בדיקות מקיפות על כל המגוון? איך למעשה ניתן להתמודד עם עולם שבו טכנולוגיה אחת של דפדפן WEB במחשב שלנו (עם מגוון של 3-4 מתחרות כגון Chrome, Fire Fox, IE, EDGE) לבין הטכנולוגיות האפליקטיביות במכשירי המובייל השונים שגם להם יש גם אפליקציות Native וגם אפליקציות היברידיות וכל זאת מבלי לפגוע באיכות המוצר הנכתב?

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

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


הפיתרון האפליקטיבי:

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

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

תמונה 2: פתרון החומרה

השונה:

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

הפיתרון פלטפורמי:

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

אז מה עושים?

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

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

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

 

 

שלומי שמעוני, מנהל מחלקת אוטומציה, קווליטסט ישראל

תגובות סגורות