לחפש באגים מדריך מעשי לבודק התוכנה מהדורה שלישית אוריאלה כהן Search for Bugs By Uriella Kohn עריכה לשונית ועיצוב :שרה עמיהוד ,יצחק עמיהוד שמות מסחריים שמות המוצרים והשירותים המוזכרים בספר הינם שמות מסחריים רשומים של החברות שלהם .הוצאת הוד-עמי עשתה כמיטב יכולתה למסור מידע אודות השמות המסחריים המוזכרים בספר זה ולציין את שמות החברות ,המוצרים והשירותים .שמות מסחריים רשומים ) (registered trademarksהמוזכרים בספר צוינו בהתאמה. הודעה ספר זה מיועד לתת מידע אודות מוצרים שונים .נעשו מאמצים רבים לגרום לכך שהספר יהיה שלם ואמין ככל שניתן, אך אין משתמעת מכך אחריות כלשהי .המידע ניתן "כמות שהוא" )" .("as isהוצאת הוד-עמי אינה אחראית כלפי יחיד או ארגון עבור כל אובדן או נזק אשר ייגרם ,אם ייגרם ,מהמידע שבספר זה. ) (Cכל הזכויות שמורות לאוריאלה כהן ולהוצאת הוד-עמי ת.ד 6108 .הרצליה 46160 טלפון 09-9564716 :פקס09-9571582 : www.hod-ami.co.il אין להשאיל ו/או לעשות שימוש מסחרי ו/או להעתיק ,לשכפל ,לצלם ,לתרגם ,להקליט ,לשדר ,לקלוט ו/או לאחסן במאגר מידע בכל דרך ו/או אמצעי מכני ,דיגיטלי ,אופטי ,מגנטי ו/או אחר -בחלק כלשהו מן המידע ו/או התמונות ו/או האיורים ו/או כל תוכן אחר הכלולים ו/או שצורפו לספר זה ,בין אם לשימוש פנימי או לשימוש מסחרי .כל שימוש החורג מציטוט קטעים קצרים במסגרת של ביקורת ספרותית אסור בהחלט, אלא ברשות מפורשת בכתב מהמוציא לאור. הודפס בישראל ,יולי 2011 מסת"ב ISBN 978-965-361-390-4 לשם שטף הקריאה כתוב ספר זה בלשון זכר בלבד .ספר זה מיועד לגברים ונשים כאחד ואין בכוונתנו להפלות או לפגוע בציבור המשתמשים ו/או המשתמשות. ספר זה מוקדש לסיוון ומוריה, לב-חיי מרגע לידתן ,ואפילו קצת לפני... תודות כתיבת הספר הייתה מהנה מאוד כשלעצמה ,אבל הביקורת והתמיכה היוו את המרכיבים החשובים ביותר באירוע הוצאתו ,ועל כך אני מודה למתי כהן על האמון המלא ביכולות שלי ,לארזה הקר ומלכה חי על הביקורת הבונה שתרמה כה רבות לתוכן הספר .תודה מיוחדת לספי גלעזר ולאיתמר היידנפלד ,המנהלים שלי ב ,V-NESS -על האמון והפירגון. תוכן עניינים מקוצר הקדמה 17 ............................ ................................ ................................ חלק :1הגדרות בסיס 21 ........................................................... פרק :1מושגי יסוד 23 .......................................... ................................ חלק :2בדיקות תוכנה )39 ................................................ (QC פרק :2הגדרות בבדיקות 41 .................................. ................................ פרק :3מונחים ומושגים בבדיקות 47 .................................................... פרק :4רמות בדיקה 49 ......................................... ................................ פרק :5סוגי בדיקות 57 ......................................... ................................ פרק :6מתודולוגיה קלאסית 75 ............................ ................................ פרק :7סוגי מערכות 145 ....................................... ................................ פרק :8מערכת בתחזוקה 151 ................................. ................................ פרק :9השפעת מתודולוגיות הפיתוח על הבדיקות 157 .......................... פרק :10תיעדופים 165 .......................................... ................................ פרק :11בדיקות יחידה 175 ................................... ................................ פרק 181 ................................................. ................................ SQL :12 חלק :3הבטחת איכות תוכנה 199 ............................................ פרק :13הקדמה ל201 .................................... ................................ QA- פרק :14סטנדרטים 205 ......................................... ................................ פרק :15בקרת מסמכים 209 .................................. ................................ 6לחפש באגים ,מהד' 3 פרק :16סקר תוצרים 213 ..................................... ................................ פרק :17סקירת קוד 219 ........................................ ................................ פרק :18ניהול סיכונים 223 ................................... ................................ פרק :19בקרת שינויים 229 ................................... ................................ פרק :20ניהול גרסאות 233 ................................... ................................ פרק :21מדדים 239 ............................................... ................................ חלק QA :4ו – QC-סיכום 257 ................................................ פרק :22הקשר בין הבטחת איכות לבין בדיקות תוכנה 259 .................... פרק :23כלי עזר 267 ............................................. ................................ פרק :24מיהו הבודק? 271 ..................................... ................................ נספחים 273 .......................................................... ................................ מונחים ומושגים 343 ............................................. ................................ אינדקס תרשימים וטבלאות 345 ............................ ................................ תוכן העניינים 7 תוכן העניינים הקדמה 17 ............................ ................................ ................................ מדוע נכתב הספר 17 ...................................................................................................... מה זה הבטחת איכות ובדיקות תוכנה? 18 ..................................................................... חלוקה ל QA -ו19 ................................................................................................. QC- מבנה הספר 20 ............................................................................................................... חלק :1הגדרות בסיס 21 ........................................................... פרק :1מושגי יסוד 23 .......................................... ................................ כללי 23 .......................................................................................................................... מחזור חיי מערכת 24 ..................................................................................................... פיתוח 24 .................................................................................................................. תחזוקה 26 ................................................................................................................ גורמים מעורבים 27 .................................................................................................. סביבות עבודה 28 .......................................................................................................... מודלים של פיתוח 29 ..................................................................................................... מודל המפל )29 ...................................................................................... (Waterfall המודל הספירלי )30 ..................................................................................... (Spiral מודל 31 ............................................................................................ (V-Model) V מודל פיתוח באיטרציות )31 ............................................ (Iterative Development בסיסי נתונים )32 ..................................................................................... (Data Bases מונחים ומושגים 34 ....................................................................................................... תוכניות מקוונות )34 ............................................................................... (On-Line עיבודי אצווה )34 ......................................................................................... (Batch קלט/פלט )36 .................................................................................................... (I/O אינטגרציה 36 ........................................................................................................... מערכות מידע /עיבוד נתונים )36 ....................... (IT – Information Technology מערכות זמן אמת/משובצות ) 36 ........................................ (Real-time/Embedded ממשקים )37 ......................................................................................... (Interfaces הסבה )37 ........................................................................................... (Conversion 8לחפש באגים ,מהד' 3 חלק :2בדיקות תוכנה )39 ................................................ (QC פרק :2הגדרות בבדיקות 41 .................................. ................................ כללי 41 .......................................................................................................................... הגדרת הבדיקות 42 ........................................................................................................ מסגרת העבודה 42 .................................................................................................... פשרות 44 ................................................................................................................. גישת הבודק 45 ......................................................................................................... פרק :3מונחים ומושגים בבדיקות 47 .................................................... בדיקות קופסה לבנה 47 ................................................................................................. בדיקות קופסה שחורה 47 .............................................................................................. נתונים סינטטיים ונתוני "אמת" 48 ................................................................................ פרק :4רמות בדיקה 49 ......................................... ................................ כללי 49 .......................................................................................................................... בדיקות יחידה )49 ...................................................................................... (Unit Tests בדיקות מערכת )50 ............................................................................... (System Tests בדיקות קבלה )50 .......................................................................... (Acceptance Tests בדיקות אינטגרציה )51 ................................................................... (Integration Tests בדיקות רגרסיה )52 ........................................................................ (Regression Tests בדיקות שפיות )53 ................................................................................. (Sanity Tests 53 ........................................................................................................ Monkey Tests סיכום רמות בדיקה 54 ................................................................................................... פרק :5סוגי בדיקות 57 ......................................... ................................ כללי 57 .......................................................................................................................... בדיקות 58 .............................................................. (Graphical User Interface) GUI בדיקות פונקציונליות )60 ............................................................... (Functional Tests בדיקות תהליכיות )63 .......................................................................... (Process Tests בדיקות התאוששות מנפילות )64 .................................. (Failure & Recovery Tests בדיקות גיבוי ושחזור )65 ............................................... (Backup & Recovery Tests בדיקות התקנה )66 ........................................................................ (Installation Tests בדיקות הסבת נתונים )66 .................................................... (Data Conversion Tests תוכן העניינים 9 בדיקות תאימות )69 .................................................................. (Compatibility Tests בדיקות עומסים וביצועים )71 .................................................. (Load & Stress Tests פרק :6מתודולוגיה קלאסית 75 ............................ ................................ כללי 75 .......................................................................................................................... פרויקטי בדיקות 75 ........................................................................................................ למה צריך מתודולוגיה 76 ............................................................................................... מחזור החיים של הבדיקות 77 ........................................................................................ שלב 80 .............................................................................. (System Test Plan) STP לימוד המערכת 80 .................................................................................................... כתיבת מסמך 83 ............................................................................................... STP שאלות ותשובות 91 .................................................................................................. שלב 92 ...................................................................... (Software Test Details) STD הגדרת מקרי בדיקה )92 ....................................................................... (Test Cases תבנית התרחישים במסמך 94 .......................................................................... STD כלי עזר לתכנון וניהול התרחישים )מסמך 97 ................................................. (STD כתיבת התרחישים במסמך 101 ......................................................................... STD שאלות ותשובות 104 ................................................................................................. כיצד מחליטים אילו בדיקות להגדיר? 106 ....................................................................... טבלת מיפוי פרמטרים 106 ......................................................................................... תרשים זרימה 108 ..................................................................................................... שאלות ותשובות 110 ................................................................................................. דוגמאות למימוש מסמך STDעבור הבדיקות השונות 111 ............................................. בדיקת 111 ........................................................................................................ GUI בדיקת פונקציונליות 113 ........................................................................................... בדיקות תהליכיות 117 ............................................................................................... בדיקת שאילתות 119 ................................................................................................. בדיקת הרשאות 122 .................................................................................................. בדיקת עיבודי אצווה )124 ............................................................................. (Batch בדיקה התאוששות מנפילות 128 ................................................................................ בדיקה על בסיס השוואה 130 ..................................................................................... שלב 131 ...................................................................... (Software Test Results) STR בדיקות "שפיות" ]132 ............................................................................................ [1 10לחפש באגים ,מהד' 3 בדיקות "שפיות" ]132 ............................................................................................ [2 קביעת תכולת בדיקות 132 ........................................................................................ הכנת נתונים 133 ....................................................................................................... ביצוע הבדיקות 136 ................................................................................................... דיווח תקלות 136 ....................................................................................................... ניהול התקלות 139 .................................................................................................... סיכום ביצוע 139 ....................................................................................................... סיכום פרק המתודולוגיה לבדיקות 141 ........................................................................... שאלות ותשובות 142 ................................................................................................. פרק :7סוגי מערכות 145 ....................................... ................................ כללי 145 ......................................................................................................................... מערכות זמן אמת/משובצות )145 ............................................ (RealTime/Embedded מערכות 148 ........................................................................................................... ERP תוכנות מדף 149 ............................................................................................................. פרק :8מערכת בתחזוקה 151 ................................. ................................ כללי 151 ......................................................................................................................... מערכות בתחזוקה 151 .................................................................................................... מערכת מנוהלת גרסאות 151 ..................................................................................... מערכת שאינה מנוהלת גרסאות 153 .......................................................................... מערכת עם מערך בדיקות מלא ומקיף 154 ................................................................. מערכת ללא מערך בדיקות מלא 155 .......................................................................... שיפור מערך הבדיקות למערכת בתחזוקה 155 ........................................................... פרק :9השפעת מתודולוגיות הפיתוח על הבדיקות 157 .......................... כללי 157 ......................................................................................................................... פיתוח באיטרציות 157 .................................................................................................... פיתוח בשיטת 159 ................................................................................................ UML רצף 163 .............................................................................................................. UC מיפוי 164 ........................................................................................................... UC פרק :10תיעדופים 165 .......................................... ................................ כללי 165 ......................................................................................................................... תוכן העניינים 11 שיטות לחישוב ערכי תיעדוף 167 .................................................................................... תיעדופים בתהליך הבדיקות 168 ..................................................................................... תיעדוף נושאי הבדיקה 169 ........................................................................................ שימושים 169 .................................................................................................................. פרמטרים לדוגמה169 ..................................................................................................... תיעדוף טבלת הפרמטרים 170 ................................................................................... מטרה 170 ....................................................................................................................... פרמטרים לדוגמה170 ..................................................................................................... תיעדוף תרחישי הבדיקות 171 ................................................................................... מטרה 171 ....................................................................................................................... פרמטרים לדוגמה172 ..................................................................................................... תיעדופים בתהליך הפיתוח 174 ....................................................................................... פרק :11בדיקות יחידה 175 ................................... ................................ כללי 175 ......................................................................................................................... בדיקות כיסוי 176 ........................................................................................................... מעבר על מסלולים לוגיים )177 ............................................................. (Logical Paths בדיקות פונקציונליות ביחידת קוד 177 ........................................................................... שימוש בטבלת החלטות 178 ........................................................................................... המלצה 178 ..................................................................................................................... פרק 181 ................................................. ................................ SQL :12 כללי 181 ......................................................................................................................... טבלאות 182 .................................................................................................................... שאילתות )185 .............................................................................................. (SELECT מבנה כללי 185 .......................................................................................................... הדפסה חלקית )187 ........................................................................... (Top/Bottom הדפסה עם פעולות אריתמטיות 187 .......................................................................... הדפסה ללא כפילויות 188 ......................................................................................... שאילתה עם סינון )188 ............................................................................ (WHERE שאילתה עם מיון )190 ....................................................................... (ORDER BY שימוש ב191 .............................................................................................. ALIAS - 191 ................................................................................................ SELECT INTO פונקציות מובנות 192 ..................................................................................................... 12לחפש באגים ,מהד' 3 193 ............................................................................................... Group By / Having אגרגציה/קיבוץ )193 .......................................................................... (GROUP BY סינון קבוצות )194 .................................................................................. (HAVING צירופים )194 ....................................................................................................... (JOIN צירוף רגיל )195 ............................................................................... (INNER JOIN צירופים מיוחדים )196 ............................................ (LEFT JOIN / RIGHT JOIN 196 ................................................................................................ CREATE / DROP 197 ................................................................... INSERT / UPDATE / DELETE 197 ................................................................................................................... INSERT 197 .......................................................................................................... UPDATE 197 ........................................................................................................... DELETE חלק :3הבטחת איכות תוכנה 199 ............................................ פרק :13הקדמה ל201 .................................... ................................ QA- מטרה 201 ....................................................................................................................... פרק :14סטנדרטים 205 ......................................... ................................ מטרה 205 ....................................................................................................................... סטנדרטים בקוד 206 ....................................................................................................... סטנדרטים במסמכי מערכת 207 ...................................................................................... פרק :15בקרת מסמכים 209 .................................. ................................ מטרה 209 ....................................................................................................................... התהליך 211 .................................................................................................................... פרק :16סקר תוצרים 213 ..................................... ................................ המטרה 213 ..................................................................................................................... התהליך 213 .................................................................................................................... המגבלות 214 .................................................................................................................. פרק :17סקירת קוד 219 ........................................ ................................ המטרה 219 ..................................................................................................................... התהליך 220 .................................................................................................................... תוכן העניינים 13 המגבלות 221 .................................................................................................................. פרק :18ניהול סיכונים 223 ................................... ................................ המטרה 223 ..................................................................................................................... התהליך 224 .................................................................................................................... זיהוי סיכונים 224 ...................................................................................................... קביעת פעולה לכל סיכון 226 ..................................................................................... מעקב סיכונים 227 .................................................................................................... פרק :19בקרת שינויים 229 ................................... ................................ המטרה 229 ..................................................................................................................... התהליך 230 .................................................................................................................... הגדרת מקורות השינויים והתוספות 230 ................................................................... הגדרת מסגרת לאיסוף בקשות לשינויים ותוספות ,ודיווח תקלות 231 ...................... הגדרת נוהל לקביעת תכולת גרסה 231 ...................................................................... הגדרת נוהל למעקב ביצוע תכולת גרסה 232 ............................................................. הגדרת מסלול מיוחד לתיקוני חירום 232 ................................................................... פרק :20ניהול גרסאות 233 ................................... ................................ כללי 233 ......................................................................................................................... ניהול גרסאות רכיבי המערכת 233 .................................................................................. מהם רכיבי המערכת 233 ........................................................................................... מהן "גרסאות" תוכנה 233 .......................................................................................... מתי ואיך משתנות הגרסאות 234 ............................................................................... תבנית מספרי הגרסאות 235 ...................................................................................... מה כרוך בניהול הגרסאות 236 ................................................................................... ניהול סביבות עבודה 237 ................................................................................................ פרק :21מדדים 239 ............................................... ................................ כללי 239 ......................................................................................................................... שיטה למציאת מדדים לשיפור תוצר או תהליך 240 ......................................................... הגדרת יעדים 240 ...................................................................................................... הגדרת שאלות להשגת היעדים 241 ............................................................................ זיהוי מדדים 242 ........................................................................................................ 14לחפש באגים ,מהד' 3 מעקב ,ניתוח וטיפול 245 ........................................................................................... שיטה להגדרת מדדים לצורך החלטה 250 ........................................................................ דוגמאות למדדים 251 ..................................................................................................... מדדים לאיכות מסמכי הדרישות והאפיון 251 ............................................................ אחוז המשפטים הכלליים במסמך251 ............................................................................ יחס זמן כתיבת שינויים למסמכי האפיון לעומת הזמן הכולל לפרויקט 252 ................. זמן המושקע בתיקוני קוד בגין אי-הבנת האפיון252 ..................................................... מדדים המציגים את איכות הקוד 252 ........................................................................ אחוז העמידה בסטנדרטים 252 ...................................................................................... כמה זמן מושקע בביצוע תיקון לקוד 252 ...................................................................... מדדים המציגים את איכות המערכת 253 ................................................................... לפי מודל 253 .................................................................................................................. מדד איכות מערכת לפי תקלות 254 ............................................................................... מדדים המציגים את איכות הבדיקות 256 .................................................................. חלק QA :4ו – QC-סיכום 257 ................................................ פרק :22הקשר בין הבטחת איכות לבין בדיקות תוכנה 259 .................... כללי 259 ......................................................................................................................... הערכת פעילות הבדיקות כמערך אוטונומי 259 ............................................................... ניהול סיכונים 263 .......................................................................................................... שיתוף מידע 264 ............................................................................................................. אחריות על סביבת העבודה 265 ...................................................................................... הדרכת הבודקים 266 ....................................................................................................... פרק :23כלי עזר 267 ............................................. ................................ כלי עזר לבדיקות 267 ...................................................................................................... כלים לניהול בדיקות 267 ........................................................................................... כלים לניהול תקלות 267 ............................................................................................ כלים לבדיקות אוטומטיות 268 .................................................................................. כלים לסימולציה של עומסים 269 .............................................................................. כלי להבטחת כיסוי של שורות קוד 269 ..................................................................... כלי עזר אחרים 269 ......................................................................................................... כלים לניהול מסמכים 269 ......................................................................................... תוכן העניינים 15 כלים לניהול שינויים 270 ........................................................................................... כלים לניהול סיכונים 270 .......................................................................................... פרק :24מיהו הבודק? 271 ..................................... ................................ נספחים 273 .......................................................... ................................ נספח נספח נספח נספח נספח א' – אפיון מערכת עו"ש 275 ................................................................................. ב' – מסמך STPלמערכת עו"ש 287 ...................................................................... ג' – מסמך STDלמערכת עו"ש 299 ...................................................................... ד' – תבנית דוגמה למסמך 337 ..................................................................... STR ה' – תבנית דוגמה לטופס סיכום בקרת תוצרים 341 ............................................. מונחים ומושגים 343 ............................................. ................................ אינדקס תרשימים וטבלאות 345 ............................ ................................ תרשימים 345 ............................................................................................................ טבלאות 346 .............................................................................................................. 16לחפש באגים ,מהד' 3 הקדמה מדוע נכתב הספר הסיבה לכתיבת הספר נובעת בעיקר מנושאי העיסוק שלי משך השנים ,ומההכרה שאין ספרים מתאימים בעברית בנושאי הבטחת איכות ובדיקות תוכנה ,ובעיקר – לא ספרים מעשיים ,הנותנים את ההיבט המעשי לנושאים אלה ,ומענה לשאלה "מה בדיוק אני צריך לעשות כדי לבדוק תוכנה?" .מהדורה שלישית זו היא מהדורה מורחבת הכוללת היבטים נוספים החשובים לבודק ,כמו SQL :ועבודה עם או בלי גרסאות. אתחיל בהצגה עצמית :את הקריירה שלי בעולם המחשבים התחלתי כמפתחת ,כאשר עוד היו בארץ 5מחשבי-על גדולים ,וכאשר חברות קנו שעות שימוש בהם .אחרי 25 שנים בפיתוח – כתוכניתנית ,כמנתחת מערכות וכמנהלת פרויקטים על מערכות שונות, מחשבים שונים וטכנולוגיות מגוונות – "נפלתי" במקרה לנושא הבדיקות .זו הייתה תגלית נהדרת עבורי :גיליתי נושא חדש ומלהיב הדורש יצירתיות רבה מאוד. במשך 15שנות עבודתי בנושא זה ביצעתי עבודות שונות :בדקתי מערכות ,ניהלתי פרויקטי בדיקות והקמתי מערכי איכות בארגונים .כיום אני משמשת כמתודולוגית הראשית באחת מחברות ההי-טק הגדולות בארץ ,ומלמדת בקורסים המכשירים בודקי תוכנה .בעקבות העיסוקים המגוונים שלי ,נתקלתי לא פעם בעובדה שחסר חומר ראוי כתוב בנושא .קיימת ספרות תיאורטית רבה ,אך היא אינה מייצגת את עולם הבדיקות בפועל .הידע של "מה עושים ,איך ומתי" עובר בעיקר מפה-לאוזן ונרכש דרך הניסיון .כל אלה תרמו ללידת הרעיון לכתיבת ספר זה. מבחינת תוכנו של הספר ,אני חייבת לציין מספר נקודות חשובות: .1על כל שאלה בה נתקלתי ,מצאתי אמנם אוסף גדול מאוד של מידע ,אם בספרים ואם במאמרים רבים באינטרנט ,אבל כל אחד שונה מהשני .אין זה מצביע על כך שמקור אחד הוא נכון ואחר שגוי – כולם היו נכונים! הסיבה למגוון הרב של הגישות לבדיקות תוכנה היא בכך שנושא הבטחת האיכות ובדיקות התוכנה איננו, ולא יכול להיות – מוגדר תחת מסגרת חוקי פעולה קבועים ונוקשים .כל העבודה והפעילות בנושאים אלה חייבת להיות מותאמת לאוסף של פרמטרים המגדירים את הארגון ,את המערכת ,צורת העבודה ,הדרישות וכו' .כלומר :כדי להחליט כיצד הקדמה 17 לבדוק מערכת מסוימת – חייבים להגדיר תחילה את הפרמטרים המעורבים )כמו: סוג המערכת ,האם היא חדשה ,מתוחזקת או תוכנת מדף מותאמת וכו'( ,ולהפעיל הרבה דמיון ויצירתיות כדי לבנות את הדרך היעילה ביותר לבדוק אותה. .2לאור מה שציינתי קודם – ייתכן שתמצאו בספר זה נושאים אשר התייחסותי אליהם לא תהיה תואמת למקורות מידע אחרים בהם תיתקלו .במקרה זה זכרו רק, שההתאמה היא תמיד לאוסף הפרמטרים המגדיר את צורכי העבודה שלכם .ספר זה נותן לכם את הגישה המעשית ,וכלים לביצוע החלטות ושינויים ,כאשר נדרש. .3הספר תוכנן ונכתב בצורה מעשית ,שתוכל לא רק לספק מידע על הנושא ,אלא גם לתרום לעבודה השוטפת ,לכל בודק ואיש הבטחת איכות ,בכל ארגון ולכל מערכת. כל אלה – על בסיס ניסיוני האישי בעבודה עם ארגונים שונים ועם מערכות שונות. מה זה הבטחת איכות ובדיקות תוכנה? אתחיל דווקא עם כמה עובדות עצובות: סטטיסטיקות אחרונות טוענות שגלישה של 100-200%בזמני פיתוח ובתקציב הפיתוח של מערכות תוכנה היא גלישה כמעט מקובלת .יחד עם זאת – מפתחים עדיין "מבזבזים" 34%מזמנם על תיקוני תקלות. מכאן אפשר להבין שני דברים מרכזיים :האחד ,שכנראה משהו לא בדיוק תקין בתהליך פיתוח התוכנה ,אם הגלישה בלו"ז ובתקציב היא כל כך גדולה; והשני ,שאיכות המערכות – למרות הגלישה – עדיין נמוכה ,אם שליש מזמן המפתחים "מבוזבז" על תיקוני תקלות. נושא הבטחת איכות ובדיקות תוכנה מיועד לשפר את שני הליקויים האלה :גם לשפר את תהליך הפיתוח על כל שלביו ,וגם להבטיח איכות טובה יותר למערכות המפותחות. ובוודאי תקשו ותאמרו :אם הסטטיסטיקה הזו עדיין שרירה וקיימת – אז אולי המצב לא בדיוק משתפר עם הבטחת האיכות ובדיקות התוכנה? ובכן ,בתקופה בה החלו לפתח מערכות בסדרי גודל משמעותיים ,השתמשו במחשבי-על הנחשבים עד היום למחשבים יציבים ,בשפות תכנות כמו Cobolשעברה כבר דרך ארוכה של ייצוב ,וטכנולוגיות פשוטות יחסית .ואולי יותר מכל – המשתמשים היו מוכנים לקבל כל דבר .באותם זמנים אם הייתה בעיה כלשהי עם התוכנה – ב 99%-מהמקרים הדבר 18לחפש באגים ,מהד' 3 נבע משורת קוד לא תקינה .כל נושא הבדיקות אמנם לא היה קיים באופן רשמי ,אבל הבטחת תפקוד המערכות היה פשוט למדי. כיום המצב מאוד שונה ,בשני היבטים עיקריים :האחד ,הטכנולוגיות מורכבות יותר ,כלי הפיתוח משתנים ומתחלפים בקצב מסחרר ,והדבר אינו מאפשר לאף אחד מהם להגיע למצב של יציבות ,והלקוחות או המשתמשים דורשים איכות .השני ,מערכות תוכנה הפכו לחלק מרכזי כמעט בכל דבר שאנו עושים בחיי היום-יום שלנו – אם זה הטלפון הסלולארי בו אנו משתמשים ,הרכבות המנוהלות על ידי מחשב ,חשבון הבנק שלנו ואפילו מנוע המכונית .במצב כזה ,הנזק אשר מערכות לא תקינות יכול לגרום הוא עצום – כלכלית ,חברתית ואפילו בהשפעתו על חיי אדם. יחד עם כל זה – המצב משתפר )היה בהחלט גרוע יותר ,(...אבל התהליך איטי ,בעיקר בגין החדירה האיטית של הנושא למודעות הארגונים ולמוכנות שלהם להשקיע בו. כשעזבתי את עבודתי בפיתוח לטובת הבדיקות ,ניגשתי לחברה הקודמת בה עבדתי )שפיתחה מערכות לבנקים קטנים( ואמרתי לבוס שם" :מדוע לא תביא את התוכנה שלך לבדיקות? היא הרי מלאה תקלות!" הוא ענה" :בשביל מה? הלקוח יתלונן – אז נתקן!" גישה כזו – כבר אינה מתקבלת כיום ,ולקוחות דורשים יותר איכות. מידע נוסף :כשהתחלתי לעסוק בנושא זה ,ההשקעה בבדיקות תוכנה היוותה 5-7%מכלל עלות פרויקט הפיתוח .כיום 12 ,שנים מאוחר יותר ,הממוצע עומד על ,30%כאשר בארגונים מסוימים ההשקעה מגיעה גם ל .50%-ולדעתי – היד עוד נטויה. חלוקה ל QA -וQC- כפי שניתן לראות מהכותרת – הנושא מורכב משני חלקים :הבטחת איכות תוכנה ),(QA ובדיקות תוכנה ) .(QCאלה הם שני מושגים שונים: הבטחת איכות תוכנה – (Quality Assurance) QAמיועדת לצמצם נזקים בתהליך הפיתוח על כל שלביו :גורמים רבים ושונים מעורבים בפיתוח המערכת ,במהלכו מתקבלות החלטות טכניות שונות ,עומדים בפני מצבים רבים לא צפויים והרבה מאוד אפשרויות .כל אלה מייצגים מערך שיכול להיות מאוד בעייתי אם אינו מתבצע באופן תקין ומסודר .הבטחת איכות צריכה להבטיח תהליך כזה ,והנושא מורכב מפעולות מנע, כלומר – פעולות שמכוונות למנוע נזקים – אם לאיכות המערכת הנבנית או ללוחות הזמנים ולתקציב. הקדמה 19 בדיקות תוכנה – (Quality Control) QCמיועדות לזהות תקלות בתוצר הסופי :המערכת תוכננה ופותחה ,היא כבר קיימת ופועלת לכאורה .תפקיד הבדיקות הוא גם לגלות בה תקלות )פעילות לא תקינה( וגם לזהות אי-התאמות בין התכנון לבין התוצר הסופי הפועל. בספר זה אתייחס לשני הנושאים הללו ,אם כי הדגש יהיה על בדיקות התוכנה. מבנה הספר מטרת הספר להסביר בצורה מעשית ומפורטת את נושא הבטחת איכות ובדיקות התוכנה ,לעזור לבודק הפוטנציאלי להגיע למצב שיידע בדיוק מה הוא אמור לבצע בתפקידו החדש .הספר מורכב ממספר חלקים ,ובכל חלק פרקים אחדים: חלק – 1כולל הקדמה חשובה של הגדרות בסיס והסבר על תהליך פיתוח תוכנה .הבנת מערך הפיתוח הכרחית עבור הבודק בפעילותו. חלק – 2הוא החלק המרכזי של הספר ,ומטפל בנושא בדיקות התוכנה .הוא פותח בהגדרות ובמונחים מעולם הבדיקות .בהמשך הוא מתאר ומלמד את מתודולוגיית הבדיקות .המתודולוגיה מוסברת בעזרת מערכת עזר המוגדרת בנספחים ,כאשר כל הדוגמאות מתייחסות אליה לצורך המחשה והדגמה של יישום המתודולוגיה .פרקים אחרים בחלק זה מתארים מצבים שונים הדורשים התאמות למתודולוגיה ,בשל סוגי מערכות שונים או שיטות פיתוח המשפיעות על צורת הבדיקות. פרק נוסף דן גם בנושא התיעדוף .הקדשתי לנושא זה פרק מיוחד עקב החשיבות שאני רואה בו :בדיקות מאופיינות בכך שהן כרוכות בהרבה פשרות ,ושיטת התיעדופים מבטיחה שפשרות אלו תהיינה "חכמות" ,ולא תגרורנה סיכונים מיותרים. חלק – 3עוסק בפעולות הבטחת איכות שונות .כל פרק בחלק זה מתאר פעילות הבטחת איכות אחרת .כל הפעילויות קשורות לשלבים השונים של פיתוח תוכנה ובדיקות. חלק – 4מסכם את נושאי הבטחת איכות ובדיקות התוכנה ,וכולל פרק על הקשר בין תהליך הבדיקות לפעולות הבטחת איכות ,הסבר על פעולות האיכות הייחודיות לבדיקות, תיאור קצר של כלי העזר הקשורים לתהליך בדיקות תוכנה ,ולסיכום – הגדרת ה"בודק": מיהו ,ומהן התכונות הנדרשות ממנו. בסוף הספר נמצא את חלק הנספחים ,אשר כולל את אפיון מערכת העזר אשר שימשה להסבר מתודולוגיית הבדיקות ,את מערך הבדיקות המלא עבורה וגם טבלת ריכוז מונחים ומושגים ,ואינדקס תרשימים וטבלאות. 20לחפש באגים ,מהד' 3 חלק 1 הגדרות בסיס 21 22חלק :1הגדרות בסיס פרק :1מושגי יסוד כללי מהי בעצם "מערכת"? מערכת היא אוסף של תוכניות מחשב ,בשילוב עם הגדרות של מאגרי נתונים מתאימים) .על פי ויקיפדיה ,תוכנית מחשב היא "רצף של הוראות בשפת תכנות כלשהי ,שנועדו לבצע משימה מסוימת ,קטנה או גדולה ,במחשב"(. ומהי "מערכת איכותית"? הגיוני לומר שמערכת איכותית היא מערכת אשר המשתמש )הלקוח( מרוצה ממנה ,אבל זו הגדרה כללית מדי ,כי מה בעצם יגרום לשביעות רצון הלקוח מהמערכת? אני מגדירה זאת מארבעה היבטים: .1המערכת עושה את מה שנתבקשה לעשות :הפעולות שהיא מבצעת תואמות לדרישות ,המראה שלה נוח לשימוש וקל ללמוד אותה. .2אין במערכת תקלות קריטיות או חמורות .שימו לב שלא כתבתי "אין בה תקלות" ,כי במציאות – מצב כזה כמעט ולא קיים .המצב שאנו שואפים אליו הוא ,שאם קיימות תקלות במערכת ,הן תהיינה מזעריות וכאלו שאינן מפריעות לעבודה השוטפת עם המערכת ולביצועי המשתמשים. .3המערכת פותחה בזמן ובתקציב שהוגדרו עבורה .מערכת שעלתה 200%או 300% יותר ממה שהלקוח הקציב ,גורמת לו לנזקים ,ולכן איננה מוגדרת כאיכותית )כיצד תתייחסו לטלוויזיה שעלתה לכם כפול או פי שלוש ממה שהיא בדרך-כלל עולה? האם לא תצפו שבמחיר ששילמתם תקבלו יותר?(. .4מערכת אשר ניתנת לתחזוקה קלה וזולה ,כלומר :אם במהלך השנים יהיה צורך לשנות אותה או להוסיף לה חלקים – זה יהיה קל וישים במחיר סביר. פרק :1מושגי יסוד 23 פרק :6מתודולוגיה קלאסית כללי פרק זה מוקדש להסברים ודוגמאות של המתודולוגיה הקלאסית לבדיקות .בנושא בדיקות תוכנה יש ארגונים אשר התאימו לעצמם שיטות עבודה אחרות שאולי יותר נוחות להם מסיבות שונות ,אבל ככלל ,השיטה הנפוצה ביותר בארץ ובעולם היא השיטה המתוארת כאן .בדרך כלל גם ההתאמות האחרות עדיין מתבססות עליה. פרויקטי בדיקות כמעט בכל ארגון – יהיה זה בית תוכנה ,בנק או מפעל – הכולל קבוצת פיתוח תוכנה ,יש גם קבוצה הנקראת ,(Quality Assurance) QAהבטחת איכות .בחלק מהארגונים ,קבוצה זו כוללת רק בודקים ,וכל הפעילויות שהיא מבצעת קשורות לבדיקת המערכות המפותחות או מתוחזקות .בארגונים אחרים ,קבוצה זו מיועדת לביצוע ומעקב אחר פעולות הבטחת איכות כלליות ,ויש ארגונים שבהם קבוצת QAעוסקת גם בהבטחת האיכות הכוללת וגם בבדיקות תוכנה. בדיקות התוכנה בכל אחד מהארגונים האלה יתבצעו עבור כל מערכת ,על פי מתודולוגיה כלשהי שהוגדרה שם ,בדרגות יעילות שונות .הבדיקות מתבצעות בחלק מהארגונים כהמשכיות ו"נגררת" של תהליך הפיתוח ,ולפעמים כפרויקט בפני עצמו. בדיוק כפי שמנהלים פרויקטי פיתוח ,כך צריך גם לנהל פרויקטי בדיקות .פרויקט משמעותו ניהול עצמאי ושלם של התהליך על כל שלביו ,כולל בקרה על התהליך והפקת תוצרים. בפרויקט בדיקות יש מספר גורמים מעורבים ,על פי רמת הבדיקות: .1בדיקות מערכת )מסירה(: בודק :הבדיקות נעשות על ידי בודק אחד או יותר ,כתלות בגודל ובמורכבות המערכת. כאשר יש יותר מבודק אחד ,קיים גם תפקיד של ראש-צוות או מנהל פרויקט. פרק :6מתודולוגיה קלאסית 75 מנהל הפיתוח :הוא הלקוח שעבורו מתבצעות הבדיקות. מתכנת :יש פרויקטי בדיקות הדורשים גם עבודות תכנות לצורך הכנה של נתונים, השוואה בין עיבודים וכו'. .2בדיקות קבלה: בודק :הבדיקות נעשות על ידי בודק אחד או יותר ,כתלות בגודל ובמורכבות המערכת. כאשר יש יותר מבודק אחד ,יש צורך גם בתפקיד של ראש-צוות או מנהל פרויקט. מנהל המוצר או נציג משתמשים :הוא הלקוח שעבורו מתבצעות הבדיקות. מתכנת :יש פרויקטי בדיקות הדורשים גם עבודות תכנות לצורך הכנה של נתונים, השוואה בין עיבודים וכו'. למה צריך מתודולוגיה אתחיל בשתי הבהרות חשובות: .1המתודולוגיה המתוארת בפרק זה מתייחסת רק לרמות הבדיקה שמעורבים בה הבודקים .כלומר ,היא מתייחסת לבדיקות מערכת )מסירה( ולבדיקות קבלה .בדיקות המבוצעות על ידי המפתחים נעשות בדרך שונה ,ומתוארות בפרק נפרד. .2מתודולוגיית הבדיקות מתייחסת גם לבדיקת מערכת חדשה וגם לבדיקת מערכת בתחזוקה .כלומר ,בדיקות מערכת בגין שינויים ותוספות. אז למה בכלל יש מתודולוגיה? מדוע לא להמציא בדיקות לפי העניין לכל מערכת? הסיבה המרכזית היא "כיסוי" .אם המערכות הנבדקות היו קטנות ,בגודל המאפשר ראייה כוללת של כל הפעילויות במבט אחד ,אזי – נכון ,ייתכן שאין צורך ממשי במתודולוגיה. אבל המערכות כיום הן רחבות היקף ,וכוללות כמות עצומה של פעילויות ,שכל אחת מהן אפשרית במספר גדול של צירופים .לבדיקת מערכות כאלו אי-אפשר לכתוב בדיקות מבלי להסתכן בכך שלפחות 50%מיכולות המערכת לא ייבדקו. המתודולוגיה מיועדת להבטיח שכל פעילות וכל צירוף של פעילות – תבוא לידי ביטוי בבדיקות ,כלומר :שיהיה כיסוי מלא. 76חלק :2בדיקות תוכנה )(QC מטרה נוספת ,שאינה קשורה בגודל או במורכבות המערכת ,היא שמירת אחידות בשיטת הבדיקה .דבר זה מאפשר לאנשים רבים להשתמש בה ללא השקעת זמן בהבנת הנעשה. מערך של בדיקות מערכת לא נועד לשימוש חד-פעמי ,אלא לשימוש חוזר למשך כל חיי המערכת. מחזור החיים של הבדיקות במקביל לשלבי מחזור החיים של מערכת ,נמצאים גם שלבי מחזור החיים של הבדיקות, הכוללים מספר צעדים התלויים זה בזה )תרשים .(8 סיום בדיקות קידוד מעבר לייצור ביצוע הבדיקות אפיון מפורט אפיון כללי הכנת תוכנית מסגרת לימוד המערכת דרישות פעילות הבודקים תכנון תרחישים אפיון מפורט אפיון כללי ייזום STP STD STR תרשים :8שלבי מתודולוגיית הבדיקות הערה :התרשים למעלה מתייחס למערכת המפותחת לפי מודל המפל )ראו חלק 1 "הגדרות בסיס"( .כאשר מודל הפיתוח שונה ,עדיין מתבצעות כל פעילויות הבודקים כפי שמוגדר כאן ,אבל נדרשת התאמה .לפירוט ההתאמות ,ראו פרק " ,9השפעת מתודולוגיות הפיתוח על הבדיקות". פרק :6מתודולוגיה קלאסית 77 מתי בדיוק מתחילה הפעילות של הבודק? לפני שנים היה נהוג להמתין עם הבדיקות עד לאחר שיש מערכת מקודדת ,ורק אז להתחיל בתהליך תכנון וביצוע הבדיקות )מצב 1 בתרשים .(9אחר-כך החליטו שתהליך כזה גוזל זמן רב מדי ,ולכן גם גרם לקיצורים ופשרות מסוכנות בתהליך הבדיקות .הגישה החדשה קבעה שהבודק יתחיל את תכנון הבדיקות כאשר מסמכי המערכת מוכנים ומאושרים )מצב 2בתרשים .(9על פי הגישה העדכנית ,יש לשתף את הבודקים גם בשלב אפיון המערכת )מצב 3בתרשים .(9 סיום קידוד בדיקות אפיון מפורט אפיון מפורט מעבר לייצור אפיון כללי אפיון כללי ייזום דרישות 1 2 3 תרשים :9שילוב בודקים במחזור חיי מערכת לבודק יש חשיבות רבה בתהליך ,ובמיוחד הגישה הביקורתית והיכולת לשאול תמיד: "ומה אם ."?...שיתוף הבודק בתהליך אפיון המערכת מאפשר לגלות תקלות אפיון בשלבים מוקדמים ביותר ולהבטיח שהאפיון יהיה מגובש ושלם יותר. סיבה נוספת לצירוף הבודקים כבר בשלב תכנון וכתיבת האפיון היא עלות תיקוני התקלות ,או מה שמקובל לכנות "חוקיות ."1:10:100שפירושו :כאשר מגלים איזו שהיא תקלה בשלב תכנון ואפיון המערכת ,העלות שלה תהיה יחידה אחת ) ;(1אם מגלים את התקלה בשלב הקידוד או הבדיקות ,עלותה תהיה 10יחידות; ואילו תקלות המתגלות לאחר מעבר המערכת לייצור – עלות התיקון שלהן תהיה .100 הבודק מתבסס בתכנון הבדיקות שלו על מסמכי מערכת .בעדיפות ראשונה נמצאים מסמכי הדרישות שהלקוח או המשתמש העתידי הגדירו .אם לא קיים מסמך כזה ,או 78חלק :2בדיקות תוכנה )(QC כתיבת התרחישים במסמך STD כתיבת התרחישים מתבצעת על פי המידע הבא: .1עץ-הנושאים אשר הוגדר במסמך .STP .2רשימת מקרי הבדיקה ) (Test Casesשל כל נושא ,אם הוגדרו. .3סוגי הבדיקות אשר הוגדרו בפרק האסטרטגיה במסמך .STP מספר נקודות לתשומת לב: – בדיקות מסוג GUIובדיקות פונקציונליות יוגדרו עבור כל הנושאים אשר בעץ- הנושאים ,ולכל נושא תוגדר לפחות בדיקה אחת .יש להקפיד על כך שבדיקות אלו יכללו בדיקות חיוביות ובדיקות שליליות. – בדיקות תהליכיות ואחרות לא ניתנות להגדרה על פי הנושאים ,מכיוון שהן חוצות מערכת וכוללות מספר נושאים בכל בדיקה. – לכתיבת בדיקות פונקציונליות ניתן להיעזר גם ברשימת הודעות השגיאה המתוכננות למערכת .רשימה כזו יכולה לתרום להבטחת כיסוי כל המצבים הלא-תקינים הצפויים. הסעיף הבא יכלול דוגמאות למימוש על פי סוגי הבדיקות השונים .לפני הצגת דוגמאות אלו ,ברצוני להוסיף מספר חוקי "אל תעשה". דוגמת "אל תעשה" :1 זיהוי בדיקהXXX : מטרת הבדיקה :בדיקת משיכת כספים מעל יתרת האשראי. תנאים מקדימים :מספר חשבון פרטי קיים ופעיל ,ללקוח פעיל וישראלי ,עם יתרה > ,₪100אחוז עמלה למשיכה מחשבון פרטי ללקוח ישראלי = .0.2% # תיאור צעד תוצאה צפויה 1 היכנס למסך טלר ,הקש מספר חשבון תקין. פרטי החשבון מוצגים 2 הקש סכום של .₪100 הפעולה בוצעה. בחר פעילות "משיכה" בסניף החשבון על ידי בעלי החשבון. לחץ על לחצן "בצע". פרק :6מתודולוגיה קלאסית 101 הערות :משפט כמו "הפעולה בוצעה" )תוצאה צפויה לצעד (2אינו משמעותי ,ואינו בר- ביצוע ,שהרי מה בדיוק קורה? הבודק המבצע צריך לעקוב אחר ההוראות בכל צעד, לבצע אותן ולהשוות את התוצאות שקרו בפועל לאלו שמוגדרות תחת "תוצאות צפויות" .מה ישווה הבודק עם משפט כמו "הפעולה בוצעה"? דבר שני :האם זו אכן התוצאה? האם המערכת לא עשתה שום דבר בעקבות ביצוע המשיכה? אין כל פלט? חייבים להגדיר ב"תוצאה הצפויה" מה בדיוק ביצעה המערכת כתוצאה מהפעילות ב"תיאור הצעד" ,ומה הן משמעויות הפלטים של פעילות זו. דוגמת "אל תעשה" :2 זיהוי בדיקהXXX : מטרת הבדיקה :בדיקת משיכת כספים מעל יתרת האשראי. תנאים מקדימים :חשבון עם יתרה > ,₪100אחוז עמלה למשיכה מחשבון פרטי ללקוח ישראלי = .0.2% # תיאור צעד תוצאה צפויה 1 היכנס למסך טלר ,הקש מספר חשבון תקין. פרטי החשבון מוצגים. 2 הקש את הסכום .₪100 אם סטטוס החשבון פעיל – המשיכה תבוצע ,ויווצרו 4 תנועות כספיות. בחר פעילות "משיכה" בסניף החשבון על ידי בעלי החשבון. 3 לחץ על לחצן "בצע". אם סטטוס הלקוח מעוקל – המשיכה לא תאושר. היכנס לשאילתת תנועות ,ובדוק האם התנועות נרשמו במאגר לפי ערך יום הפעולה. אם סטטוס החשבון פעיל, התנועות קיימות ותקינות. חיוב חשבון העו"ש ב.₪100- זיכוי סעיף מזומנים ב.₪100- חיוב חשבון העו"ש בסכום .₪0.2 זיכוי סעיף עמלות בסכום .₪0.2 102חלק :2בדיקות תוכנה )(QC הערות :יש לשים לב לתנאים המקדימים ,שאינם מגדירים מספר חשבון מסוים וגם לא את סטטוס החשבון .כעת הביטו בתוצאה הצפויה של צעד 2שבו יש בחירה של תוצאה שונה בהתאם לסטטוס החשבון .אבל מה יקרה בפועל בזמן ביצוע הבדיקה? רק מצב אחד ייבדק :או משיכה תקינה לחשבון פעיל ,או סירוב למשיכה מחשבון מעוקל .כלומר, אחד מהמצבים האלה לא ייבדק! במקרה כזה ,הדרך הנכונה היא להגדיר שתי בדיקות נפרדות :אחת עבור חשבון בסטטוס פעיל ,ואחת עבור חשבון בסטטוס מעוקל. דוגמת "אל תעשה" :3 זיהוי בדיקהXXX : מטרת הבדיקה :בדיקת משיכת כספים מעל יתרת האשראי. # תיאור צעד תוצאה צפויה 1 היכנס למסך טלר והקש מספר חשבון תקין. פרטי החשבון מוצגים. 2 הקש את הסכום .₪100 המשיכה מבוצעת ונוצרות 4 תנועות כספיות. בחר פעילות "משיכה" בסניף החשבון על ידי בעל החשבון. )אימות הפעולה נעשה בצעד הבא( לחץ על לחצן "בצע". 3 אימות :היכנס לשאילתת תנועות .בדוק אם התנועות נרשמו במאגר לפי ערך יום הפעולה. התנועות קיימות ותקינות. חיוב חשבון העו"ש ב.₪100- זיכוי סעיף מזומנים ב.₪100- חיוב חשבון העו"ש בסכום .₪0.2 זיכוי סעיף עמלות בסכום .₪0.2 הערות :יש לשים לב לתנאים המקדימים שאינם מוגדרים כלל .כלומר ,הבדיקה תתבצע על כל חשבון שהוא ,עם כל תנאי שהוא ,סטטוס כלשהו ,יתרה כלשהי .במקרה זה אי אפשר לדעת מראש מה תהיה התוצאה הצפויה ,ולכן גם לא ניתן לוודא שהתוצאה בפועל תקינה! זכרו :אתם בודקים את התוכנה! אתם יודעים כיצד היא אמורה להתנהג בתנאים שונים ועם נתונים שונים ,ואתם רוצים לוודא שאכן היא מתנהגת כפי שתוכננה! פרק :6מתודולוגיה קלאסית 103 שאלות ותשובות שאלה :האם חובה לכתוב תמיד "מקרי בדיקה" )?(Test Cases תשובה :אין קביעה אחת בנושא ,והדבר תלוי בשני גורמים: – תקן העבודה בארגון בו אתם עובדים .אם שיטת העבודה מחייבת הכנת מקרי-בדיקה ,אז כמובן שיש לכתוב אותם. – אם אין דרישה להכנת מקרי-בדיקה ,צריך לברר אם הנושא שרוצים לבדוק מסובך ומורכב? האם הצגת רשימת המקרים לבדיקה תעזור להבטיח שאכן בודקים כל נושא מכל הכיוונים האפשריים? שאלה :באיזו רמה יש לכתוב את צעדי התרחישים? תשובה :אין חוקיות לגבי רמת הפירוט של צעדי התרחישים ,ולכן צריך לברר :מי עומד לבצע את הבדיקות בשלב הזה? מי יבצע את הבדיקות בעתיד? האם אלה אנשים מנוסים המכירים את המערכת? האם תחלופת האנשים בארגון גדולה, וצריך יהיה ללמד אותם שוב לקראת כל בדיקה? גישת הביניים היא :כתיבת תרחישים בצורה שתהיה ברורה לחלוטין וחד-משמעית ,כדי שגם אדם חיצוני עם רקע ממוצע במערכת ,ידע בבירור מה לעשות – ללא שאלות ,ללא התלבטויות לגבי הכוונה. שאלה :האם ניתן לשלב מספר הוראות ביצוע בצעד אחד? תשובה :אין חוקיות להכנת ההוראות ,ולכן צריך לברר :האם לכל הוראת ביצוע יש תוצאה צפויה שונה אותה יש לבדוק? אם כן ,רצוי להפריד ולכתוב כל הוראה בצעד נפרד ,כי בזמן ביצוע ההוראות משווים את התוצאה הצפויה לתוצאה שאירעה בפועל ,ומסמנים את הצעד כ"עבר" או "נכשל" על פי ההשוואה הזו. שאלה :מה עושים אם מסמך האפיון אינו כולל צילומי מסכים והמערכת עדיין לא קיימת? תשובה :כשאין תיאור למסכי המערכת לא ניתן לכתוב בדיקות .GUIגם את הבדיקות הפונקציונליות נכתוב ברמה קצת שונה .במקום לכתוב בצעד :1 "היכנס למסך טלר והקש מספר חשבון" ובצעד " :2סמן פעולה = משיכה, סניף = חשבון ,מבצע = בעל חשבון ,נכתוב ברמה כוללת יותר" :היכנס למסך טלר ובצע משיכה על ידי בעל חשבון ,בסניף החשבון". 104חלק :2בדיקות תוכנה )(QC נספח א' – אפיון מערכת עו"ש .1תיאור המערכת מערכת העו"ש החדשה מיועדת להחליף מערכת ישנה. המערכת מטפלת במספר פעילויות בנקאיות ,הן במטבע ישראלי ) (₪והן בדולרים ).($ – משיכת כספים מתוך חשבון העו"ש, – הפקדת כספים לחשבון העו"ש של הלקוח. המערכת כוללת שני מאגרי מידע מרכזיים )בסיסי נתונים(: .1מאגר חשבונות עו"ש ללקוחות ,המתעדכן בעקבות פעילות המערכת .המאגר כולל, בין היתר: יתרה גובה אשראי סוג חשבון פרטי עסקי סטטוס חשבון: פעיל מעוקל מוקפא בעלי חשבון יחיד שותפים )יותר מאחד( .2מאגר פרטי לקוחות ,משמש לתצוגת מידע בלבד ,וכולל: ת.ז .לקוח שם וכתובת תושבות ישראלי זר נספח א' – אפיון מערכת עו"ש 275 שטחים סטטוס לקוח פעיל נפטר מעמד בעל החשבון שותף בחשבון אפוטרופוס .2מסך הטלר הטלר מבצע את פעולות העו"ש בעזרת מסך כללי אחד ,שנראה כך: 276נספחים מאפייני השדות: שם שדה מס' חשבון הפעולה סכום הפעולה מגבלות פורמט ) 9(Nחובת הקשה RadioButtonברירת מחדל = "משיכה" 7(N).NNחובת הקשה ,חייב להיות סכום חיוב < 0 סניף RadioButtonברירת מחדל = "חשבון" מבצע RadioButtonברירת מחדל = "בע"ח" )בעל חשבון( אישור אופוטרופוס CheckButtonחובת הקשה כאשר המבצע הוא אפוטרופוס פרטי מיופה כח :שם A30חובת הקשה כאשר המבצע הוא מיופה כח פרטי מיופה כח :ת.ז. 9Nחובת הקשה כאשר המבצע הוא מיופה כח פרטי חשבון :קוד בנק NNNקוד בנק תקין מתוך טבלת קודי הבנקים. חובת הקשה בפעולה דרך סניף אחר פרטי חשבון :סניף NNNקוד סניף תקין מתוך טבלת קודי סניפים חובת הקשה בפעולה דרך סניף אחר פרטי שיק להפקדה :קוד בנק פרטי שיק להפקדה :סניף NNNקוד בנק תקין מתוך טבלת קודי הבנקים. חובת הקשה בפעולת הפקדת שיק NNNקוד סניף תקין מתוך טבלת קודי סניפים חובת הקשה בפעולת הפקדת שיק פרטי שיק להפקדה :מס' שיק ) 7(Nחובת הקשה בפעולת הפקדת שיק החלון הראשי הזה ישמש את כל הפעולות: לאחר הקשת מספר החשבון ,יוצגו אוטומטית כל פרטיו :שם הלקוח ,יתרה ,סוג חש', אשראי וסטטוס. נספח א' – אפיון מערכת עו"ש 277
© Copyright 2024