ה-KDT הינה גישה מסויימת עבור בדיקות אוטומטיות. ההצהרה המובהקת שלה היא לקחת מערכת של אוטומציה ולהפריד בה בין הבדיקות הפונקציונליות (שכבת הלוגיקה) לבין תשתית האוטומציה (שכבת המנוע), בעזרת גישה זו יוכלו המפתחים לבנות תשתית נרחבת לאוטומצית המוצר ואילו הבודקים הידניים יהיו אחראיים לבנות את מקרי הבדיקה, להריצם ולנתח את התוצאות, תוך שימוש בממשק ידידותי ונוח לתפעול , בדרך זו , ניתן לומר כי הבודקים הידניים יוכלו לבנות ולהריץ בדיקות אוטומטיות מבלי להכיר שפת תכנות כלשהי , אבל תחייב להכיר שפה חדשה הדומה יותר ל"שפת אדם". ה-KDT הוא למעשה המכניזם למימוש שפה זו. שפת הבדיקות תורכב ממילים מוסכמות אשר יהוו את תהליכי הבדיקה.

המטרה היא לספק תשתית הירארכית משותפת ואחידה בה ישתמשו הבודקים, ובעזרתה גם להבטיח כי שינוי במוצר הנבדק, בממשק המשתמש (גרפי או אחר) לא יגרור שינוי נרחב במאות הבדיקות המתבססות על אזור זה – אלא יתוקן במקום מרכזי בתשתית האוטומציה (בקבלת גרסה חדשה מומלץ תחילה להריץ סט מצומצם שיזהה שינויים כאלו – לפני הרצת סט נרחב שעשוי ליפול לשווא).

בכדי להגיע ל-KDT עלינו להגדיר תחילה את הפעולות (פונקציות) הנדרשות ואת הממשק המוסכם הדרוש להן – שמות הפעולות, שמות וסוגי הפרמטרים שיועברו אליהם ויוחזרו מהם, פעילות זו הנה קריטית לצורך צמצום השינויים שיידרשו בהמשך לכמות גדולה של סקריפטים של הבדיקות השונות.

את השפה והסקריפטים ניתן להציג ולבנות בשיטות שונות, החל מיצירת פקודות ייעודיות על בסיס הפונקציות במידה ושפת וסביבת התכנות מאפשרות זאת (לדוגמא ב- VBA), דרך כלים מסחריים המאפשרים גרירת אובייקטים גרפיים (שיטה המייצרת סקריפט קל להבנה, אך מסתבכת כשגודל וכמות הסקריפטים עולה) וכלה בשיטה הנפוצה והנוחה במיוחד למרבית הבודקים, של תיאור הסקריפט באקסל – תוך ניצול יתרונותיו למניפולציה מהירה של המידע. המהדרין מספקים יכולות בחירת הפעולות ע"י Drop-Down המתקבל מרשימת הפונקציות הנמצאת ב-Sheet אחר, ושימוש ב-VBA של אקסל להקלה על מילוי הפרמטרים הנדרשים לכל פונקציה.

לפני שנעבור מהחלק התיאורטי למעשי, אציין כי עבודה נכונה בשיטה זו תאפשר :

– לבודק הידני להרכיב מקרי בדיקה במהירות וללא קושי תוך לימוד השפה בצורה פשוטה

– למפתח האוטומציה ליצור תשתית שתהיה קלה לתחזוקה

כאמור, ישנם כלים מסחריים המטמיעים את היכולות של ה-KDT בתוך המוצר שלהם, אך גם כאן, נוכל אנו לעשות זאת בכוחות עצמינו. אז בדומה לשיעור שעבר המדבר על ה-Data Driven Testing  , גם כאן אמליץ בחום להשתמש באקסל ככלי הממשק בין מפתחי התשתית לבין מרכיבי הבדיקות, שם נכתוב את שפת ה-KDT שלנו, משם נרכיב את התסריטים, משם נקרא את הנתונים בדרך למימוש מתחת למכסה המנוע.

זה המקום לומר כי ישנם כמה וכמה מימושים לביצוע KDT באוטומציה, אין אחד נכון יותר מהשני, זה עניין של נוחות ותלוי סביבות ומוצר נבדק. את הדוגמא בשיעור זה אקח על בסיס שיעור 17 – מודל השכבות. ניתן נביט שוב על תרשים המודל, נוכל לתאר כי שכבת ה-KDT תהיה מעל לשכבת (מחלקת) ה-Tests.

וכרגיל, כמו בשיעורים הקודמים, אקח את דף צור קשר באתר לצורך הדוגמא בשימו ה-KDT , אז נתחיל בתצוגה של מבנה האקסל:

kdt1

 

kdt2

ניתן לראות כי המבנה מכיל 7 עמודות, ומספר לא ידוע של שורות, כל שורה בקובץ האקסל תייצג לי step וכל עמודה תייצג לי סוג פעולה:

Test Scenario: כאן אגדיר שם שם הבדיקה שלי, כמו למשל – Test_01_Login , אגב , סט של בדיקות יוכל בגליון (sheet) אחד.

Action: סוג הפעולה אשר אנו מעוניינים לבצע.

ObjectType: על איזה סוג אובייקט נרצה לבצע את הפעולה שלנו

ObjectName: שם האובייקט עליו נרצה לבצע את הפעולה

Parameters: אלו פרמטרים נשלח לפעולה שלנו

Run: מקבל 0 או 1 , 0 – לא להריץ , 1 – להריץ , אופציה זו נועדה בכדיי להקל עלינו בבנית הטסטים (כמו שאסמן קטע קוד כ-remark)

Remarks: שדה רשות בו אפרט מהו ה-step או דברים נוספים אליהם יש להתייחס.

 

הנה דוגמא לפעולה של פתיחת דפדפן וניווט לאתר:

kdt3

 

ואילו מקרה בדיקה מלא בו אשלח הודעה בדף צור קשר יראה כך (רק ללא היציאה מן הדף בסוף):

kdt4

אז כעת, לאחר שראינו כיצד תסריט בדיקות נראה, אפשר להסביר בצורה טובה יותר מה הכוונה "שפת KDT" שרשמתי עליה קודם לכן. לשפה , כמו לכל שפה יש אוסף של חוקים, כך גם במקרה הזה, החוקים כאן נאכפים בין היתר ע"י combo boxes באקסל , כך שלמשל תחת העמודה – Action נראה קבוצה של פעולות ספציפיות שהוגדרו מראש ואותן לא ניתן לשנות (טכנית ניתן, אבל רק בהסכמה והבנת ההשלכות), לא אוכל להכניס למשל Action = Apple.

דבר נוסף שנוכל להרכיב על ה-KDT הוא לתמוך באסופה של סטפים שירכיבו תהליך (process),  זאת בכדי למנוע שיכפול של שורות באקסל. למה הכוונה ? נגיד כי ישנם X טסטים בהם נרצה להביא את המערכת למצב מסויים ממנו אתחיל את הבדיקה, הבאת המערכת למצב זה תהיה כרוכה ב-Y סטפים. הדרך הפרימיטיבית תהיה לקרוא ל-Y הסטפים X פעמים. הדרך החכמה יותר היא לאגד את Y הסטפים לתהליך אחד ולקרוא לו פעם אחת בלבד לכל X הטסטים. בואו נראה דוגמא בה אכניס כמה סטפים לתהליך אחד: הסטפים יוגדרו כך:

– כניסה לדף הראשי של האתר

– כניסה לקורס הסלניום באתר ע"י לחיצה על הקישור

– כניסה לשיעור זה – שיעור 24

– לחיצה על קישור של דף "צור קשר" מתוך הפוסט

והחל מרגע זה ארצה להתחיל את הבדיקה שלי שהיא כאמור שליחת הודעה (ברור שיכולתי ישירות להיכנס לדף צור קשר, אך לשם ההדגמה סיבכתי את הבדיקה). אז ניצור את ה-process בגליון נפרד בקובץ האקסל, כך:

kdt5

הקריאה מגליון הבדיקות שלנו אל ה-process תראה כך:

kdt6

 

ואפילו ניתן לעשות את זה חכם יותר ע"י יצירת process גנרי (כניסה לדף כללי אשר מקבל את שם הדף כפרמטר):

kdt7

 

טוב, אז איך כל זה מתחבר לקוד ?

 * רוצים לראות את המשך הפוסט ? צרו עימי קשר ונקבע פגישה לקורס פרונטלי

 


arrowBack arrowMain arrowFor

השאר הערה\הודעה