הכנסת תהליך בדיקות הדרגתי (Incremental testing) בארגון פיתוח
אורנה קמין, מנכ"לית OK יועצים לניהול
באחד הארגונים עימם עבדתי בעבר – היה נהוג לפתח על פי מודל מפל המים (Waterfall). לפי מודל זה, בדיקות המערכת (QA) מתחילות בסוף הפיתוח. פיתוח מוצרים לפי מודל זה גרם לתסכול רב עקב הבעיות הבאות בתחום הבדיקות:
- לצוות הבדיקות לא היה מספיק ידע על המוצר ברגע שהועבר לבדיקות;
- צוות הבדיקות החל לבדוק את תקינות תרחישי הבדיקה רק בסוף תהליך הפיתוח;
- המפתחים קיבלו משוב מצוות הבדיקות רק בסוף התהליך הפיתוח (חמור במיוחד לגבי תקלות בתכנון ובחומרה, שתיקונן בשלב מאוחר גרם לאיחור בלו"ז ולתיקונים לא איכותיים);
- במקרים רבים – עיכובים בתהליך הפיתוח גרמו לקיצור משך הבדיקות, כיוון שהיה הכרח לעמוד בתאריך הסיום.
הבעיות הנ"ל גרמו לכך שמחזור הפיתוח עד השחרור התארך. על מנת להתמודד עם האתגר, התחילו חלק מהמפתחים להעביר לבדיקות גרסאות ביניים הכוללות תכולה חלקית בכל פעם. תופעה זו גרמה לבעיות הבאות:
- ניהול תהליך הבדיקות יצא משליטה;
- צוות המפתחים סמך על צוות הבדיקות שימצא את התקלות ושחרר מוצרים לא בשלים לצוות הבדיקות;
- צוות הבדיקות נשחק כתוצאה מבדיקות שטחיות אינסופיות על תכולות לא מתוכננות שהועברו אליהם בתדירות גבוהה.
כדי להתמודד את הבעיות שתוארו לעיל – החלטנו לשפר את התהליך על ידי הכנסת תהליך בדיקות הדרגתי.
תהליך בדיקות הדרגתי
בתהליך פיתוח הדרגתי מתכננים מראש חבילות תכולה חלקיות ועצמאיות (Testable Drops)– אותן משחררים בהדרגה לבדיקות. צוות הפיתוח מפתח את החבילות על פי התכנון, בודק אותן בצורה סבירה ומעביר לבדיקות. במקביל לבדיקת תכולות שנמסרו – עובד צוות הפיתוח על חבילות התכולה הבאות. בתהליך בדיקות הדרגתי, הגדרנו כ-4 סבבים של בדיקות, למוצר שזמן הפיתוח שלו היה כשנה.
הבחנו בין סבבים קטנים במהלך הפיתוח, והסבב האחרון.
בסבב קטן נבדקו:
- תיקוני באגים/תקלות מהסבב הקודם;
- תקינות התכונות החדשות שנוספו לתכולה בסבב הנדון;
- בדיקות רגרסיה, על פי שיקול דעת. בדיקות אלה מוודאות שהתכולה הבדוקה והעובדת, לא נפגמה כתוצאה מהתוספות החדשות.
הסבב האחרון, הוא הסבב שנעשה בסיום הפיתוח ולפני שחרור המוצר ללקוחות. מקיף ומעמיק יותר מסבבי הביניים.
ניהול תהליך השינוי
הוחלט לשנות את תהליך הפיתוח והבדיקות מסדרתי להדרגתי. התועלות שנצפו מתהליך הדרגתי היו:
- קבלת מוצרים לבדיקות במצב יציב;
- תהליך בדיקות מתוכנן ומנוהל;
- גילוי "הפתעות" / באגים בשלב מוקדם של תהליך הפיתוח;
- ביצוע בדיקות במקביל לפיתוח – מקצר את לו"ז הפרויקט ומשפר את איכות המוצר.
תוצאות /מדדים – תהליך בדיקות הדרגתי מול סדרתי
כתוצאה מהכנסת השינוי, נמצאו ונמדדו התוצאות הבאות
- משך זמן מחזור חיי פיתוח כולל בדיקות התקצר ב- 5%;
- דיוק תהליך הערכת הזמנים (ביצוע מול תכנון) – עלה ב- 15%;
- כמות התקלות הקריטיות שהתגלו בסבב האחרון ותוקנו – ירדה ב60%;
- זמן הבדיקות מסיום הפיתוח – התקצר ב-70%;
- כמות התקלות הקריטיות שהתגלו אצל לקוחות – ירדה ב-8%.
בנוסף – נצפו התועלות האיכותיות הבאות:
- שיתוף הפעולה בין צוות הפיתוח לצוות הבדיקות – עלתה;
- אחריות צוות הפיתוח על איכות המוצר הנמסר לבדיקות – עלתה!
- רמת הידע של צוות הבדיקות במוצר הנבדק – השתפרה.
בסיום הפיילוט, שנמשך כשנה הוחלט ליישם את תהליך הבדיקות ההדרגתי בארגון כולו.