יום שבת, 17 בדצמבר 2016

בדיקות API לפונקציות כתיבה וקריאה

בהמשך לפוסט הקודם, נעסוק כאן בבדיקות של פונקציות, עדיין ללא גישה אל הקוד ולכן אלו יהיו בדיקות Black Box.

נדון בפונקציות פחות טריביאליות מאלו שדנו בהן מקודם וננסה להסביר באמצעות דוגמא אלו Test Cases רלוונטים.


בדוגמא שלפנינו נתונה רשימת פונקציות:

Read (address, blocks_number)
Write (address, data_blocks)
IsFull()
IsEmpty()
בעזרת הפונקציות ניתן לכתוב לתוך התקן איחסון כלשהו כגון USB Flash.

פוקנציית Read מקבלת בתור פרמטר ראשון - כתובת של בלוק היעד, החל ממנו תתבצע הקריאה ובתור פרמטר שני - את מספר הבלוקים לקריאה והיא מחזירה את המידע שקראה או False אם נכשלה.

פונקציית Write מקבלת בתור פרמטר ראשון - כתובת של בלוק היעד, החל ממנו תתבצע הכתיבה ובתור פרמטר שני - את הבלוקים לכתיבה. הפונקציה מחזירה True אם הכתיבה הצליחה ו-False אם נכשלה.

פונקציית IsFull תחזיר True או False האם הזיכרון מלא.

פונקציית IsEmpty תחזיר True או False האם הזיכרון ריק.

לצורך פשטות הדיון, נניח שכמות הזיכרון הפנויה היא קטנה - 100 בלוקים ושהזיכרון ריק כשאנחנו מתחילים את הבדיקה.


שימו לב שמושא הבדיקה היא לא החומרה - הזיכרון אלא התוכנה - הפונקציות.

נסו לחשוב כמה דקות בעצמכם או שרבטו על נייר, לפני שאתם ממשיכים לקרוא - אלו בדיקות הייתם מציעים ?


נתייחס בהתחלה לבדיקות פונקציונליות פשוטות:


  1. קריאה לפונקציה IsFull עם ציפיה לקבל False 
  2. קריאה לפונקציה IsEmpty עם ציפיה לקבל True
  3. קריאה לפונקציה Write עם כתובת חוקית כלשהי [1-99] ועם מידע בגודל של בלוק 1, ציפיה לקבל True
  4.  קריאה לפונקציה Read עם אותה כתובת שלתוכה כתבנו ועם מספר 1 בכמות קריאת הבלוקים, ציפיה לקבל את הבלוק שכתבנו.
  5. קריאה לפונקציה IsFull עם ציפיה לקבל False 
  6. קריאה לפונקציה IsEmpty עם ציפיה לקבל False
  7. קריאה חוזרת לפונקציה Write עם גדלים משתנים של בלוקי מידע עד למילוי כל הזיכרון, ציפיה לקבל True לכל הקריאות
  8. קריאה לפונקציה IsFull עם ציפיה לקבל True 
  9. קריאה לפונקציה IsEmpty עם ציפיה לקבל False

נעבור לבדיקות Negative:

  1. קריאה לפונקציה Read עם מספר בלוק שלא מכיל מידע, ציפיה לקבל 0 או משהו דומה.
  2. קריאה לפונקציה Write עם מספר בלוק שמכיל מידע - תוצאה תלויה בהגדרה.
  3. קריאה לפונקציה Read עם מספר בלוק מחוץ לטווח [למשל, 999] ציפיה לקבל False
  4. קריאה לפונקציה Read עם מספר בלוק בתוך הטווח ועם מספר גדול מההפרש אל סוף הטווח. ציפיה לקבל False
  5. קריאה לפונקציה Write עם מספר בלוק מחוץ לטווח, ציפיה לקבל False
  6. קריאה לפונקציה Write עם מספר בלוק בתוך הטווח ועם מספר בלוקים גדול מההפרש אל סוף הטווח. ציפיה לקבל False ואפס כתיבות על הזיכרון


בדיקות Stability:

- קריאות וכתיבות חוזרות בגדלים משתנים תוך כדי השוואת המידע הנכתב למידע הנקרא.


בדיקות Performance:

- מדידת זמן הכתיבה החל מהקריאה ועד קבלת True עבור גדלים משתנים של בלוקים במקומות שונים על גבי הזיכרון.
- אילו טסטים כדאי להציע


סיכום:
עד עכשיו עסקנו בבדיקות שהתרכזו בתחום הידני ובבדיקות Black Box, בהמשך, נתייחס לבדיקות המתמקדות בקוד ובבדיקות אוטומטיות.


אין תגובות:

הוסף רשומת תגובה