Thursday, February 25, 2016

בשבחה של השפה

On the importance of language

הקשבתי אתמול לוובינר של רקס בלאק, שנושאו היה Myths of exploratory testing. בסך הכל, היה די מעניין. 
עם זאת, הדבר המרכזי אליו שמתי לב היה שההגדרה שלו ל"בדיקות חוקרות" שונה למדי מזו אליה אני רגיל. המנעד שאני שומע נע פחות או יותר בין הגישה הזו לבין הגישה הקיצונית פחות שכאן. לכן, היה לי מעניין מאוד לנסות לנחש למה בלאק מצמצם את המונח לבדיקות לא מתוכננות שמבוססות בעיקר על ניסיונו של הבודק. המחשבה הראשונה שלי הייתה שהוא בונה איש-קש כדי לנגח אותו בקלות. זה לא בדיוק טריק רטורי שאני אוהב, אבל ניחא. החשד שלי קיבל אישור כמעט מיידי בשקופית הבאה, יחד עם ההכרזה: "בדיקות חוקרות היו כנראה מאז האדם הראשון שכתב תוכנה, וכבר ב1970 אנחנו רואים את השיטה הזו תחת השם "ניחוש שגיאות". כן, כמובן, ניחוש שגיאות. כי כל החלק בו בדיקות חוקרות נועדו כדי למצוא מידע שמעניין את הלקוחות שלנו (=של הבודקים) פשוט לא רלוונטי ואנחנו רק מחפשים באגים וטעויות מטופשות. 
הסיפור המשיך כך במשך עוד כמה שקופיות ואז הפך לחלוטין את הטון - במקום "השמצות" שמבוססות על איש הקש הנ"ל, היו כמה שקופיות שדחו התנגדויות נפוצות לבדיקות חוקרות, וכמה אחרות שהציגו דרך לנהל את סוג הבדיקות הזה, או את הערך שיש בהן. כאן, ההנחה שלי נשברה - בלאק לא בנה איש קש, כי איש קש נועד להישרף, ואילו כאן הבדיקות החוקרות קיבלו מקום מכובד ליד שולחן הבדיקות. 
בחלק של השאלות והתשובות הבנתי מה קרה - רקס בלאק משתמש ב"בדיקות חוקרות" כדי לתאר משהו שונה לחלוטין ממה שאני רגיל אליו. אני רגיל להסתכל על בדיקות חוקרות כעל פעילות שמוגדרת לפי צורת הסתכלות מסויימת (בדיקות חוקרות הן בדיקות שמטרתן איסוף מידע לגבי התוכנה הנבדקת - מה שמביא באופן לאמירה הקיצונית במקצת: "כל הבדיקות הן חוקרות") ואילו עבור בלאק, הבדיקות החוקרות הן צורת ביצוע. בכך הוא בעצם משמיט את החלק המרכזי בהגדרה - הדגש על לימוד הוא משמעותי במיוחד בכל הגדרה של בדיקות חוקרות מאז 1995 (לפחות לפי לוח הזמנים הזה, ולמעט הגדרה שהייתה רלוונטית בין 2001 ל2003).
בעיני, יש כאן שימוש לא מתאים במונח, וזה בעייתי משתי סיבות. הראשונה היא שזה יוצר קושי בהבנה. כמו שכבר הזכרתי כאן, המצאת מונחים ייעודיים היא כלי שמאפשר לנו להעביר הרבה מידע בקלות ומאפשר לנו לשכלל את הדיון שלנו, ויותר מזה - זה מקל עלינו להבחין בתופעה לה ניתן השם. אם רקס בלק משתמש במונח בצורה מסויימת שאינה עולה בקנה אחד עם הצורה בה משתמשים בה אנשים בסביבת הבדיקות מונחות ההקשר (שימו לב - הדרישה אינה הגדרה זהה, כל אחד מוצא את ההגדרה שלו עם הדקויות הקטנות שמתאימות לו, אבל הסטייה מההגדרה תהיה לרוב בטווח שמאפשר לאחר לומר "לא הייתי מנסח זאת כך, אבל זה בערך מה שאני מתכוון אליו"), הוא מבטל את הבסיס המשותף לשיחה ויוצר בלבול, כי רוב ההבחנות שלו לגבי "בדיקות חוקרות" לא יתיישבו עם ההבחנות שלי, כי אנחנו מדברים על שני דברים שונים עם אותו שם. בעיות התקשורת האלה פוגעות ביכולת לפתח הלאה את הרעיונות שנובעים מהמונח הזה, ויוצרות חיכוכים מסויימים כשצד אחד מרגיש שהצד השני מדבר שטויות ואין לו מושג על מה הוא מדבר. 
הסיבה השנייה בגללה לא נוח לי עם השימוש הפגום במונח "בדיקות חוקרות" הוא שיש כאן קצת חוסר כבוד. המונח "בדיקות חוקרות" אולי אינו סימן מסחרי רשום, אבל הוא מזוהה עם פרדיגמה מסויימת (או, במינוח של קם קיינר, "אסכולה"). במקרה הספציפי הזה, מדובר במונח מרכזי למדי. לתת הגדרה שונה למונח הזה שלא כחלק מדיון עם ההגדרות הקיימות מפגין זלזול בכל מי שהשקיע ותרם לפיתוח משמעות המושג בתוך הקבוצה הזו. אם אני משתמש במונח כלשהו, הדבר הראשון שעלי לעשות הוא להבין אין משתמשים בו בקהילה האקדמית בה הוא נפוץ ואיך מבינים אותו בפועל. 

---------------------------------------------
I participated yesterday in a webinar by Rex Black  named "Myths of exploratory testing". All in all - it was pretty interesting. 
However, the main thing I noticed was that his definition of "Exploratory tests" is very different than the one I'm used to. The spectrum I hear usually ranges between this approach and the less extreme one here. So, for me, it was interesting to try and guess why is Black reducing the term to unplanned testing that rely heavily on the tester's experience. My first thought was that he is creating a straw man that would be easy to attack. Not exactly a rhetorical trick I appreciate, but well... ok. My suspicion got a confirmation in the next slide when the myth we dealt with was "exploratory testing was invented in the 1990s". One of the claims was that as early as 1970 this technique was recognized and named "Error guessing". 
Sure. error guessing. Because the whole part of exploratory testing that are meant to find relevant information that interests our clients (=the testers' clients) is irrelevant since we are just looking for errors and silly mistakes1. This went on for a few more slides, and I got this warm fuzzy feeling of  "I was right", until suddenly, our approach changed drastically and we were looking at "myths" that rejected common objections to exploratory testing, such as it being unmanageable or irrelevant. We even got to the point where Black stated that no testing effort could be complete without having some degree of exploratory testing in it. 
OK, my guess was wrong. what has happened here? What did I miss. During the Q&A part, I came to an understanding - Black is using the term "exploratory testing" to describe an activity very different than the one I'm used to when using this term. His definition is that exploratory testing is defined by the way it is executed and planned, while I think of it as something defined by the goal the tester have in mind (gathering information). By doing so, Black is ignoring the main thing in the definition of exploratory testing - in every definition since 1995 (according to this list, with the exception of the definition in use between 2001 and 2003), learning is a crucial part of it. 
I think that what we see here is an improper use of the term, which I think is problematic for two reasons: 
The first is that it creates a difficulty in understanding. As I have already mentioned here, inventing specific terms is a tool that enables us to communicate more concisely and convey our ideas with better accuracy, which enables us to refine our discussion and take it further. Moreover - naming something means that we can spot it more easily. By using the term in a manner which is not compatible with it's use inside the context-driven testing community (Note - I'm using "compatible", not "exact", since everyone has their own understanding of each term, but the deviation would normally be within the range that will enable others to say "ok... not necessarily the way I would word it, but it's generally what I mean") he is undermining the basis for an efficient conversation \ debate and creates confusion. Most of his observation on exploratory testing will be irrelevant for me, since he's talking about something completely different and using the same name. This in turn hinders our ability to further elaborate the ideas based on this term and creates unnecessary friction where each side is sure that the other is speaking nonsense and have no clue what they are talking about. 
The second reason I'm uncomfortable with the improper use of the term is that I think it's disrespectful. While there is no trademark (that I know of) for the term "exploratory testing', it is still identified strongly with the context driven paradigm (or, in Kaner's words - "school"), and in this case, it is also a rather important term, deprecated or not. Giving it a new definition without considering the current ones is disregarding those that did invest quite a lot of effort in defining the term inside this group.While redefining a term is an important part of keeping it relevant, the first thing one should do before using the term, and more so before redefining it, is to understand how it is being defined by the scholarly community in which it is prevalent, and how is it understood in practice. 



1 By the way - error guessing is a great tool, it just has a limited scope - which is a good thing for a tool, less so for a testing approach



2 comments:

  1. I also started to listen to this podcast (wasn't aware of slides), but opted out when Black kind of passive-aggressively (without mentioning names, but obviously referring to Kaner) said that it's a myth that the exploratory testing was born in the 80's in the Silicon-valley and instead saying that the very early (software) engineers at NASA (?) were already exploring.

    I thought, first, he is confusing an activity happening and a term being coined for the activity. Then I thought if he is saying that exploring is going on anyway in every testing situation than he is basically saying that testing = exploratory testing (which he wouldn't explicitly say)

    Reading your post, maybe I shouldn't have stopped listening, so thanks for writing this up!

    ReplyDelete
    Replies
    1. At your service.
      I find it quite interesting to listen to Rex Black for two reasons:
      The first is that most of the question he asks are quite good. It's just his answers that I don't like.
      The second reason is that I don't want to hear only those I agree with, and I think he's a pretty eloquent representative of the ISTQB paradigm, which is most at odds with my beliefs.

      At any rate - thanks for reading and commenting!

      Delete