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

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

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

he icon   en icon

ET מקרה מבחן –דורון בר (גיליון#1)

נכתב על ידי 
רביעי, 03 יוני 2015 06:58
דרגו כתבה זו
(1 הצבעה)

ET מקרה מבחן – דורון בר

Exploratory Testing - ניסוי שימוש בET  הצד המעשי

 

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

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

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

אנו החלטנו ללכת על גישה מחמירה יותר הידועה בכינוי Session-Based Test Management3 (להלן SBTM), או לפחות בפרשנות שלנו אליה. גישת ה-SBTM נוצרה על-ידי ג'יימס באך ואחיו ג'ונתן ונבעה מכך שלקוחותיהם בכ"ז רצו לקבל דיווח מפורט יותר של מה נבדק (אך לדעתי יש לכך ערך רב יותר במובן של וידוא כיסוי הבדיקות). בשיטת ניהול זו יש תכנון ותיעוד תוצאות מפורט יותר, ובהתאם לכך ערכנו את הבדיקות שאתאר בהמשך.

 

המטרה

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

  • האם הבודקים שלנו מוכנים להיות בודקי ET? בסה"כ מדובר בגישה המצריכה הבנה, דמיון ומחויבות.
  • לברר מהי יעילות בדיקות ה-ET אל מול הבדיקות הידניות הכתובות, ה-Scripted Testing  (פירוט צעדים מלא*, להלן ST)? אפשר להשתמש בגישות אלו במקביל, כאשר את ה-ST כדאי לבצע באופן אוטומטי. אבל מה לגבי משימות מעכשיו לעכשיו (ולנו יש הרבה כאלה) כשאין זמן ל-ST, לא כל שכן אוטומטיזציה? האם במקרה כזה ה-ET הם פתרון מספק? לשם כך במקביל לתהליך המתואר כאן כתבנו בדיקות בדרך הישנה של צעדים מפורטים ותוצאות צפויות בכדי שנוכל להשוות בין התוצאות.
  • להבין מהי הדרך הנכונה לביצוע ET (זמנים, מתודולוגיה וכד')?

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

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

 

הכנות לביצוע

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

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

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

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

 

סוג ותוכן הבדיקות

כל בודק אמור לבדוק אספקט אחד מהרשימה שלהלן:

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

 

הבדיקה

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

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

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

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

 

התוצאות

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

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

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

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

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

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

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

 


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

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

1. Kaner, Falk, and Nguyen, Testing Computer Software (Second Edition), Van Nostrand Reinhold, New York, 1993. p. 6, 7-11.

2. http://www.satisfice.com/articles/what_is_et.shtml

3. http://www.satisfice.com/sbtm/

4. http://www.stickyminds.com/presentation/soap-opera-testing  למשל

 

DoronBar Bio 1

עולם בדיקות התוכנה של דורון בר 

 

ET DoronBar 2

 

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

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

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

  • 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 קרא עוד...

טיפים

לרשימה המלאה >>