סוגי בדיקות
ישנה חלוקה ל 4 סוגי בדיקות:
לאחר שינויים בתוכנה
לאחר שינויים בתוכנה: תיקון תקלות, פיתוח חדש, שינויים בסביבה וכו'.
ברמת הקוד
בדיקות מבנה הקוד - האם הקוד של המערכת בנוי היטב?
לא פונקציונאלי
איך המערכת עושה את זה: איכות, אמינות, עומסים, אבטחה וכו'.
פונקציונאלי
האם המערכת עושה
את מה שהיא צריכה לעשות?
בדיקות פונקציונאליות – מה המערכת אמורה לעשות על פי הדרישות– הבדיקות מבוצעות בכל השלבים בחיי הפיתוח.
בדיקות לא פונקציונאליות – כמה טוב המערכת עובדת מבחינת:
יעילות - Efficiency
בדיקות עומסים וביצועים: זמן תגובה, כמות נתונים, צריכת משאבי מחשב. מספר סוגי בדיקות עומסים: load testing – תגובה צד שרת (במערכות שרת / לקוח) שצפויים משתמשים רבים בו זמנים, stress testing – זמני תגובה של המערכת בעומסים ומציאת גבולות המערכת (כלומר עד כמה יכולה המערכת לעבוד חלק עד שתקרוס) ובה נבדק יציבות המערכת, התאוששות וזמני התגובה לפי כמות משתמשים בו זמנית, מספר תהליכים שמתרחשים יחדיו וכו'.
Volume testing - זמני תגובת המערכת כאשר בסיס הנתונים מלא (80% ומעלה) – גם נמדד בעומס משתמשים בו זמנית וגם בעומס תהליכים.
שימושיות – Usability - האם השימושיות של המערכת קלה לתפעול וידידותית למשתמש, לפי אפיון וסטנדרטים של GUI ולפי תפעול המערכת דרך ממשק משתמש (operability testing).
Portability testing - תאימות לסביבות החומרה והמערכות השונות כגון דפדפנים, מערכות הפעלה, SQL וכו'.
Maintainability testing – תחזוקתיות - באיזו קלות ניתן לתחזק את התוכנה, לתקן שינויים, ברמת בד"כ ע"י אנשי הפיתוח כחלק מהמעבר על הקוד.
Reliability testing - בדיקת אמינות המערכת בפעילויות העסקיות לפי דרישות לאורך זמן מוגדר וארוך (למשל 72 שעות עבודה רצופה).
Recoverability testing – בדיקת התאוששות מאסון (הפסקת חשמל, ניתוק מהרשת) – מבחינת זמן חזרה לתפקוד ושחזור מידע שנפגע.
Security testing – בדיקת אבטחת מידע – עמידות מפני התקפות האקרים ופרצות באבטחת מידע.
Documentation testing – מסמכים נלווים כגון מדריך למשתמש, מדריך התקנה וכו' - לוודא שהם תקינים, מעודכנים וללא שגיאות כתיב.
Interoperability testing – בדיקת התממשקויות המערכת (מקביל לרמת בדיקות integration test).
Structural testing - בדיקות תלויות מבנה הקוד
בדיקה של הקוד והמבנה שלו, כגון קריאת תגיות באתר אינטרנט או בדיקת קוד ג'אווה.
בעיקר ברמת ה unit test אך גם ברמות אחרות.
Code coverage – מדד המודד את מידת הכיסוי הקוד ע"י הבדיקות (טכניקות שונות וכלים תומכים לבדיקה)
white box testing – בדיקת רכיב המערכת בהתבסס על המבנה הפנימי של מבנה הקוד. הרכיב צריך להיות גלוי לבודק והבודק להכיר את שפת הפיתוח כמובן.
בדיקות תלויות שינויים – איך התוכנה תתנהג לאחר שינויים כגון שדרוגים, תיקון תקלות וכו'.
Confirmation / re-testing – בדיקת על מנת לוודא שהתיקון פתר את התקלה.
Regressions testing – בדיקות חוזרות של אזורים שנבדקו בהצלחה בעבר, כדי שלא יכנסו תקלות חדשות בעקבות שינויים. הבדיקות בכל הרמות ועבור כל סוגי הבדיקה.
יש לבצע שימוש חוזר (Reuse) של תסריטי הבדיקות שהורצו בעבר לשם בדיקת תיקון התקלה (הרצת התסריט שגילה אותה) ולשם בדיקות הרגרסיה (שלא הרסנו שום דבר על הדרך).
לסיכום, לכל סוג של בדיקה יש מטרות שונות, לכן, בכל רמה של בדיקה (בדיקת יחידה, בדיקת אינטגרציה, בדיקת מערכת ובדיקת קבלה) נוכל לבדוק בכל ארבעת סוגי הבדיקה כדי להקיף את האובייקט שנבדק מכל הכיוונים האפשריים.