nemoTechnology
nemo-technology.com
Unit Test
בדיקות יחידה
בדיקה של רכיב תוכנה בודד, מול הגדרת רכיב התוכנה (תיק התכנות) - נעשית בדרך כלל ע"י המפתח עצמו.
תקלות שמתגלות מתוקנות מיידית.
• מומלץ לבצע בשלב זה גם Code Review , להיעזר במפתח אחר בצוות ולבחון את רמת התחזוקתיות של הקוד.
• ניתן ליישם גם באמצעות - TDD Test Driven Development.
• מומלץ לבנות סביבת בדיקות ייעודית.
Integration Test
בדיקות שילוב (אינטגרציה)
בדיקה לשילוב מספר רכיבי תוכנה, מול תתי מערכות אחרות אומול מערכות חיצוניות. נעשית בעיקר מול מסמכי העיצוב המפורטשל המערכת ובאחריות צוותי הפיתוח.
בסביבת האינטגרציה, מומלץ להשתמש באוטומציה על בסיס תכולה שהוגדרה מראש ע"י צוות הבדיקות - סט בדיקות רגרסיה.
System Test
בדיקות מערכת
בדיקה כוללת של כל מרכיבי המערכת, הממשקים הפנימיים והחיצוניים שלה, מול מסמכי האפיון של המערכת.
• לשלב זה מומלץ להגדיר תוכנית בדיקות המבוססת על סדרי עדיפויות וניתוח הסיכונים של המוצר.
• סביבת הבדיקות צריכה להיות דומה ככל הניתן לסביבת הייצור סביבות.
Delivery Test
בדיקות מסירה
מכלול הבדיקות הנעשות בתהליך הפיתוח (יחידה, אינטגרציה ומערכת) טרם מסירת המוצר לבדיקות הקבלה של הלקוח.
חשוב להגדיר באופן ברור את גבולות האחריות לביצוע הבדיקות בין צוות הבדיקות לצוות הפיתוח ולייצר אווירת שותפות בין הצוותים, למרות המתח המובנה ביניהם.
Acceptance Test
בדיקות קבלה
בדיקה כוללת של המערכת לפני הפעלה, במטרה לוודא עמידהבדרישות והתאמת המערכת לצרכי הלקוח. באחריות הלקוח/משתמש.
הצלחה של בדיקות קבלה מותנית בהגדרת תנאי סף נכונים. לא מחמירים מדי
(אין מערכת ללא באגים) אבל מוודאים שהמערכת מתאימה לעלייה לאוויר.
Alpha Testing
בדיקות אלפא
ביצוע בדיקות מערכת, בסביבה הדומה ככל האפשר לייצור ע"י
משתמשים באתר הפיתוח/ הספק.
מומלץ לשלב את המשתמשים מוקדם ככל הניתן בשלבי הפיתוח. מאוד רלוונטי במודלים איטרטיביים.
Beta Testing
בדיקות בטא
ביצוע בדיקות מערכת ע"י משתמשים, שלא באתר מפתחהמערכת/ הספק, במטרה לאתר כשלים או פונקציונאליות לא מתאימה.
מומלץ להטמיע את הגרסה החדשה קודם בקבוצת בקרה, בארגון עצמו ולקבל פידבק מהיר מאוד ממשתמשים אמיתיים מתוך הארגון מבלי לפגוע במוניטין שלו או בלקוחות שלו.
Accessibility Test
בדיקות נגישות
בדיקות אלה באות לוודא עמידה בדרישות ובחוקי הנגישות.מערכות נגישות מאפשרות למשתמשים בעלי מוגבלויות שונות כגון: לקות ראיה, לקות שמיעה, רעד בידיים וכדומה, להשתמש במערכת. דוגמא לנגישות היא היכולת של המערכת לתמוך באפליקציות ייחודיות ה"מתרגמות" את האפליקציה לשמע (עבור לקויי ראיה).
נגישות היא חובה חוקית לארגונים רבים במדינת ישראל על פי תיקון לחוק שוויון זכויות לאנשים עם מוגבלויות מחודש מרץ .2005 מעבר לחובה החוקית, יש יתרונות רבים במעבר לנגישות, במיוחד באתרי אינטרנט, כולל: חשיפה טובה ב- Google הגברת התנועה וכמובן תדמית ומיצוב.
אתר נגישות ישראל: www.aisrael.org
Compatibility Testing
בדיקות תאימות
בדיקה לאימות התפקוד התקין של התוכנה בסביבות שונות כגון: חומרה שונה, גרסאות של מערכות הפעלה, דפדפנים שונים ועל גבי פלטפורמות שונות.
חשוב להגדיר אילו בדיקות תאימות נדרשות עבור קהל היעד הספציפי של כל מערכת. ניתן לבדוק תפוצה של דפדפנים באינטרנט באתרים כמו .www.thecounter.com
(לדפדפן של Firefox יש למשל כ- 20% נתח שוק).
לעיתים ארגונים מסתמכים על הסטטיסטיקות של האתר שלהם אך שוכחים שייתכן והם מפספסים את הגולשים של הדפדפנים הנוספים, דווקא בגלל חוסר התאימות....
Confirmation Testing
בדיקות אימות/חוזרות
ביצוע בדיקות חוזרות של תקלות שתוקנו ע"י המפתח. נקרא גם.Re-Testing
יחס התיקון/ טעויות בפיתוח הינו 1:6 . כלומר בממוצע, על כל 6 תקלות שמתוקנות, נוצרת תקלה חדשה.
Conversion Testing
בדיקות הסבה
בדיקת הסבת נתונים (Data), בדיקת טיוב נתונים ובדיקת שלמות נתונים (Data Integrity).
קיימים כלים ייעודים לביצוע בדיקות של הסבות נתונים. נקראים "כלי השוואה" . (Comparators) ניתן להשתמש גם בכלי אוטומציה רגילים.
Functional Testing
בדיקות פונקציונליות
אימות פעילות המערכת בהתאם למוגדר במסמך הדרישות ומסמך האפיון, שמטרתן לבדוק כי המערכת עושה את מה שהיא צריכה לעשות ולא עושה את מה שאינה צריכה לעשות.
מעל ל- 50% מהתקלות מקורן עוד לפני כתיבת הקוד (בשלב הדרישות והאפיון).
GUI Testing
בדיקות ממשק משתמש
בדיקות הפקדים, השדות והעיצוב במסך. התנהגות תקינה, פורמטואורך של שדות, מגבלות ערכי קלט וכדומה.
פעמים רבות מתבלבלים בין בדיקות GUI ו-Usability .
המיקוד של בדיקות GUI צריך להיות בבדיקות נגטיביות של הפקדים והשדות וב- look and feel של הדפים.
Interfaces Testing
בדיקות ממשקים
בדיקת ממשקים פנימיים וממשקים חיצונים מהמערכת ואליהלדוגמא: שירותי בנקאות אוטומטיים, מערכת שליטה ובקרה וכד'
בדיקות ממשקים הן בדרך כלל הבדיקות הקשות ביותר ליישום כתוצאה מהצורך לבדוק התנהגות מול מערכות חיצוניות שאינן בשליטתך. ההשקעה בהקמת סביבה לבדיקות גבוהה בהרבה מהביצוע בפועל.
Internationalization & Localization Testing
בדיקת בינלאומיות
יכולת המערכת לתמוך בשפות/בפונטים שונים ,בשינויי כיוון ימין-שמאל, שמאל-ימין, פורמטים של תאריך, הדפסה, הגהה,מקלדת,תרגום הודעות, מע' הפעלה בשפות שונות ותקנים מקומיים סטנדרטים מוכרים בתחום: I18N, L108
בדיקות אלו מהוות נדבך מרכזי מאוד עבור חברות המייצרות מוצרי מדף לשוק הבינלאומי. דוגמא לסוגיה קלאסית, בבלגיה משתמשים בסימן "." ולא בסימן "," כמו במרבית העולם לציון מחירים (לדוגמא:
1.000 = אלף ולא אחד).
Load Testing
בדיקות עומסים
בדיקת תפקוד המערכת בעומס נקודתי של כמות משתמשים אוכמות טרנזקציות ביחידת זמן קצרה.
חצי שניה של עיכוב בהצגת התוצאות במנוע החיפוש של גוגל הובילה לירידה של 20% בכמות המשתמשים ובעקבות כך בשימוש בפרסומות ובהכנסות לחברה (גוגל).
Non Functional Testing
בדיקות לא פונקציונליות
משפחת בדיקות, הבודקת פרמטרים מדידים ("איך"), כגון:תחזוקתיות, תאימות, יעילות וכד'
ניתן לשפר משמעותית את איכות המערכת במידה ויהיו מדדים ברורים להצלחה כבר במסמכי האפיון.
Performance Testing
בדיקות ביצועים
בדיקת תפקוד רכיבי המערכת, במצב של פעילות מלאה ולאורךזמן. מטרתה למדוד ערכי ניצול CPU , זיכרון וכן איתור צווארי בקבוק, זמני תגובה, גלישה מהגדרת נפחים/מונים ועוד.
בדרך כלל נדרש להשתמש בכלי בדיקות יקרים. ניתן להשתמש באופן בסיסי, גם בתוכנות הניהול של מערכת ההפעלה ברמת המכונה הבודדת.
Regression Testing
בדיקות נסיגה (רגרסיה)
בדיקת השפעת התיקונים והשינויים שבוצעו על המערכת הקיימת.מטרתה לוודא שהפונקציונאליות הקיימת לא נפגעה כתוצאה מהשינוי.
בדיקות רגרסיה מהוות מעל ל 50%- מתוכנית הבדיקות וגדלות כאשר המערכת בשלב התחזוקה שלה.
שימוש באוטומציה מביא לחיסכון משמעותי מאד בבדיקות מסוג זה.
Sanity Test
בדיקות שפיות
בדיקה ראשונית של המערכת, במטרה לוודא שהמערכת "מנגנת" ואין Show Stopper , לצורך כניסה לשלב הבדיקות המלא.
בדיקות שפיות אמורות להיות קצרות מאוד - עד מספר שעות. מומלץ להשתמש באוטומציה.
Security Testing
בדיקות אבטחה
בדיקת המערכת מתוך מטרה לאתר כשלים במערך ההגנה עלהמערכת: בדיקת מערך ההרשאות והמידור, בדיקת סיסמאות וניהולן, בדיקות חדירה ועוד
מרבית פריצות אבטחת המידע מגיעות מתוך הארגון ולא מחוצה לו. בדיקות אפליקטיביות מבוצעות בד"כ ע"י צוות הבדיקות. בדיקות חדירה, הקשחה, Fishing ואחרות מבוצעות ע"י מומחי אבטחת מידע.
Survival And Recovery Testing
בדיקת שרידות והתאוששות
בדיקת מערך הגיבויים והשחזור.בדיקת מנגנון ההתאוששות מכשל חומרה ותוכנה.
לבדיקות אלו יכולה להיות השלכה קריטית על הארגון ברמת "ההמשכיות העסקית" ועם זאת בשל המורכבות בביצוען מעט מאוד ארגונים מבצעים אותן בפועל.
Usability Testing
בדיקות שימושיות
בדיקות המוודאות את ידידותיות המערכת לשימוש.לפי תקן ISO 9126 השימושיות נמדדת ב- ארבעה פרמטרים:היכולת ללמוד, להבין ולתפעל את המערכת והאטרקטיביות שלהבעיני המשתמש.
בדיקות מרכזיות מאוד. מבוצעות בעיקר בשלב בדיקות מערכת ובדיקות הקבלה.
ישנם כלים המסייעים לביצוע בדיקות אלו אבל אין תחליף לגורם האנושי. קיימות מעבדות שימושיות אבל הן יקרות מאוד וניתן להגיע לחלק גדולמהממצאים גם ביישום המתודולוגיה במסגרת משאבי הארגון.
Maintainability Testing
בדיקות תחזוקתיות
בדיקת היכולת לתחזק את המערכת לאורך זמן, כולל: מבנה נכוןומובן של התוכנה, גמישות התוכנה לשינויים עתידיים, גמישותהתוכנה לשינויי מערכות משיקות, שימוש בהערות בקוד, כתיבה עלבסיס סטנדרטים של פיתוח וכו...
ניתן לבצע בדיקות תחזוקתיות בשלבים מוקדמים מאוד של הפיתוח (תיק תכנות ובמהלך כתיבת הקוד וביצוע Unit Testing). בשל ההשלכות של איכות התחזוקה לאורך שנים, ארגונים רבים החלו להטמיע כלי בקרה לאיכות הקוד במהלך בדיקות האינטגרציה טרם העברת הגרסה לסביבת הבדיקות.