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

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

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

  • Jokes and Poetry from a Stochastic Parrot

    Jokes and Poetry from a Stochastic Parrot Tell a joke about a programmer and a tester attempting to enter Heaven and having to confess their sins.Two programmers were on their way to Heaven and they came to a fork in the road. One path led to Heaven, the other to Hell. The programmer who had been a tester in life said, "I'm not taking any chances. I'm going to test both paths to see which one is safe." The programmer who had been a developer in life said, "You fool! We don't have time for that. We need to take one path and trust that it leads to Heaven." The tester replied, "Trust, but verify."Another!A programmer and a tester were standing at the Gates of Heaven, waiting to confess their sins. The programmer went first and said, "I wrote code that I knew was buggy and released it anyway." The tester said, "I found the bugs in that code and didn't report them." The Gates of Heaven opened, and the programmer was welcomed inside. The tester was shocked and asked, "Why was he allowed in and not me?" The gatekeeper replied, "We already have plenty of bugs in Heaven. What we need are more testers."More.A programmer and a tester were arguing about whether it was better to be a programmer or a tester. The programmer said, "Programmers are the ones who create the software that makes the world go round. Without us, there would be no progress or innovation." The tester replied, "That may be true, but[…]

    5.12.2022 | 8:08 קרא עוד...
  • My first ever Advent of Code!

    5.12.2022 | 6:00 קרא עוד...
  • The Best Time to Test Your App

    The Best Time to Test Your App Recently on LinkedIn, I spotted the following poll in one of the software testing groups I follow:I didn't get a chance to see which option was ahead, but polls like these tend to be somewhat divisive within the testing community. Some people will argue that one selection is the best option. Some will even say that one of them is The One and Only Solution and everyone else is wrong. There's some merit in all of the poll's choices. In almost any software development process, it all depends on a team's current situation when it comes to their project and the people involved.In my opinion, however, this poll was missing the option that I consider the most valid one that teams should consider: All of the above. In this article, I'll explain why continuously performing different test-related activities during development, before deploying, and in production is essential for any organization focused on delivering a high-quality product.Testing during developmentJumping into testing a software product that's in the middle of active development can feel overwhelming. There's a steady flurry of activity happening every day, with changes coming left and right as the development team works hard to deliver on their work. The constant revisions happening at this time can make it difficult to do any extensive testing, but that doesn't mean the team can bypass testing at this phase.During the development phase, the software developers should take the lead with testing by adding automated tests—typically smaller unit tests—as they build the product.[…]

    5.12.2022 | 5:00 קרא עוד...

טיפים

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