מהי בדיקת מערכת?
בדיקת מערכת (System testing) היא שלב בתהליך פיתוח התוכנה בו נבדקת מערכת התוכנה השלמה והמשולבת
כדי לוודא שהיא עומדת בדרישות המפורטות.
רמת בדיקה זו מתבצעת לאחר בדיקות יחידה ואינטגרציה, ולפני בדיקות אימות ופריסה.
המיקוד העיקרי של בדיקות המערכת הוא להעריך את תאימות המערכת לדרישות שצוינו ולזהות פגמים כלשהם
באינטראקציות בין רכיבים משולבים.
היבטים מרכזיים של בדיקות מערכת כוללים:
בדיקה פונקציונלית: בדיקת התוכנה מול הדרישות הפונקציונליות כדי לוודא שהיא מתנהגת כמצופה.
בדיקות לא פונקציונליות: זה כולל בדיקת התוכנה לביצועים, מדרגיות, אבטחה, תאימות ושימושיות.
בדיקת רגרסיה: הבטחה ששינויים חדשים לא השפיעו לרעה על פונקציונליות קיימות.
בדיקת שפיות: בדיקה שטחית ומהירה כדי לוודא שהפונקציות העיקריות של התוכנה פועלות כמתוכנן.
בדיקת עשן: בדיקה בסיסית לבדיקת יציבות בניית התוכנה, המאפשרת לה לעבור בדיקות קפדניות יותר.
בדיקות מערכת מבוצעות בדרך כלל בסביבה הדומה מאוד לסביבת הפרודקשיין, מה שעוזר בזיהוי בעיות ובאגים ספציפיים לסביבה.
שלב הבדיקה הזה הוא קריטי מכיוון שהוא מבטיח שמערכת התוכנה פועלת כמכלול ומוכנה לפריסה בעולם האמיתי.
סוגי בדיקות מערכת
בדיקות מערכת מקיפות סוגים שונים כדי להעריך ביסודיות היבטים שונים של מערכת תוכנה.
להלן כמה סוגים נפוצים של בדיקות מערכת:
בדיקה פונקציונלית: מאמתת שכל פונקציה של יישום התוכנה פועלת בהתאם למפרט הדרישה.
בדיקה פונקציונלית כוללת בעיקר בדיקת קופסה שחורה ואינה מטפלת בקוד המקור של האפליקציה.
בדיקה לא פונקציונלית: מעריכה היבטים של המערכת שאולי אינם קשורים לפונקציה ספציפית או לפעולת משתמש,
כגון מדרגיות, ביצועים ואבטחה. היא כוללת:
- בדיקת ביצועים: בודקת את המהירות, ההיענות והיציבות תחת עומס עבודה מסוים.
- בדיקת אבטחה: מבטיחה שהמערכת בטוחה מפני איומים פנימיים וחיצוניים.
- בדיקת שמישות: קובעת עד כמה האפליקציה ידידותית למשתמש עבור משתמשי קצה.
- בדיקת תאימות: בודקת אם התוכנה תואמת לרכיבים אחרים של המערכת כולל מערכות הפעלה שונות, גרסאות דפדפן,
פלטפורמות חומרה וכו’.
בדיקת רגרסיה: מבוצעת לאחר שינויים (כגון שיפורים או תיקוני באגים) בתוכנה כדי להבטיח שהפונקציונליות הקיימות פועלות כשורה.
בדיקת עשן: נערכת כדי לוודא אם הפונקציות החשובות של התוכנה פועלות כמצופה.
בדיקת עשן מבוצעת לפני ביצוע בדיקות פונקציונליות או רגרסיה מפורטות כלשהן.
בדיקות שפיות: תת-קבוצה של בדיקות רגרסיה, המתמקדות באימות הרציונליות של המערכת על מנת להמשיך בבדיקות קפדניות יותר.
בדיקת שחזור: בודקת את יכולת התוכנה להתאושש מקריסות, כשלי חומרה ובעיות דומות אחרות.
בדיקת עומס: בודקת את ביצועי המערכת בתנאי עומס אמיתיים.
בדיקת מאמץ: בודקת את התוכנה מעבר ליכולת התפעולית הרגילה, לרוב עד לנקודת שבירה, כדי לצפות בתוצאות.
בדיקת נפח: בודקת את ביצועי המערכת עם נפחי נתונים משתנים.
בדיקת נפח כוללת בדיקת טיפול המערכת במספרים גדולים של עסקאות, קלט נתונים נרחב וכו’.
בדיקת שמישות: מעריכה עד כמה קל להשתמש בממשקי המשתמש, תוך התמקדות בהיבט חווית המשתמש.
בדיקת התקנה: מאשרת שהמערכת מותקנת כהלכה ופועלת כמתוכנן בסביבות המיועדות.
זה כולל אימות תהליכי ההתקנה והתצורה בתנאים שונים.
בדיקת תאימות: מבטיחה שהמערכת עומדת בתקנים המשפטיים, הטכניים או הרגולטוריים הרלוונטיים לענף שבו היא תשמש.
בדיקת לוקליזציה: בודק את יכולת התוכנה לבצע בסביבה תרבותית או גיאוגרפית מסוימת.
בדיקה זו היא חיונית עבור תוכנה גלובלית המותאמת לאזורים ספציפיים, תוך התמקדות בתרגומי שפות ועיצוב.
בדיקת נגישות: מעריכה את קלות השימוש במערכת עבור אנשים עם מוגבלות, אשר עשויה להיות כרוכה בהערכת התאימות
של התוכנה לטכנולוגיות מסייעות כמו קוראי מסך.
בדיקה חקרנית: כוללת בדיקת התוכנה ללא תוכנית קבועה, כאשר הבודקים מעצבים ומבצעים באופן דינמי בדיקות על סמך הידע,
חקר התוכנה והתוצאות שלהם.
בדיקת תקני אבטחה: מטרתה לאשר שהתוכנה עומדת בתקני אבטחה מסוימים, הנדרשים בתעשיות בפיקוח גבוה
או במקום שבו יש נתונים רגישים.
בדיקת תצורה: המכונה לפעמים בדיקת תאימות חומרה, זה כולל בדיקת האפליקציה עם תצורות שונות של חומרה ותוכנה
כדי להבטיח תאימות וביצועים.
בדיקת כשל: חלק מהקטגוריה הרחבה יותר של בדיקות שחזור, היא בודקת באופן ספציפי את יכולת התוכנה להעביר בהצלחה
את הפעולה למערכת גיבוי או המתנה במקרה של כשל במערכת.
כלי בדיקות מערכת
ישנם כלים רבים המאפשרים סוגים שונים של בדיקות מערכת.
כלים אלה יכולים לסייע באוטומציה של תהליכי בדיקה, ניהול זרימות עבודה של בדיקות והבטחת כיסוי יסודי של מקרי בדיקה.
להלן רשימה של כמה כלי בדיקת מערכות פופולריים על פני צורכי בדיקה שונים:
כלי בדיקה פונקציונליים
סלניום: בשימוש לאוטומציה של דפדפני אינטרנט, סלניום תומך במספר שפות תכנות ומשתלב עם מסגרות בדיקה אחרות.
HP UFT (לשעבר QTP): מספק אוטומציה פונקציונלית ומבחני רגרסיה עבור יישומי תוכנה וסביבות.
כלים לבדיקת ביצועים
LoadRunner: כלי של Hewlett Packard Enterprise המדמה אלפי משתמשים בו-זמנית באמצעות תוכנת יישומים,
הקלטה ובהמשך מנתח את הביצועים של רכיבי מפתח.
JMeter: כלי קוד פתוח המיועד לבדיקות ביצועים וניתן להשתמש בו לבדיקות עומס ומאמץ.
כלי בדיקת אבטחה
OWASP ZAP: עוזר למצוא פרצות אבטחה ביישומי אינטרנט במהלך בדיקה.
Nessus: סורק פגיעות שיכול לסרוק לאיתור פרצות אבטחה וכן אחר כל תוכנה זדונית ביישומי אינטרנט.
כלי בדיקת אוטומציה
TestComplete: מאפשר לבודקים ליצור בדיקות אוטומטיות עבור יישומי Microsoft Windows, Web, Android ו- iOS.
Ranorex: מספקת כלים לבדיקות מקצה לקצה של יישומי שולחן עבודה, אינטרנט וניידים.
כלים לניהול בדיקות
TestRail: מספק ניהול מקיף של מקרי בדיקה לארגון מאמצי הבדיקה ולקבלת תובנות בזמן אמת לגבי פעילות הבדיקה.
Zephyr: מציעה פתרונות מקצה לקצה לצוותי פיתוח תוכנה לביצוע בדיקות, החל מיצירה וניהול של מחזורי בדיקה
ועד ביצוע בדיקות וניתוח תוצאות.
כלים למעקב אחר באגים
JIRA: משמש בעיקר למעקב אחר באגים, מעקב אחר בעיות וניהול פרויקטים.
Bugzilla: כלי קוד פתוח בשימוש למעקב אחר באגים ובעיות.

