בדיקות תוכנה
מתוך ויקיפדיה, האנציקלופדיה החופשית
| הנדסת תוכנה |
|---|
| מאמר זה הוא חלק מקטגוריית הנדסת תוכנה |
| פעילויות ושלבים |
| דרישות | ניתוח | ארכיטקטורה | עיצוב | תכנות | בדיקה | אימות | בנייה | תפעול | תחזוקה |
| מתודולוגיות |
| זריזות | מפל המים | תכנת ותקן
Crystal Clear | Scrum | Unified Process | XP |
| תחומים תומכים |
| ניהול פרויקטים | ניהול תצורה | תיעוד |
בדיקות תוכנה זהו תהליך הנועד לאפשר לבעלי העניין במוצר לקבל מדד לאיכותו ועמידתו בדרישות שהוצבו לו. בדיקות תוכנה מהוות חלק אינטגרלי מתהליכי הנדסת תוכנה והבטחת איכות תוכנה.
תוכן עניינים |
[עריכה] הקדמה
בעבר היו בדיקות התוכנה תחום חובבני שבוצע על ידי התוכניתנים עצמם או על ידי סטודנטים חסרי הכשרה. היום הנדסת בדיקות תוכנה היא מקצוע נלמד, ובדיקות התוכנה כוללות כתיבת תסריטי בדיקות תוכנה ושימושים מתקדמים בכלי בדיקה אוטומטים.
כמו בכל תחום הנדסי מתקדם, גם בתחום בדיקות תוכנה ישנן מספר הסמכות, המוענקות על ידי ארגונים בינלאומיים או מקומיים שונים לאחר עמידה במבחנים של המועמדים להסמכה.
בדיקות תוכנה ותהליכי הבטחת איכות תוכנה באים לידי ביטוי באופנים שונים במתודולוגיות שונות. בחלק ממתודולוגית פיתוח התוכנה, מקומם של הבדיקות הוא בסוף תהליך הפיתוח (דוגמה מפל-המים). באחרות, משימות הבטחת איכות משולבות לאורך מחזור הפיתוח השלם של היישום. דוגמה לכך הוא מודל ה-V שבו לכל שלב במהלך פיתוח התוכנה קיים שלב מקביל של בדיקות (איסוף הדרישות נבדק על ידי בדיקות קבלה, עיצוב מקביל לבדיקות מערכת, עיצוב מפורט מקביל לבדיקות השילוב וכו'). ישנן מתודולוגיות נוספות, חדישות יותר, בהן הבדיקות משולבות בתהליך הפיתח (למשל פיתוח מונחה בדיקות (Test Driven Development), מתודולוגיית Scrum וכדומה).
[עריכה] סוגי הבדיקות
בהתאם למודלים של פיתוח תוכנה כגון: מפל המים, מודל V, מודל W ואחרים; קיימים 4 שלבים מרכזיים בבדיקות תוכנה:
- בדיקות יחידה (Unit) - בדיקות ברמת יחידת תוכנה (מודול). לרוב מבוצעות על ידי מפתח התוכנה.
- בדיקות אינטגרציה (Integration) - בדיקת שילוב יחידות תוכנה בהיקפים שונים, החל משתי יחידות ועד לכלל היחידות במערכת.
- בדיקות מערכת (System) - בדיקות המערכת בכללותה, בדרך כלל בראיית המשתמש של יכולות המערכת.
- בדיקות קבלה (Acceptance) בדיקות הנעשות על ידי המשתמש או הלקוח במטרה לוודא כי המערכת פועלת בהתאם לדרישות שהוגדרו במסמך הדרישות המקורי ובשינויי דרישה (change request) שהועברו במהלך מחזור חיי הפיתוח.
מקובל לסווג בדיקות גם לפי החלוקה של בדיקות קופסה לבנה ובדיקות קופסה שחורה. בדיקות הקופסה הלבנה מתבססות על הכרות פנימית של קוד התוכנה ובניית תוכניות בדיקה המותאמות לנתיבי הזרימה האפשריים של הקוד. בדיקות יחידה עשויות להיות בדיקות מסוג קופסה לבנה. בדיקות קופסה שחורה, לעומת זאת, אינן מכירות את המבנה הפנימי ומתבססות על בדיקת הפלט הצפוי לקלט מסוים בהתאם לתכנון מוקדם כלשהו. בדיקות קבלה מתבצעות בשיטה זו בדרך כלל.
סוגי בדיקות עיקריים:
- בדיקות פונקציונליות (Functional) - לאימות פעילות המערכת. בדיקות אלו מבוססות על מסמך הדרישות ומסך האפיון ומטרתן לבדוק כי המערכת עושה את מה שהיא צריכה ולא עושה את מה שאינה צריכה לעשות (valid and invalid testing)
- בדיקות לא פונקציונליות (non functional)- בדיקות אלו בודקות איך פועלת המערכת וכוללות בדיקות עומסים, ביצועים, שימושיות וסוגי בדיקות רבים נוספים (שחלקם מפורטים למטה).
- בדיקות שימושיות (Usability)- בדיקות נוחות השימוש ויעילות העיצוב של האפליקציה ונגישות לבעלי מוגבלויות. לדוגמה: נוחות השימוש בתפריטים, ניווט נוח והתמצאות באתר.
- בדיקות בינלאומיות (Internationalization) - בדיקות המתמקדות בשימוש בתוכנה בממשקים בשפות שונות. למשל - אתרי אינטרנט רבים (כמו ויקיפדיה) בהם יש דפים בשפות שונות, מבצעים בדיקות מהסוג הזה.
- בדיקות ממשק לקוח (GUI)- בדיקות הפקדים והשדות במסך. התנהגות תקינה, פורמט של שדות, בהתאם לחוקיות המוגדרת ברמת המסך ולא הלוגיקה העיסקית. לדוגמה: בדיקת מינימום ומקסימום תווים בשדה.
- בדיקות עומס (Load) - אימות יכולת התגובה של צד השרת במערכות שרת/לקוח בהן צפויים משתמשים רבים בו זמנית. בדיקות אלו מתמקדות במדידת זמני התגובה ובמציאת "נקודת השבירה" של המערכת. בודקות מלבד "משתמשים וירטואלים" גם עומסים הנובעים מטרנזקציות וג'ובים המתרחשים "בבטן" של המערכת (לא רק תהליכים עיסקיים).
- בדיקות ביצועים (Performance) - בדיקת ביצועים של המוצר בקונפיגורציות ורמות עומס שונות, ומדידת הביצועים לצורך תיעוד/השוואה לדרישות.
- בדיקות נסיגה (Regression) - לאימות פעילות המערכת לאחר שבוצעו בה שינויים. לוודא שמה שעבד לא התקלקל בעקבות העברת גרסה.
- בדיקות שילוב מערכת (Compatibility) - לאימות יכולת שילוב התוכנה/רכיב תוכנה במערכת קיימת/חדשה (למשל - תאימות של התוכנה לעדכוני מערכת הפעלה, דפדפנים שונים, תוכנות אחרות שהתוכנה אמורה לעבוד בשילוב עימן, וכדומה).
- בדיקות אלפא/בתא (Alpha/Betha Testing) - בדיקות שמבוצעות על ידי קבוצת משתמשים מוגדרת סגורה (אלפא) או פתוחה (בתא) אשר משתמשים במוצר ומדווחים על תקלות הצפות תוך כדי שימוש שוטף.
- בדיקות שפיות (Sanity) - בדיקות בסיסיות המאפשרות לזהות במהירות וביעילות אם הפונקציונליות הבסיסית של המוצר פועלת כנדרש, והמוצר במצב יציב.
- בדיקות עשן (Smoke) - סוג נוסף של בדיקות הנועד לזהות במהירות את מצב היציבות של המוצר, על ידי גילוי מוקדם של תקלות המראות על כשל חמור ברכיב כלשהו במוצר. בניגוד לבדיקות שפיות, בדיקות עשן בדרך כלל מבוצעות בצורה יותר אינטואיטיבית וגמישה, ולא בהכרח לפי תסריטים קבועים מראש.
- קיימים סוגי בדיקות נוספים המותאמים למאפייני הנדסת תוכנה נוספים (ilities).

