בחן את עצמך | ירון צוברי

רוצים לבחון את עצמכם ולבדוק האם אתם מוכנים לענות על שאלה מתוכנית הלימודים הבסיסית המעודכנת והמשודרגת CTFL 4.0?

אם שאלתם את עצמכם "מה הכוונה למשודרגת?", כנסו לדפי המידע באתר ITCB וצפו בפרסומים השונים שלנו וכן בערוצי המדיה החברתית השונים של ITCB.

מועד ההשקה הרשמי של תוכנית הלימודים הבסיסית המעודכנת והמשודרגת בשפה העברית הולך ומתקרב. כאמור, ההשקה הרשמית של התוכנית  ע"י אירגון ISTQB היתה במאי 2023, וניתנה שנה להסבת כל החומרים לשפה הרשמית של הארגון (אנגלית), קרי סיום במאי 2024. לשפות שאינן אנגלית ניתנה אורכה של חצי שנה נוספת להסבה.

לפני 20 שנה בערך הוזמנתי להשתתף בערב בנושא איכות ובדיקות תוכנה, ערב שאורגן ע"י דבי זילברמן ושלומית לוי מנהלות בדיקות בכירות בחברת NDS אז והיום Cisco. הערב כלל מספר הרצאות ודיונים קצרים. להפתעתי הרבה, אחת מההרצאות היתה בנושא ATDD, ההרצאה הועברה ע"י מנהלת בדיקות (שמתם לב כמה מנהלות יש במקצוע שלנו!), צעירה אך מאד נחושה וחדורת מוטיבציה, אשר הציגה את המעבר שהם ביצעו באחת מהקבוצות באינטל, מ-TDD ל-ATDD.

TDD, ATDD ו-BDD הן גישות פיתוח דומות, שבהן הבדיקות מוגדרות כאמצעי להובלת הפיתוח. כל אחת מהגישות אלו מיישמת את עקרון הבדיקה המוקדמת (ראו פרק 1.3 בתוכנית הלימוד המשודרגת של ISTQB – CTFL4.0) ונוקטת בגישת הזזה-שמאלה (Shift left), ראה סעיף 2.1.5 כנ"ל בתוכנית הלימוד), שכן הבדיקות מוגדרות לפני שהקוד נכתב.

(למידע נוסף, מומלץ לקרוא את פרק 2 תת-פרק 2.1.3 של תוכנית ההכשרה הבסיסית CTFL4.0 של ארגון ISTQB).

ועכשיו לשאלה (כתובה בלשון זכר, אך מתייחסת לכל המינים):

איזה מהמשפטים הבאים מתאר בצורה הטובה ביותר את גִישָׁת הפיתוח המונע מבדיקות קבלה  (ATDD)?

א) ב-ATDD, קריטריוני הקבלה נכתבים בדרך כלל על סמך הפורמט בהינתן/כאשר/אז (given/when/then)

ב) ב-ATDD, מקרי הבדיקה נכתבים בעיקר במהלך בדיקת הרכיבים והם מוכווני קוד

ג) ב-ATDD, נכתבות בדיקות המבוססות על קריטריוני הקבלה, כדי להניע את הפיתוח של התוכנה

ד) ב-ATDD, הבדיקות מבוססות על ההתנהגות הרצויה של התוכנה, מה שמקל על חברי הצוות להבין אותם

בחר אפשרות אחת

 


 

הפתרון לשאלה

נתחיל עם יעד הלימוד (Learning Objective) ורמת הידע (Knowledge Level) הדרושים לנושא הזה. לידיעה כללית: את יעדי הלימוד ניתן למצוא בעמוד הפתיחה של כל פרק בתוכנית הלימוד (הסילבוס). לכל יעד לימוד מוגדרת רמת הידע הדרושה לו 

(K-level – Knowledge Level). המודל המייצג לרמות הידע שארגון ISTQB משתמש בו הוא מודל הטקסונומיה של בלום (Bloom's taxonomy).

יעד הלימוד הרלוונטי לשאלה שלנו כאן הוא: FL-2.1.3 - "זכור את הדוגמאות של הגישות לפיתוח בדיקות-תחילה"; והשאלה שלנו היא ברמה של K1. רמה זו אומרת שעל הנבחן להצביע על התשובה הנכונה מתוך זיכרון או זיהוי של תוכן הקשור לנושא המסויים (או הנלמד במידה וניגש לבחינה לאחר הכשרה).

כאמור, TDD, ATDD ו-BDD הן גישות פיתוח דומות, שבהן הבדיקות מוגדרות כאמצעי להובלת הפיתוח. גישות אלו תומכות במודל פיתוח איטרטיבי. ומאופיינות כדלקמן:

פיתוח מונחה בדיקות (TDD): 

• מנחה את כתיבת הקוד באמצעות מקרי בדיקה (במקום עיצוב תוכנה נרחב) 

• בדיקות נכתבות תחילה, הקוד נכתב לאחר מכן  כדי לספק את הבדיקות, ולאחר מכן הבדיקות והקוד מעוצבות מחדש (refactored)

 פיתוח מונחה מבחני קבלה (ATDD):

• גזירת בדיקות מקריטריוני הקבלה כחלק מתהליך תכנון המערכת 

• בדיקות נכתבות לפני שמפתחים את החלק ביישום שמממש את מה שבדיקות אלה מוודאות

 פיתוח מונחה התנהגות (BDD):

• מבטא את ההתנהגות הרצויה של יישום עם מקרי בדיקה כתובים ב שפה טבעית, קלה להבנה על ידי בעלי עניין – בדרך כלל באמצעות תבנית בהינתן - כאשר - אז (given/when/then)  פורמט.

• מקרי בדיקה מתורגמים אוטומטית לבדיקות הניתנות להרצה

את כל הגישות הבדיקה לעיל, ניתן לממש גם כבדיקות אוטומטיות על מנת להבטיח איכות הקוד גם לאחר התאמות ושינויים עתידיים. 

(למידע נוסף, מומלץ לקרוא את פרק 2 תת-פרק 2.1.3 של תוכנית ההכשרה הבסיסית של אירגון).

הבה נבחן את השאלה והתשובות:

השאלה שלנו עוסקת בעיקר בהבנה של ההגדרה שמייצגת את גישות הפיתוח הללו, שנעוצה בעובדה שגישות אלו הן גישות פיתוח דומות, ושהדגש העיקרי עבורן הוא שהבדיקות מוגדרות כאמצעי להובלת הפיתוח.

נסתכל עתה על התשובות השונות וננתח האם הן נכונות או לא, ומדוע לא:

א) התשובה אינה נכונה. הגישה בשימוש לעתים קרובות יותר בפיתוח מונחה התנהגות  (BDD)

ב) התשובה אינה נכונה. זהו התיאור שמתאים יותר לפיתוח מונחה בדיקות  (TDD)

ג) התשובה נכונה. בפיתוח מונחה בדיקות קבלה (ATDD) נכתבות בדיקות על סמך קריטריוני קבלה כחלק מתהליך התכנון.

ד) התשובה אינה נכונה. תיאור הגישה שבאה לידי ביטוי ב-BDD

 

אם תרצו שאציג שאלת דוגמה בנושא מסוים או אם יש לכם שאלות אנא פנו אלי באימייל: [email protected]