אחד האתגרים הגדולים של בודקי תוכנה הוא שלא ניתן לבדוק הכל. לכן בודקים עובדים כדי לבחור מקרי בדיקה מייצגים מתוך אינספור אפשרויות כדי לכסות את דרישות המערכת מצד אחד ומצד שני להגדיל את הסיכוי למצוא פגמים (defects, bugs) במידה וישנם כאלה. ישנן לא מעט טכניקות שמסייעות לזהות את מצבי הבדיקה ולהגדיר מקרי בדיקה (test cases). הסילבוס של ®ISTQB לרמת הבסיס (CTFL) מציג 5 טכניקות בדיקה מסוג קופסה שחורה. (טכניקות נוספות מוצגות בסילבוס המתקדם למהנדסי בדיקה, CTAL-TA, Certified Tester Advanced Level – Test Analyst).
השאלה של היום מציגה את אחת מהטכניקות שבסילבוס, בדיקות טבלת החלטות (decision table testing). טבלת החלטות מתאימה לבדיקות בהן פלט המערכת מתקבל כתוצאה מקלט הכולל שילוב של מספר תנאים, שצריכים להתקיים.
לפניכם השאלה:
תוכנה מקבלת קלט (input) של שלושה מספרים שלמים המייצגים אורכי צלעות במשולש. התוכנה מדפיסה כפלט (output) את סוג המשולש הנוצר משלושת הצלעות: משולש רגיל , שווה צלעות או שווה שוקיים. התוכנה מדפיסה הודעת שגיאה כאשר אי אפשר ליצור משולש מצלעות בגודל הנתון.
לפניך טבלת החלטות (decision table):
במטרה להשיג כיסוי של כל הפעולות נוצרו הסטים
הבאים של נתוני בדיקות (test data):
סט 1: הכנס 2-, 0, 1 כאורכי שלושת הצלעות
סט 2: הכנס 1, 2, 3 כאורכי שלושת הצלעות
סט 3: הכנס 2, 2, 2 כאורכי שלושת הצלעות
אילו מהאפשרויות הבאות נדרשות כדי לבדוק את שאר הפעולות?
א. סט 4: הכנס 1, 5, 6 כאורכי שלושת הצלעות
סט 5: הכנס 3, 3, 3 כאורכי שלושת הצלעות
ב. סט 4: הכנס &, #, @ כאורכי שלושת הצלעות
סט 5: הכנס 2, 2, 1 כאורכי שלושת הצלעות
ג. סט 4: הכנס 2, 2, 1 כאורכי שלושת הצלעות
סט 5: הכנס 2, 3, 4 כאורכי שלושת הצלעות
ד. סט 4: הכנס 2, 3, 4 כאורכי שלושת הצלעות
סט 5: הכנס 5, 6, 7 כאורכי שלושת הצלעות
*לצפייה בתשובה המפורטת- לחצו פה.
הפתרון לשאלה
נתחיל עם יעד הלימוד ורמת הידע הדרושה לנושא הזה. את יעדי הלימוד ניתן למצוא בעמוד הראשון בכל פרק בסילבוס הרשמי של ISTQB. לכל יעד לימוד מוגדרת רמת הידע הדרושה לו (K-level).
יעד הלימוד שלו מתאימה שאלה זו היא FL-4.2.3 "גזור מקרי בדיקה מדרישות נתונות באמצעות יישום של בדיקות טבלת החלטה" והיא ברמה K3. רמה זו אומרת שעל הנבחן ליישם טכניקה נלמדת.
טבלת החלטה היא דרך להציג חוקים מורכבים שעל המערכת ליישם. כאן עלינו לבדוק שילוב של מספר קלטים לכל דרישה, שיחד מגדירים תהליך שבסופו מתקבלת תוצאה. למשל, ניתן להגדיר תהליך משיכת מזומנים מכספומט על ידי בדיקה חיובית של הכרטיס, בדיקה חיובית של המספר הסודי ולאחר מכן בדיקה האם יש יתרה בחשבון של הלקוח. רק אם שלושת הקלטים מתקיימים (חיוביים) יוציא הכספומט כסף.
בשאלה שלנו מוצג תהליך שבודק אם סדרה של ערכי קלט יוצרת משולש ואם כן, איזה משולש זה. בהתאם לקלטים המוזנים כבדיקה, תודיע המערכת אם יתקבל משולש ואיזה משולש יתקבל. כל טור בטבלה מהווה שילוב שונה בין הקלטים וכל טור כזה יתורגם למקרה בדיקה (test case). כיסוי כל הטורים במקרי בדיקה יתן כיסוי של 100% לטבלת ההחלטה.
בשאלה ניתנות 3 סדרות של פרטי קלט. הסדרה הראשונה כוללת מספר שלם ולא חיובי ולכן לא יכולה להוות משולש. סדרה זו מתאימה לטור מספר1. הסדרה השניה כוללת 3 מספרים שאף צמד מביניהם לא יקיים את החוק הבסיסי של משולש שאומר שסכום כל שתי צלעות במשולש יהיה גדול מהצלע השלישית ולכן סדרה זו מתאימה לטור מספר 2. הסדרה השלישית כוללת שלושה מספרים זהים שמקיימים את החוק הנ"ל ולכן יוצרים משולש שווה צלעות. סדרה מתאימה לטור מספר4.
כך בדקנו שלושה טורים של טבלת ההחלטה. כדי לבדוק את שני הטורים האחרים (טור מספר 3, טור מספר 5), עלינו להוסיף שתי סדרות של נתונים. אחת שתיתן משולש שווה שוקיים ואחת שתיתן משולש רגיל.
הבה נבחן את התשובות:
לפי ההסברים הנ"ל התשובה הנכונה היא תשובה ג'.
אם תרצו שאגיש שאלת דוגמה בנושא מסוים או אם יש לכם שאלות אנא פנו אלי באימייל [email protected]