בודקים שמחים למצוא באגים במערכת אותה הם בודקים. לא מתוך שמחה לאידם של המפתחים, כמובן, אלא בעיקר כי זו דרך "להוכיח" את התרומה שלנו למערכת. למעשה, ה"באגים" שאנו מגלים אינם הבעיות בקוד אלא רק הסימפטום שלהן – הכשל (failure). את הפגם בקוד (defect, bug) מוצא המפתח ומתקן באמצעות דיבוג של הקוד (debugging).
אך האם תיקון הפגם ימנע את חזרתם של פגמים דומים? מה גורם להופעה של פגמים בקוד? לשם כך עלינו למצוא את שורש הבעיה, ועל כך השאלה שלנו היום.
(לשם הבהרה אומר שאני בוחר להשתמש במושג פגם, כמו שמופיע בסילבוס בעברית, למילה שבשפת היומיום אנחנו קוראים "באג" מאחר וה"באג" אותו אנו מוצאים בזמן הבדיקות הוא למעשה ה"כשל").
איזה מהבאים הוא פגם (defect, bug) ולא שורש הבעיה (root cause) במערכת מעקב כושר?
א. כותב הדרישות לא הכיר את תחום אימוני הכושר ולכן הניח בטעות שהמשתמשים רוצים שקצב הלב יוצג בפעימות לשעה.
ב. הבודק של ממשק הטלפון החכם לא הודרך בשימוש בבדיקות הֶחְלֵף מצבים (state transition testing) ולכן החמיץ פגם חשוב.
ג. משתנה קונפיגורציה שגוי שיושם בפונקציית ה-GPS עלול לגרום בעיות איכון בזמן שעון קיץ.
ד. המעצבת של ממשק המשתמש לא עבדה על מכשירים לבישים קודם לכן ולא הבינה את ההשפעה של השתקפות אור השמש.
הפתרון לשאלה
נתחיל עם יעד הלימוד ורמת הידע הדרושה לנושא הזה. את יעדי הלימוד ניתן למצוא בעמוד הראשון בכל פרק בסילבוס. לכל יעד לימוד מוגדרת רמת הידע הדרושה לו (K-level).
יעד הלימוד שלו מתאימה שאלה זו היא FL-1.2.4 "הבחן בין שורש הבעיה הגורמת לפגם לבין השפעותיו של הפגם" והיא ברמה K2. רמה זו אומרת שעל הנבחן להבין את התשובה הנכונה על פי הנושא הנלמד.
שורש הבעיה של פגם הוא הגורם המוקדם ביותר שהביא ליצירה של הפגם. כאשר מפתחים מתקנים בעיה כלשהי בקוד, רצוי שגם ינתחו את הגורמים השונים שהביאו לקיום הפגם, במטרה לתקן אותם. זהו חלק מתהליך של שיפור תהליכים. אם נתקן את הגורמים לפגם, נמנע הופעה של פגמים דומים בעתיד.
למשל, אם שורש הבעיה הוא חוסר היכרות של כותב הדרישות עם התחום בו פועלת המערכת, הרי שאם נכשיר את אותו אדם בתחום הזה, ניתן לו כלים שיעלו את איכות ונכונות הדרישות שהוא כותב, ובכך נשפר את איכות הקוד ואת איכות המערכת.
הבה נבחן את התשובות:
א. חוסר ההיכרות של כותב הדרישות עם התחום שבו פועלת המערכת הוא זה שגרם לפגם בדרישות אך אינו הפגם עצמו. זהו שורש הבעיה.
ב. הידע של הבודק בסוגי בדיקות אינו משפיע ואינו גורם לפגם במערכת, אך כמובן גם אינו פגם.
ג. יישום שגוי של משתנה כלשהו גורם לבעיה כלשהי במערכת. הבעיה באיכון היא הכשל (failure) של המערכת והיישום השגוי הוא הפגם (defect, bug).
ד. חוסר ההבנה של מעצבת הממשק גרמה, כנראה, שהשתקפות אור השמש יצרה בעיות במערכת. חוסר הבנה זה אינו הפגם אלא שורש הבעיה.
לפי ההסברים הנ"ל התשובה הנכונה היא תשובה ג'.
השאלה תורגמה משאלון דוגמה B של ®ISTQB.
אם תרצו שאגיש שאלת דוגמה בנושא מסוים או אם יש לכם שאלות אנא פנו אלי באימייל [email protected]