את הפוסט הבא תרגמתי מתוך הבלוג של אניטה ג’ורג’, מנהלת בדיקות במייקרוסופט. היא כתבה על זה שכולם רוצים להיות טסטרים
אתה חדש בבדיקות. אתה יושב מול המחשב ובוהה בתוכנה שעליך לבדוק. מה אתה צריך לעשות? בואו נסתכל על בדיקות מנקודת מבט בסיסית ביותר, ואולי זה יעזור לך להתקדם. אם אתה לא מתחבר ברמה הזאת, אולי כדאי לשקול מחדש אם בדיקת תוכנה היא התפקיד המתאים לך.
אתה צריך לחשוב על דרכים לקלקל את התוכנה שאתה מסתכל עליה. הבדיקות הפשוטות ביותר הן בדיקות ולידציה, שבהם מוודאים שהכל נראה נכון. אבל לא שם נמצא הכיף. אתה רוצה לנסות את הבלתי-קונבנציונלי – הפעולות הבלתי-מכוונות של הלקוח – ולבודד אותם לשם שחזור. לכל אחד ישנה היכולת לבצע בדיקות, רק שישנם אנשים שלא מבינים שיש להם התשוקה הזו. הרצון לקלקל את התוכנה, שיושבת שם כל-כך מבריקה וחדשה על מסך המחשב מולך, הוא דבר מרדני, שלגמרי הולך נגד הזרם. יצא לך לשבת בספריה ולרצות לצעוק? או לנער פחית סודה לפני שפותחים אותה? יש הרבה פעולות “מרדניות” שאינן באמת מרדניות, הן פשוט מספקות את הסקרנות. אילו צעקתי בספריה, זה לא היה נובע מרצון להסתבך בצרות, אלא כדי לצפות בתגובה לצעקה ולראות איך הסיטואציה משתנה. אם אתה מנער פחית סודה, זה לא על-מנת למלא את עצמך בסודה דביקה, אלא כדי לאתגר את עצמך ולראות אם התוצאה היא צפויה. ואז לנסות גישה אחרת כדי לראות אם דברים משתנים – מה אם אנער בקבוק במקום פחית? מה אם אנער רק קצת? מה אם אנער את זה ואז אחכה זמן רב לפני הפתיחה? אופס, קשה לי להתנתק מהווריאציות שיש כשבודקים קונספט. אם אתה עושה זאת באופן תמידי במהלך החיים, אתה טסטר.
העקרונות הבסיסיים של בדיקות נמצאים כבר בבתי הספר היסודיים שלנו, רק שעדיין לא קוראים להם בדיקות. חשבו על שיעור מדעים, כשהייתם צריכים ליצור היפותזה, ואז לבצע ניסויים כדי לבדוק אם היא נכונה או לא. זה דומה לטסטר שמייצר test cases ואז מבצע אותם כדי לבדוק אם הם נכונים או לא. אם אני עושה X, אני מצפה שיקרה Y. אם Y לא קורה, מצאתי באג בתוכנה.
איפה עוד בדיקות הופכות להיות כיף בחיינו? האם שיחקת פעם משחק קופסה? מה עם אלה כמו ג’נגה, או אל תשבור את הקרח? כל המשחק מבוסס על בדיקות! אם אכה את קוביית הקרח הזו, האם האיש שבאמצע יפול פנימה או לא? קוביות הקרח ההתחלתיות ההן הן כמו בדיקות ולידציה, אפשר להכות בהן והאיש לא ייפול. אבל האם אתם באמת יודעים אילו מהקוביות הנותרות הן בטוחות להכאה? אתם בודקים את הפיזיקה של המשחק. אפשר אפילו לקרוא להם מקרי גבול. כשאתם משחקים במשחק, אתם הלקוח שמנסה לשחק את המשחק מבלי להפסיד. בדומה ללקוח של תוכנה, אתה חושב שהפעולות שלך לגיטימיות ויניבו תוצאות טובות. אבל כשאתה מנסה משהו לא קונבנציונלי (כמו להכות בקוביית הקרח ההיא שמחזיקה את כל האופרציה), מה קורה? במשחקים האלה, זה כיף. בתעשיית התוכנה, זה גם כיף אם אתה הטסטר ולא הלקוח! אילו קוביות קרח כדאי לכם להכות בתוכנה שאתם בודקים כדי לגרום להכל לקרוס?
בואו נהיה כנים – כולנו עושים בדיקות, וחלק מהאנשים – בין אם הם קוראים לזה בדיקות או לא – ממש נהנים מזה. כולם רוצים את החרות להיות הרסני, מרדני וספונטני, ללכת נגד הנורמה, ולעשות משהו בלתי צפוי. הדבר הנפלא הוא שבתעשיית התוכנה, התשוקה הזו מביאה לך עבודה בבדיקות תוכנה – בהוכחה שהתוכנה ממשיכה לעבוד גם אחרי שעושים לה משהו לא קונבנציונלי, אחרי שמנערים אותה, אחרי שהפעולה הבאה היא לא בדיוק מה שמפתח התוכנה ציפה לה.
אז לכל אלה שם שלא חושבים שהם יודעים לבדוק, לא רוצים לבדוק, או לא חושבים שזה חשוב, עקבו אחרי הפעולות שלכם במשך יום אחד, ויתכן שתמצאו שאתם עושים הרבה יותר בדיקות ממה שחשבתם. אז אתם בוהים בתוכנה שאתם אמורים לבדוק – מה תעשו?