LOGIN
התחברות או הרשמה
Avatar
להמשך הרשמה ידנית – לחץ על כפתור ההרשמה, להרשמה/כניסה מהירה בעזרת חשבון רשת חברתית – לחץ על הלוגו בכותרת

אפס סיסמה - שכחתי את שם המשתמש

שם משתמש
סיסמה
זכור אותי

he icon   en icon

שגיא טרייבל

שגיא טרייבל

ניהול סיכונים, מושג שאנחנו משתמשים בחיי היום יום כמעט בכל אספקט של החיים.

אנחנו מנהלים את חיינו בניסיון למקסם את האפשרויות השונות עם הכלים שיש לנו.

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

 

כדי שנוכל להשתמש בניהול סיכונים בצורה נכונה, בואו נגדיר את משמעות המושג ניהול סיכונים וסיכונים מהם, לפי וויקיפדיה, הפרוש הינו:

"ניהול סיכונים הוא תהליך הקשור בניהול שוטף ומטרתו לאתר סיכונים/מפגעים, הערכת עוצמת הפגיעה/הנזק, תעדוף הטיפול בהם על פי העוצמה, הגדרת השיפור הנדרש וההשקעה הנדרשת לשיפור ובקרה על ביצוע  פעילויות השיפור.

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

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

לכן כמנהלים אנחנו חייבים לנהל את הסיכונים לכל אורך חיי הפרויקט, לנהל את תהליכי הפיתוח והבדיקות ולתת מענה בזמן.

גם כאשר הגדרנו את הסיכונים, אנחנו חייבים לנהל אותם ולתת מענה לכל סיכון ולתת דרכי פעולה איך ניתן למנוע אותם ובמקרה של משבר מה תוכנית המגרה שלנו.

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

אנו מנהלים סיכונים משלב הכנת תוכנית הפרויקט ולכל אורך חיי הפרויקט, והמטרה הינה להפחית את השפעת הסיכונים עד השגת יעדי הפרויקט במהלכו ובסופו.

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

·         מה התכולה שאותה אנו נדרשים לבדוק.

·         מה הם המשאבים שלנו לתכולה הנבדקת.

·         מהו פרק הזמן לבדיקות התכולה, שלב שאותו אנו צריכים להגדיר ותלוי במספר גורמים שיכולים להשפיע על פרק הזמן של הבדיקות (לדוגמא: התחייבות חוזית או חוק רגולטורי).

·         מה החוסרים שלנו (לדוגמא: חוסר בידע, חוסר במעבדות, חוסר בכלים, חוסר בבודקים).

·         מה הסיכונים שעומדים לפנינו (לדוגמא: פרק זמן קצר לבדיקות, חוסר ידע, תלויות בגורמים מחוץ לחברה ועוד)

הבעיה הכי גדולה בתהליך ניהול הסיכונים הינה בסיכונים שאינם ידועים לנו, ולכן אנחנו צריכים לתת Buffer לדברים הלא ידועים ולשיניים שיצוצו במהלך הדרך.

לאחר שהבנו את התכולות, המשאבים, הזמנים והחוסרים שלנו, נוכל לצלול פנימה ולהתחיל להגדיר את הסיכונים הידועים לנו בשלב התכנון, להגדיר אותם ולנהל אותם.

לאורך כל חיי הפרויקט חשוב מאוד לנהל את הסיכונים ולהגדיר אותם מחדש או להגדיר סיכונים חדשים.

בשלב ניתוח הסיכונים אני רוצה להתמקד בניתוח הסיכונים למודולים או תהליך עסקי במערכת שאותם אנחנו אמורים לבדוק הלכה למעשה.

לכל מודול או תהליך עסקי יש מספר מאפיינים מנקודת ההיבט של הפיתוח והבדיקות שאותם אנו צריכים לזהות וגם בשלב זה נשאל את השאלות הרלבנטיות:

·         האם המודול הינו תהליך מרכזי?

·         האם ישנה השפעה על מודולים נוספים?

·         רמת מורכבות הקוד?

·         מה החשיבות של המודול ללקוח?

·         האם טכנולוגית הפיתוח היא חדשה בארגון?

·         האם צוות הפיתוח חדש בארגון?

·         האם לצוות הבדיקות יש ידע קודם על המודול?

·         האם השינוי הינו רגולטורי?

בשלב הזה לכל מודול ניתן ניקוד לכל השאלות בין 1 ל-3, כאשר הציון 1 משמעו השפעה נמוכה והציון 3 הינו השפעה גבוהה.

כך שנקבל לכל מודול רשימה של ציונים לכל פרמטר/שאלה.

נסכם את הציונים לכל מודול וכך נקבל רשימה של מודולים עם ציון סופי, ועכשיו נחלק את הציונים הסופיים לשלוש קבוצות, 8 שאלות * 3 = 24 נקודות, לכן החלוקה לפי ניקוד:

·         המודולים בעלי הציון הגבוהה ביותר – מודולים בסיכון גבוה – ציון 20-24

·         המודולים בעלי ציון ממוצע – מודולים בסיכון בינוני – ציון 14-19

·         המודולים בעלי ציון נמוך – מודולים בסיכון נמוך – ציון 8-13

לכל מודול או תהליך עסקי נבצע את הפעילויות הבאות בהתאם לציון:

·         המודולים בעלי הציון הגבוהה ביותר – נשקיע 100% בכתיבת תסריטים, נבדוק את המודול בצורה מלאה עם כיסוי מקסימלי.

·         המודולים בעלי ציון ממוצע – נשקיע 60% בכתיבת תסריטים תוך דגש על תהליכים עסקיים מרכזיים, נבדוק את המודול עם כיסוי חלקי לפי התסריטים שהגדרנו + exploratory testing.

·         המודולים בעלי ציון נמוך – נשקיע 20% בכתיבת תסריטים, בעיקר בראשי פרקים או check list ונשקיע בעיקר ב- exploratory testing.

 

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

זמן הבדיקות מושפע בהתאם, ככל שנריץ יותר תסריטים זמן הבדיקות יהיה ארוך יותר וזמן הבדיקות של exploratory test קצר יותר ומתאים לבדיקת מומחים שמכירים את התהליך העיסקי.

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

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

כול זה קורה כאשר אנחנו בוחרים את הכלים המתאימים לארגון, ולמוצרים שאותם אנו מפתחים.

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

לא מעט חברות וארגונים בוחרים ומטמיעים כלים אשר לא מתאימים לארגון ו/או לטכנולוגיה שבה הם מפתחים.

כלים לא מתאימים נבחרים מסיבות שונות כאשר העיקריים שבהם:

 

o        חוסר ידע בתחום בדיקות אוטומטיות, מבחר הכלים היום הוא עצום, וישנם מספר פרמטרים אשר יכולים לעזור לבחור את הכלי הנכון (בהמשך אפרט)

o        הוזלת מחירים – גם המחיר הוא פרמטר משמעותי בבחירת הכלי הנכון, אך לעיתים נסיון להוזלת העלות גורר לבחירה לא נכונה ולא מתאימה של הכלי.

 

בחירת כלי נכון הוא המפתח להצלחת הפרויקט בארגון. למטה אספתי כמה שלבים שיעזרו בתהליך:

 

שלב הראשון – בחינת המערכת הנבדקת

 

לצורך בחירת הכלי המתאים דרוש לנתח את המצב הקיים בארגון.

ניתוח המצב הקיים כולל את הפרמטרים הבאים:

 

טכנולוגיית פיתוח:

o        באיזה טכנולוגיה ושפת פיתוח אנחנו מפתחים

o        באיזה כלי פיתוח אנחנו משתמשים

o        מערכות הפעלה שונות (Linux, Win, Mobile)

 

פרויקטים או בחינת ה ROI:

o        הבדיקות הנדרשות למערכת? GUI, API, Log, DB

o        חלוקת המערכת הנבדקת למודולים, וטיפול בכול מודול בנפרד

o        הבנה של כמות התסריטים לבדיקה (Sanity/Regression)

o        סיבוכיות התסריטים הנבדקים

                        כמות צעדים בכל תסריט

                        Verification point – ברמת ה UI, ברמת הDB, לוגים ועוד

o        פרויקטים רלבנטיים לבדיקות אוטומטיות

o        בשלות המערכת הנבדקת לבדיקות אוטומטיות

o        סבבי בדיקות במערכת הנבדקת – כמה סבבי בדיקות רצים בזמן פיתוח\בדיקות

o        כמות תסריטים שאותם אנו רוצים למכן

 

איזה תסריטים בכל פרויקט אנו רוצים למכן

o        האם למכן תסריטי רגרסיה או שפיות או שניהם.

 

כמה תסריטי Sanity ו- Regression יש בכל פרויקט

o        ניתוח והבנה איזה תסריטים אנחנו רוצים למכן.

o        כמה זמן לוקח הרצת סט תסריטים.

o        כמה זמן לוקח לכתוב תסריט אוטומטי בודד

איזה צוות יפתח את הבדיקות האוטומטיות, צוות הבדיקות\פיתוח\צוות ייעודי לבדיקות אוטומטיות

חיבור לכלי ניהול בדיקות – האם קיים בארגון? אם קיים מה המאמץ הנדרש לחבר לכלי האוטומטי

כלי אוטומטי כחלק מסביבת העבודה (ALM, CI, CD) – חיבור לכלי Source control, חיבור לכלים להרצת Build לילי

מיקום פיזי של הצוות (עבודה מול חברות שנותנות את שירותי התמיכה ביבשת אחרת יכולה להיות בעיה לדוגמא Silk, Telerik)

 

שלב שני – בחינת הכלים האוטומטיים הקיימים בתחום

 

נבחן את הכלים האוטומטיים הקיימים היום בשוק.

o         שפת פיתוח של הכלי

o         תמיכה בפלטפורמות פיתוח שונות

o         תמיכה במערכות הפעלה שונות (Mobile, Linux)

o         אינטואיטיביות של הכלי למשתמש (המפתח), שפות פיתוח, קלות שימוש ועוד

o         זיהוי אובייקטים ודינמיות בשינויים בזיהוי

o         עבודה מול קבצים חיצוניים (Build In) - DDT

o         האם כתוב Frame Work בארגון – האם צריך לפתח מחדש?

o         קרבת הכלי לסביבות הפיתוח – יכולת כתיבה של Unit Test בעזרת הכלי

o          טיפול בשגויים במהלך הרצה - Error Handling

o         דוחות – האם חלק מהכלי או יש צורך לפתח?

o         נקודות בדיקה – האם חלק מהפונקציונליות של הכלי? או דרוש פיתוח?

 

תהליך הבחירה יתבצע לפי פרמטרים של הכלים

תאום יכולות הכלים בהתאם לסט הפרמטרים שקבענו בחלק הראשון.

התאמה של הכלי לטכנולוגיה ולשפת הפיתוח שלנו ולצוותי העבודה.

 

להלן פרמטרים עיקריים להשוואה בין כלים:

·         Test Management – built in or needed

·         Cost

·         Separate Test Execution Module

·         User Community

·         Ease of use

·         Customer Support

·         Support Cost

·         Scripting Languages

·         Version Control Integration

·         Web Testing & Browsers support

·         Manual Testing

·         Web Load/Performance Included (Yes\No)

·         Web Services Testing

·         Unit Testing Integration

·         .Net Testing

·         PowerBuilder Testing

·         Descriptive Programming (Key words, Action words , Primitives)

·         Ajax Testing

·         WPF Testing

·         SilverLight Testing

·         Java Testing

·         Test Capturing

·         Object Remapping

·         Integration in Team Foundation Server (TFS)

·         Represented in Israel