LOGIN
התחברות או הרשמה
Avatar
להמשך הרשמה ידנית – לחץ על כפתור ההרשמה, להרשמה/כניסה מהירה בעזרת חשבון רשת חברתית – לחץ על הלוגו בכותרת

אפס סיסמה - שכחתי את שם המשתמש

שם משתמש
סיסמה
זכור אותי

he icon   en icon

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

נכתב על ידי 
ראשון, 20 אוקטובר 2013 19:53
דרגו כתבה זו
(4 הצבעות)

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

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

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

יש לזכור שבודק התוכנה יבצע מספר רב של סוגי בדיקות ידניות (GUI , Usability , Performance and more..) אשר יעזרו לו למצוא באגים במערכת (זאת במסגרת שלבי הבדיקה  (Sanity , Regression …)) חלק מהבדיקות יהיו רלוונטיות לאוטומציה וחלקן לא, הטבלה הבאה תראה מספר דוגמאות אשר יעזרו לכם לקבוע מתי להעזר באוטומציה ומתי עדיף להישאר בתחום הבדיקות הידניות.

מקרי בדיקה למימוש אוטומטי

מקרי בדיקה  למימוש ידני

בדיקות שחוזרות על עצמן מספר רב של פעמים בגרסא ספציפית

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

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

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

מקרים שבהם לא ניתן לבצע בדיקות בצורה ידנית

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

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

כאשר מדובר בפרויקט חדש שאינו יציב

במקרה של תוכנה מבוססת ויציבה שאינה משתנה לעיתים קרובות

בדיקות חקר (Exploratory) לרעיונות שעולים תוך כדי בדיקה.

 

 

כמו שאני רואה את הדבר , אוטומציה נוצרת בכדי ל-'שרת' את הבודק ולעזור לו בהורדת הסיכון של קיומם של באגים בתוכנה הנבדקת ובנוסף תומנת בתוכה יתרונות רבים אשר ביניהם ניתן למנות :

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

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

יכולת לדווח בצורה יעילה וברורה על קיומן של תקלות - הדיווח יכול להיות בזמן אמת (מייל) או לאחר סיום הריצה (Mail , Log..).

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

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

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

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

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

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

אוטומציה - מחזור החיים

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

שלב 1 :הבנת הצורך ובחירת האוטומציה הרלוונטית :

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

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

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

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

שלב 2 :יצירת מסמכי איפיון :

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

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

שלב 3 : בחירת כלי האוטומציה :

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

שלב 4 : העברת תוכנית הבדיקות לצוות האוטומציה

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

צוות האוטומציה יעסוק ב-2 נקודות עיקריות :

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

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

שלב 5 : סגירת קצוות לפני תחילת הפיתוח

בשלב זה לאחר שניתנו זמני הפיתוח יושבים 2 הצוותים (QA & R&D) וסוגרים את כל הנושאים שנשארו פתוחים, דוגמאות לנושאים אלו :

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

שלב 6 : תחילת פיתוח או רכישת מוצר

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

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

יכולת זו מתקבלת ע"י שילוב בודקים ידניים בעלי היכרות עם תוכנה, ו/או שימוש בכלים המאפשרים כתיבת אוטומציה בצורה קרובה ככול הניתן לשפת אדם – לדוגמא שיטות  KDT – Keyword Driven Testing  למיניהן.

שלב 7 : פגישות שבועיות לליווי תהליך הפיתוח

שלב זה יכול לכלול מגוון נושאים :

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

הערה!

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

שלב 8 : הרצה מלאה של אוטומציות

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

שונה לאחרונה ב שלישי, 16 פברואר 2016 06:28

חובה להיות משתמש רשום במערכת בכדי להגיב - ההרשמה/כניסה בכותרת האתר

חדשות מעולם הבדיקות

  • personas

    listeningTo: some NFL show my husband is intently watching that I don’t care about… inRealLife: I’ve been playing Destiny 2 on Xbox for a few months now, I’m not super good at it, but it is reeeeally fun. It’s also really stressful. Anyway, I need a break, so let’s talk about some personas, hm? whatIReadThisWeek: I finished Dark Age! And it was fantastic. I powered through the entire final part last night and couldn’t stop. I’m undecided on what comes next, though I have been carrying around a (sort of) self-help how-to-be-more-productive book with me to the beach all summer and have yet to crack the spine, so, it may be time. (I can see it now: “how to be more productive? actually open this book…”) Though I did not read it this week – at this point it’s been a few weeks back, actually – I do want to explore more about personas, which spun from a MoT Power Hour with Cassandra Leung. whatILearnedThisWeek: I had a lot of takeaways from the Power Hour. I’ve wanted to delve into personas for a long time now, but I never had the time to devote to it or the support of the rest of the team to find that time. I think my site lends itself very naturally to identifying personas – we have different member types relating to the profession of the member, we have different levels of service relating to the size (and value) of the publishing house. At[…]

    22.08.2019 | 5:48 קרא עוד...
  • Articles on Communication and AI published

    There are 2 topics that are really close to my heart, that is effective communication and the impact of AI on humans and technology. Two months ago, I thought I need to share my experiences in these topics. After some considerable effort, I finally got 2 articles published on these topics on Simple Programmer and […] The post Articles on Communication and AI published appeared first on Raj Subramanian.

    22.08.2019 | 4:44 קרא עוד...
  • Method Chaining in test automation. My Dilemma.

    This article is a way for me to sort my thoughts on method chaining, its pros and cons. Why I liked it, and lately I am more and more negative toward it. Why this subject? So as you may remember from my previous article, I was using in that project method chaining. However, lately, I see it using more and more in a way that is more harmful than useful. That is why I want to discuss Method Chaining. Note I this article I am again giving the cases from UI testing world. Because this is the place, I have seen it overused most — still a lot of the advantages and issues I’ve described here applies to any code. First, what is Method Chaining: Method chaining is a way of creating a method so they return an object in a way that you can then perform next action on it without “Breaking the chain.” So let’s say we want to perform a search for a product that cost between 10 and 50 euro, belongs to category games and has metal in name normally you would do something like it. SearchPage searchPage = new SearchPage(this.Driver); searchPage.SetMinimalPrice(10.0); searchPage.SetMaximumPrice(50.0); searchPage.SetCategory("games"); searchPage.SetName("Metal"); SearchResultsPage searchResultPage = searchPage.ClickSearchButton(); With method chaining, it looks like this. SearchResultsPage searchResultPage = new SearchPage(this.Driver) .SetMinimalPrice(10.0) .SetMaximumPrice(50.0) .SetCategory("games") .SetName("Metal") .ClickSearchButton(); There are a few reasons you may want to do it. One readability this is the main benefit of method chaining – it makes code a more readable. As you[…]

    22.08.2019 | 11:55 קרא עוד...

טיפים

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