Monday, April 25, 2016

בדיקות בסוף השבוע

Weekend testing

השתתפתי היום במפגש של Weekend-testing, ובפרט של הסניף האירופאי שלהם WTEU. הנושא הפעם היה "יוריסטיקות בבדיקות". איזה קטע, בדיוק העברתי הרצאה על זה בעבודה, כך שיצא לי לחפור את החומר קצת. ועכשיו הזדמנות להשתמש ביוריסטיקות באופן מודע? עם בודקי תוכנה אחרים שעושים אותו דבר? אחלה!
נתחיל עם השורה התחתונה - נהניתי, גם למדתי קצת. יש כמה דברים שאולי אפשר היה לשפר. 
אז מה היה לנו שם? 
התחלנו עם הצגה קצרה של כל הנוכחים (סדר גודל של עשרים איש) ומשם ניגשנו לעניינים. 
בילינו בסביבות ארבעים דקות בניסיון להגדיר מה הן יוריסטיקות, להציג כמה יוריסטיקות בהן משתמשים המשתתפים ולהשליך קישורים מעניינים מצד לצד.  היו שני דברים שהפריעו לי בחלק הזה. הראשון היה שלמרות מגוון האנשים הרחב למדי שהיה וההבדלים המשמעותיים בתחומי העיסוק והניסיון, אפשר היה לשמוע שכולנו (כן, גם אני) מצטטים את אותו ספר לימוד. הדבר השני היה שלא הצלחתי להבין מה מטרת הדיון - בהתחלה היה נדמה לי שהמטרה היא ליישר קו בין המשתתפים, אבל זה נמשך יותר מדי זמן ולא היה מספיק ממוקד כדי לעשות את זה. למעשה, בתחילת הדרך נראה שמה שאנחנו עושים היה בעיקר להשליך נוטריקונים אקראיים זה על זה ולהסביר מה הן המילים שמיוצגות בנוטריקון הנ"ל. למה? כובע. כך עברנו על SFDIPOT ועל FEW HICCUPPS, ואז, כי נמאס לי מראשי תיבות, זרקתי פנימה גם את מבחן הדבורה המתה ומישהי אחרת הזכירה את Lévy flights, שזו דרך לומר "אני משוטט קצת באותה סביבה עד שנמאס לי, ואז מחליף כיוון לגמרי". שוב, גם הדוגמה שלי וגם הדוגמה שלה מגיעות (למיטב ידיעתי) מאותו מקור. 
בשלב הזה קצת נמאס לי - לא הבנתי מה המטרה של השיחה הזו, והיא נמשכה יותר מאשר היה נראה לי סביר. 
אבל, בדיוק כשתהיתי אם זה יהיה חצוף מצידי לשאול אם יש פואנטה לדיון הנוכחי, עברנו לחלק הבא - התחלקנו לקבוצות קטנות וניגשנו לתכנן בדיקות לאפליקציה שלא הכרנו בעזרת SFDIPOT. 
בסופו של דבר מצאתי את עצמי בקבוצה של שלושה בודקים - דולורס (כרגע בוינה, במקור מספרד), קיריל(מרוסיה, למיטב ידיעתי) ואנוכי. בילינו קצת (יותר מדי) זמן בהקמת תשתיות תקשורת - פתיחת שיחה נפרדת בסקייפ, יצירת מפה משותפת בmindmup ואז - לעבודה. הקדשנו קצת זמן בחיטוט ראשוני באפליקציה ובעודי ממצמץ לרגע קיריל כבר הספיק להוסיף המון עלים חדשים למפה שלנו. רעיונות מצויינים, אבל המטרה שלנו הייתה לשתף פעולה בדרך זו או אחרת. לפחות, זה מה שאני רציתי לעשות. אחרי שקיריל הסביר מה הוא עושה (משוטט ומעלה רעיונות, אותם הוא יסדר אחר כך) הסכמנו להקדיש לעניין עוד חמש דקות ואז להתחיל לסדר דברים. תוך כדי שאנחנו מסדרים דברים שמתי לב שלא ממש השתמשנו בSFDIPOT אלא פעלנו באופן אקראי למדי. 
האמת? לגמרי הגיוני. אני לא חושב שמישהו מאיתנו הקדיש הרבה מאמץ לעבודה עם היוריסטיקה הספציפית הזו בעבר, כך שלא ממש הכרנו אותה. בנוסף, זה שלא הכרנו אלה את אלה ותקשרנו בעזרת הודעות טקסט הוביל לכמה קשיים בתקשורת. נוסיף לזה אפליקציה חדשה שלא ראינו בעבר, וקיבלנו משימה קשה, במיוחד במסגרת הזמן הקצוב מאוד שהיה לנו. 
לקראת הסוף התחלנו להתמקד קצת יותר ולארגן דברים מסביב לחלקים השונים של SFDIPOT, וכמובן - עד שהתחלתי להרגיש שאני מבין מה קורה, נגמר לנו הזמן. 
בסך הכל - זו הייתה חוויה מעניינת. 

כמה נקודות קטנות לשיפור -
  1. החלק התיאורטי היה ארוך למדי ולא ממוקד מספיק. דיברנו ודיברנו בלי לדעת באמת לאן אנחנו חותרים. לדעתי, יכולנו להסתפק בחצי מהזמן. 
  2. בזמן תכנון הבדיקות, היינו צריכים להתמקד יותר במשימה הספציפית שקיבלנו - להתנסות בעבודה עם SFDIPOT. יכול להיות שניתן היה לחלק את המשימה למשימות קטנות יותר כמו "נסו למפות את מבנה התוכנה" או "מה הם סוגי המידע הרלוונטיים באפליקציה" ורק משם לעבור לכתוב בדיקה - הניסיון להתמצא באפליקציה חדשה מורכב מספיק גם בלי הצורך לנסות להבין איך עובדים עם יוריסטיקה חדשה. 
  3. קצת זמן בסוף המפגש לסיכום פנימי והפקת לקחים היה יכול להועיל לגיבוש החוויה. 
  4. לקראת סוף המפגש ציינה איימי שהיא ראתה אותי עושה משהו מעניין וביקשה פירוט - אני בטוח שלא הייתי היחיד שעשה דברים מעניינים, הייתי שמח לשמוע על מה עשו קבוצות אחרות. אולי זה יהיה בסיכום המפגש שיפורסם בעתיד. 
  5. אני לא לחלוטין בטוח שנוח לי להשתמש ביוריסטיקה הספציפית הזו באפליקציה שאני לא מכיר בכלל. אולי בצורה מודרכת, אבל לא באופן בו זה נעשה. תחושת הבטן שלי אומרת שאוכל להפיק הרבה יותר תועלת מהיוריסטיקה הספציפית הזו עם אפליקציות שאני מכיר לפחות באופן שטחי. 
ולסיכום - הצטרפו למפגש הבא, זה כיף. 
------------------------------------------------------------------------
I participated in Weekend testing Europe today. The subject was "Heuristics in testing". By chance, I just gave a short introduction talk at work about the same subject, so I came prepared after reading a bit and thinking a lot. And now I get an opportunity to consciously use some of it and see other testers do the same? Super-green. 
So, bottom-line first - I had a great time and I learned a bit. There are also some small things that could be improved. 
Or, in more details: 
We've started with a short presentation of the participants (somewhere around 20 people), and then we got to business. We've spent about 40 minutes in defining heuristics, presenting some heuristics that some of the participants work with, and toss around some interesting links. 
I had two problems with this discussion - 
First, despite having a very diverse group of people, it seemed that all of us (including me) were reading out of the same textbook. 
Second - it felt very out of focus. I assume that the original purpose was to align everyone around the same concepts and terms, but it turned out too lengthy and erratic to do that effectively. In fact, it seemed that we spent some of the time throwing acronyms one at another and then breaking them to the words behind them. Why? just because. So we've discussed SFDIPOT and (F)EW HICCUPPS, and then, since I didn't like the fact that we were practically equating heuristics with fancy acronyms, I threw in the dead bee heuristic and someone else added the Lévy flights, which is a nice way to describe the strategy of "test until bored, then go test someplace else". But then again - both of those examples come (to the best of my knowledge) from the same source. 
At this point, I started wondering if it would be too rude to ask publicly what are we trying to achieve by the current activity, but I was lucky - before I decided, we went to the next step: Testing an application. Which one? this. We broke into small teams and set out with the goal of trying to write a test plan using SFDIPOT. 
Somehow, I did manage to find a team, and we were three - Dolores, a tester from Vienna (originally from Spain), Kirill, a tester from Russia (I think) and myself. We spent a little (too much) time on setting up a new Skype group for us and creating a shared mindmap which we then - off to work!
We invested some time looking at the application (which we were unfamiliar with) and then I blinked for a bit - and found that Kirill managed to add a ton of leafs to the map. He explained that he was writing things as he went by, to be organised later - which we agreed was a good strategy, so we gave it five more minutes before turning to organize what we've found.  While we were sorting  things I noticed it didn't seem as if we were using SFDIPOT, so I pushed a bit to fix this (after all, the whole purpose of this exercise wasn't to create a test plan, but to practice using heuristics). I must say - it's not surprising that we didn't use SFDIPOT. None of us had experience using it, we were facing a completely new application, we were communicating by chat and had zero experience of working with each other. With all of those around, and the very short time we had, we get a difficult task, so naturally we resorted to doing things the ways we knew and felt comfortable with. It took a conscious effort to shift the focus to the heuristic we tried using. 
All in all - an interesting experience. 

Some points that I think could be improved: 
  1. The theoretical part was a bit too long to my taste. Clearly defining a goal and shortening the discussion in half would have made it that much better for me. 
  2. During the mission we got, we should have focused more on the task of using the heuristic. Perhaps it would have been easier if we split it up to smaller bits such as "try to map the structure of the application" or "what types of data do you think there are?"
  3. I could have benefited from several minutes of reflection within the group, perhaps with a question or two from the moderator. 
  4. Just before the end, Amy (the moderator) mentioned that she saw me doing something that interested her and we had a short chat about it. I'm sure I wasn't the only one doing interesting things, and would have loved hearing about some of the approaches used by others. 
  5. I'm not entirely sure I am comfortable using this specific heuristic in this context. While working with it I got the feeling that I should know a bit more about the application before trying to use it. Perhaps it can be done in a more controlled environment with closer guidance, but in the current setup, I felt a bit too lost. 
To sum it up - go and join the next event. It's fun. 

Friday, April 22, 2016

לדבר זה דווקא בסדר

Talking is not always hard

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

הפעם, מצד שני, המחקר שעשיתי לפני המצגת העלה תוצאות משמעותיות הרבה יותר - או לפחות כאלה שהצלחתי להתחבר אליהן הרבה יותר. את הדרך התחלתי עם תחושה אינטואיטיבית של מה זה הדבר הזה שמדברים עליו כשמזכירים יוריסטיקות בבדיקות. מה ידעתי? ידעתי להצביע על מגוון מסויים של ראשי תיבות, ועל שתי טכניקות ששמעתי את ג'יימס באך מתאר (Galumphing & click-frenzy). ההנחה שלי הייתה שיוריסטיקות וראשי תיבות משונים זה פחות או יותר אותו דבר. ואז התחלתי לקרוא ומשהו לא לחלוטין הסתדר לי. נתקלתי כאן בטענה שיוריסטיקה זה כל דבר שעשוי לשמש לפתרון בעיה, מה שנראה לי בו זמנית הגיוני מאוד וחסר משמעות לגמרי - אם המושג כל כך רחב, מה המשמעות בלחקור אותו? אילו אמירות משמעותיות אפשר לומר על נושא רחב כמו "בערך כל דבר שאפשר לחשוב עליו"? חשבתי וחשבתי, ונתקעתי.
ובכן - מה כבר יש לי להפסיד? שלחתי דוא"ל לג'יימס באך,עם כמה שאלות ועם תיאור קצר של הדרך שעשיתי עד כה. הוא היה אדיב מספיק כדי לענות לי (ועל כך נתונה לו תודתי. זה לגמרי לא מובן מאליו שהוא עונה לנודניק אקראי מהאינטרנט) ולהוליך אותי על פני כמה הודעות מנקודת ההתחלה שלי של "הנושא גדול מכדי להיות משמעותי" לנקודה בה מתגבשת אצלי הבנה מסויימת לגבי מה זה יוריסטיקות כמו גם ההכרה בכך שניסיון לצמצם את ההגדרה יהיה פחות אפקטיבי.
בסופו של יום, בעקבות השיחה הזו וכמה הפניות אחרות שנתקלתי בהן, מצאתי את עצמי עם המון חומר - גם אם נניח בצד את העובדה שעל חלק מהשיטות שמתחבאות מאחורי המילה המפוצצת "יוריסטיקה" ניתן לדבר כמה שעות טובות רק כדי להבין אותן כמו שצריך, בין ההגדרה של "מהי יוריסטיקה" והניסיון לשכנע את הקהל שיש טעם להשקיע במחקר שלהן, נשאר לי מעט מאוד זמן לדוגמאות.
בדיעבד, אני חושב שזה המצב האידיאלי למתן שיחה - כשיש לי בראש הרבה יותר חומר מאשר ניתן להכניס לתוך השיחה.
חוץ מזה, אני חושב שהשתפרתי קצת בחלק מהנקודות שהפריעו לי בפעם הקודמת. אמנם, המצגת הייתה עדיין צפופה מדי, אבל הצלחתי להקדיש תשומת לב לרוב הנוכחים וידעתי בדיוק מה אני רוצה לומר בכל שלב.
אני חושב שיש לי עוד סיכוי ללמוד לדבר בפני קהל כמו שצריך. חוץ מזה, זו הזדמנות מצויינת ללמוד עוד קצת.

---------------------------------------------------------------------------------------


And today, in our list of things that look so obvious in retrospect - it is apparently that much easier to give a talk about a subject that I have a lot to say about. In the last time I tried to present a subject at work, one could summarize my whole speech in "Personas seem to be cool". Sure, I tried to elaborate a bit and did some research, but it was not a subject I had experience with or something that "clicked" naturally. I mainly liked the idea of using personas following Abby Bangser great talk that provided an excuse I liked to use them.

This time, however, The research was much more fruitful, and the subject immensely more vast. I gave an introduction to heuristics in testing. My initial idea when I have just started was that heuristics are some odd acronyms that are useful (I had FEW-HICCUPPS in mind) and I wondered what else might be that simple and useful. I could also point out Galumphing and click-frenzy, which are two terms I picked up from James Bach. My assumption was that heuristics and odd acronyms are pretty much the same thing. Then, I started reading and found out that the definition of heuristics is actually "just about anything that can help you solve a problem". It seemed at the same time very reasonable and completely meaningless - can there be anything significant to say about something that is as wide as "everything you can think about"? So I thought and thought - and hit a brick wall.
OK, what do I have to lose? I sent an email to James Bach describing my attempt to get a grip around heuristics, what I've done and what I'm trying to figure out, and he was kind enough to answer me (that's so great from his side to just answer a random guy from the internet who drops in with a question - I don't have enough words to thank him for that). Not only he answered, he took the time to go with me through some back and forth thinking about how I understood the term, and what value is in my definition (and whether it is worth the extra complexity I tend to add in), and by the end I made the journey from "It's too big of a subject to be meaningful" to the point where I accepted the claim that trying to narrow down the subject might actually be less effective and introduce some difficulties. It also helped me see that within this large subject there are areas that I want to focus on first.
And so I continues my reading a bit and ended up with a ton of things to try and cram into a one hour talk - Even if we put aside the fact that some of the common heuristics can be discussed for several hours each, between discussing the definition of heuristics and trying to convince the audience that it is worth investigating time learning to use some heuristics and consciously thinking about it, i had very little time left to even go over some of the examples I thought worth mentioning.

In retrospect, I think this is the ideal situation before presenting a talk - when I know much more than there is in the presentation I can elaborate according to requests, and I can use the slides as an aid instead of relying on them as information source.
I also think that since I wasn't that focused on finding something to say I did better in some of the points that I noticed the last time. I still had my presentation too crowded, but I manged to give some attention to most of the attendees and I knew exactly what do I want to say in each slide (including a silly joke I planned).
I still have a lot to improve on the talking part, but I am going there. Besides - it was fun, and giving a talk is an opportunity to learn a bit more on a subject.