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

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

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

  • The Ethical Mandate for Mistake Specialists

    The Ethical Mandate for Mistake Specialists In my post Forgetting How to Test, I said “we are at a time where forgetting how to test is not just a technical dilemma, but an ethical and moral dilemma.” I still believe that. Here I’ll try to show a bit of how test thinking should lead us inexorably to that idea. This post will be somewhat in line with my “Testing is Like…” concept. I also think this post will serve as yet another example of what I talked about when I framed the question-as-statememt “So, you want to be a tester?” When you want to be a software tester, you operate in a world where it feels like there must be some key on the keyboard like the above. This is because we seem to be awash in blunders, oversights, and errors — essentially mistakes. Testing is Like Thermodynamics In thermodynamics, you have a system of some sort that has a boundary. There are inputs and there are outputs. That’s pretty much what we deal with in testing all the time. But that’s a simplistic enough analogy that it’s borderline useless. Yet in his book Einstein’s Fridge: How the Difference Between Hot and Cold Explains the Universe, Paul Sen says: “Thermodynamics is a dreadful name for what is arguably the most useful and universal scientific theory ever conceived.” His point being that the word seems to suggest a very narrow area of applicability, usually associated only with heat. But, as correctly noted, thermodynamics is “more broadly a[…]

    5.12.2021 | 2:29 קרא עוד...
  • How to approach a new automation task

    How to approach a new automation task Sometimes, (test) automation professionals are approached with a completely new task for automation. In this article, I try to give you a guideline and some questions to ask when this happens. Understand the problem The very first step to approach such a task is to thoroughly understand the problem to be solved. This typically means getting feedback from the stakeholders and users who have a pain point that can potentially be solved through automation. It also involves talking to teams who might have had this issue before since there might be some inspiration or even a complete solution that fits the problem scope. Thoughts on reinventing the wheel Even if there is already an existing solution, it is necessary to assess if it really fits the problem at hand. It might be beneficial to come up with another custom way that is better suited. This decision has more factors such as How much time do we have to develop something from scratch? What is the cost of maintenance of our solution? Is it a problem that will not exist anymore in the future (so the solution does not have to be permanent)? How well documented is the existing solution? How many maintainers does the existing solution have? If the solution under investigation is open source (or "inner source" in case of company internal development), another approach would be contributing to that existing codebase instead. Compatibility If you decide to come up with an individual solution, it is necessary to start[…]

    5.12.2021 | 11:22 קרא עוד...
  • (clj 7) Programming to abstractions with sequence functions

    Looking at my progress so far, I realized it's time re-evaluate this whole learning Clojure-thing. After looking through the table of contents of "Clojure for the Brave and True" and giving it some thought, I decided to make two changes to how I'll proceed: I will start writing shorter posts and write them more often. My goal is to finish "Part II: Language Fundamentals". I don't have to do "Part III: Advanced Topics". Completing Part II will still take quite some work. I've worked through the two first sections of chapter 4 (5 sections left in that chapter) and Part II goes up to chapter 8. So no time to waste: let's take a look at sequence functions and programming to abstractions. Read more… (7 min remaining to read)

    5.12.2021 | 6:40 קרא עוד...

טיפים

  • צור מפת חשיבה – Mind Map
    צור מפת חשיבה – Mind Map  צור מפת חשיבה – Mind Map MM - מאפשרת לנו להציג רעיונות בצורה גרפית מרוכזת, ולתאר קשרים בין הפרמטרים השונים המשפיעים על הנושא. כאשר יתרונותיה על עץ בדיקות הנן בעיקר ביכולת להוסיף אייקונים וצבעים המשפרים את…
    קרא עוד...
  • למה צריך לעשות זאת עוד פעם?
    למה צריך לעשות זאת עוד פעם? אל תעשה משהו שמישהו אחר כבר ביצע - מבלי לשאול - למה צריך לעשות זאת עוד פעם?   טיפים מחברי ITCB-AB
    קרא עוד...
לרשימה המלאה >>