בפוסט הבא נתייחס לבדיקות Black Box ולצורך כך נשתמש בפונקציות של קוד, אך ללא גישה מלאה אל הקוד וננסה להתמודד עם טענות כמו: "למה אי אפשר לבדוק הכל ?"
כדי להקל על כמות החומר הכתוב, נשתמש בסרטוני וידאו מתוך הקורס Software Development Process של Udacity.
ראשית נציין שלמרות שאנו נבדוק פונקציות מתוך קוד, הבדיקות שנעסוק בהן יהיו עדיין Black Box כיון שלא תהיה לנו גישה אל הקוד.
מקובל לקרוא לבדיקות אלה API Testing.
ניקח לדוגמא פונקציה פשוטה בשם PrintSum שכל מה שהיא עושה היא לחבר שני פרמטרים מסוג int.
נסו לחשב כמה זמן יקח כדי לבדוק את כל התוצאות האפשרויות (Exhaustive Testing) לפונקציה זו כדי לוודא שהיא מחברת נכון את שני הפרמטרים, כמובן בהנחה שהבדיקות יתבצעו אוטומאטית.
תשובה
במקום להסתכל על כלל האפשרויות הקיימות ולעבור עליהם בשיטה סיזיפית ללא תכנון, כדאי לחלק את כלל האפשרויות לקבוצות ולדגום חלק מכל קבוצה.
כדי להקל על כמות החומר הכתוב, נשתמש בסרטוני וידאו מתוך הקורס Software Development Process של Udacity.
ראשית נציין שלמרות שאנו נבדוק פונקציות מתוך קוד, הבדיקות שנעסוק בהן יהיו עדיין Black Box כיון שלא תהיה לנו גישה אל הקוד.
מקובל לקרוא לבדיקות אלה API Testing.
למה לא לנסות פשוט לבדוק את כל האפשרויות ?
נסו לחשב כמה זמן יקח כדי לבדוק את כל התוצאות האפשרויות (Exhaustive Testing) לפונקציה זו כדי לוודא שהיא מחברת נכון את שני הפרמטרים, כמובן בהנחה שהבדיקות יתבצעו אוטומאטית.
תשובה
אז אולי ננסה בעזרת טסטים עם פרמטרים רנדומלים ?
תשובה
אז מאיפה להתחיל ?
בדוגמא של PrintSum, הקבוצות הן:
int > 0 , int == 0 , int < 0
על בסיס זה, ניתן להתחיל לכתוב Test Cases לפונקציה עם קומבינציות של שימוש במספרים מייצגים מכל קבוצה, כמו למשל: 0, 1, -1 ולהציב אותם בכל אחד מהפרמטרים.
Boundary Testing
על בסיס הנחה זו, נוכל להוסיף קומבינציות נוספות עם מדגם של מספרים הגובלים בבהגדרה של הפרמטרים, שבמקרה שלנו הוא int:
maxint, maxint-1, -maxint, -maxint+1
בפוסט הבא נדון בכתיבת טסטים עבור פונקציות מורכבות מעט יותר ועם שיטות שעשויות לשמש אתכם במקרים מורכבים אחרים.
אין תגובות:
הוסף רשומת תגובה