ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
‫×יכות , בדיקות ,הצלחה והגיגי×‬
 ‫...‬

‫מה ×× ×™ צריך לעשות למען ×”×יכות של‬
            ‫הקוד שלי ?‬
         ‫‪ziv@johnbryce.co.il‬‬
          ‫ט×קט - 0006419-80‬
            ‫‪www.tact.co.il‬‬



                     ‫1‬
‫ר×•×¦×™× ×œ×”×’×™×¢ רחוק‬
‫×בל צר×™×›×™× ×œ×”×–×”×¨ ....‬
‫מטרות ההרצ×ה‬

‫• לעלות ×ת המודעות לחשיבות של ×יכות הקוד ובעיקר‬
   ‫לעלות ×ת המודעות לחשיבות של תפקיד המפתח‬
                                ‫ביצירת קוד ×יכותי‬
   ‫• הצגת מספר ×”×’×™×’×™× ×¢×œ תפיסת ×”×¢×•×œ× ×•×”×’×™×©×” של‬
  ‫המפתח בפיתוח הקוד והצגת מספר טכניקות ודרכי‬
                      ‫פעולה לייצר קוד ×יכותי יותר‬




                          ‫3‬
‫מה קור×” למוצר ×©×œ× ×“×•×‘××’ מספיק‬
‫די דיינו די דיינו‬

                                      ‫×ילו היו ר×§ ×ž×‘×§×©×™× ×ž×תנו לכתוב יותר קוד – דיינו‬                ‫•‬
                         ‫×ילו היו ר×§ ×ž×‘×§×©×™× ×ž×תנו לכתוב בטכנולוגיות חדשות – דיינו‬                    ‫•‬
                        ‫×ילו היו ר×§ ×ž×‘×§×©×™× ×ž×תנו לכתוב מערכות גדולות יותר – דיינו‬                    ‫•‬
                      ‫×ילו היו ר×§ ×ž×‘×§×©×™× ×ž×תנו לכתוב מערכות מורכבות יותר -דיינו‬                      ‫•‬
                     ‫×ילו היו ר×§ ×ž×‘×§×©×™× ×ž×תנו לתקן ולעשות ×©×™× ×•×™×™× ×›×œ הזמן – דיינו‬                    ‫•‬
                 ‫×ילו היו ר×§ ×ž×‘×§×©×™× ×ž×תנו לכתוב מערכות בשלל טכנולוגיות – דיינו‬                       ‫•‬
                                 ‫×ילו היו ר×§ ×ž×‘×§×©×™× ×ž×תנו לתעד ×ת המערכות – דיינו‬                    ‫•‬
                  ‫×ילו היו ר×§ ×ž×‘×§×©×™× ×ž×תנו לבדוק ×ת הקוד ש×נחנו ×›×•×ª×‘×™× â€“ דיינו‬                       ‫•‬
                          ‫×ילו היו ר×§ ×ž×‘×§×©×™× ×ž×תנו ×©×œ× ×™×”×™×• במערכות ב××’×™× â€“ דיינו‬                    ‫•‬
       ‫×ילו היו ר×§ ×ž×‘×§×©×™× ×ž×תנו שהמערכות יעבדו ×‘×‘×™×¦×•×¢×™× ×ופיטמ××œ×™× â€“ דיינו‬                           ‫•‬
            ‫×ילו ר×§ היו ×ž×‘×§×©×™× ×ž×תנו שהמערכות יהיו ידידותיות למשתמש – דיינו‬                          ‫•‬
‫×ילו ר×§ היו ×ž×‘×§×©×™× ×ž×תנו שהמערכות ×œ× ×™×¤×œ×• וש×× ×”× ×™×¤×œ×• ××– שית×וששו מהר –‬                             ‫•‬
                                                                                             ‫דיינו‬
                                                        ‫די דייינו , די דיינו , דיינו דיינו ......‬    ‫•‬


                                                     ‫5‬
‫שלושת חוקי הב××’×™×‬

                                     ‫• בכל תוכנית יש ב×ג‬
                             ‫• בין כל ב××’ לב××’ יש עוד ב×ג‬
                                         ‫• ב××’ ×ž×‘×™× ×—×‘×¨‬

‫• והחוק ×”×›×™ חשוב (הדיבר הרביעי) : היציר×” של הב××’×™× ×יננה‬
 ‫×קר×ית, ××™× × ×” מקרית ו××™× ×” "מכת מדינה משמיי×". מדובר‬
  ‫בתופעה ש×פשר ×œ×”×œ×—× ×‘×” ×’× ×‘×¨מת המניעה ×•×’× ×‘×¨מת‬
                                ‫הגילוי והורדת עלות הנזק‬




                              ‫6‬
‫הכל ×ž×©×ž×™×™× - ומה שצריך לקרות יקרה‬
‫מספר ×”×’×™×’×™× ×¢×œ החוק הרביעי‬

‫• ל×ורך ×”×©× ×™× × ×›× ×¡×• מתודולוגיות ושיטות עבודה במקביל לעליה בסיבוכיות‬
                          ‫, בגודל ובמורכבות של המערכות והטכנולוגיות‬
                                ‫• מי ×©×œ× ×”×•×œ×š קדימה ... הולך ×חור×” ....‬
      ‫• ולמרות העליה של כל הפרמטר×™× ... ×נחנו רו××™× ×©×™×¤×•×¨ במגמת של‬
    ‫×יכות הקוד והתוכנה ( ×œ× ×ž×¡×¤×™×§ עדיין , ×בל יש מגמת שיפור ברור×”)‬
     ‫• במחקר על המקומות ×‘×”× × ×ž×¦××™× ×”×‘××’×™× ×”×¡×ª×‘×¨ שלמרות שיצירת‬
   ‫הב××’ נתפסת "כטעות ×נוש" יש תבניות פעולה דומות בין כל הב××’×™× (‬
                  ‫ש×לה למחשבה : ×יכן נמצ××™× ×¨ב הב××’×™× ×‘×ª×•×›× ×” ?)‬
       ‫• המסקנה ניתן ×œ×”×œ×—× ×‘×›×ž×•×ª וב×יכות של הב××’×™× ×•× ×™×ª×Ÿ להוריד ×ת‬
                                   ‫העלות של יצירת הב××’×™× ×‘×ª×•×›× ×” .....‬




                                       ‫8‬
‫כלכלת ×”×יכות והבדיקות‬

‫• ניתן להוריד ×ת עלות הכשל הנובעת מהב××’×™× ×©×נחנו‬
                                          ‫מייצר×™×‬
       ‫• עלות המניעה – זולה בסדר גודל מעלות התיקון‬
‫• עלות הגילוי ×”×ž×•×§×“× â€“ המפתח לשיפור בעלות התיקון‬




                        ‫9‬
‫עלות התקלה ו××™ החשיבה מר×ש‬
‫זיהוי ותיקון תקלות בשלב ×ž×•×§×“× ×‘×ª×”×œ×™×š הפיתוח‬




‫‪back‬‬



                           ‫11‬
‫הצד השני של גר×£ בוה×‬

  ‫• עלות התיקון ×œ× ×¨×§ עולה ××œ× ×’× ×יכות התיקון יורדת ככל‬
                       ‫שנגלה מ×וחר יותר ×ת הטעות .....‬
‫• הפרדוקס של גר×£ ×‘×•×”× ×›×©×”×•× ×ž×’×™×¢ לשולחנו של המפתח :‬
‫• ההשקעה בגילוי ובבדיקות נעשית בעיקר בסוף ( מתי שיש‬
  ‫לנו ×ת העלות היקר×” ביותר ו×ת ×”×יכות הגרועה ביותר‬
                                              ‫לתיקון)‬
   ‫• התובנה : צריך לעשות יותר בדיקות ויותר בקר×” בשלבי×‬
              â€«×ž×•×§×“×ž×™× ×©×œ הפיתוח ( קר×™ ב×חריות המפתח)‬




                             ‫21‬
‫תפיסת גוף הבדיקות על ידי הפיתוח – הטעות הקל×סית‬

‫• בשביל מה יש גוף בדיקות מרכזי ובודק תוכנה בפרויקט שלי ?‬
    ‫• ×©×”× ×™×’×œ×• ×ת הב××’×™× ... ×× ×™ עסוק ביצירת הקוד ×”×‘× ×©×œ×™â€¬
                                   ‫(והב××’×™× ×”×—×“×©×™× ×©×œ×™)‬
                                       ‫• ×–×” ×œ× ×‘××’ ×–×” פיצ'ר‬
       ‫• ×”× ×ž×˜×¨×™×“×™× ×ותי כל הזמן בש×לות .... בשביל מה ×”×‬
                          â€«×ž×§×‘×œ×™× ×›×¡×£ ... בשביל להפר×™×¢ לי‬
      ‫• התוצ××” – גופי הבדיקות ×ž×§×‘×œ×™× ×”×¨בה יותר ב××’×™× ×•×œ×‬
        â€«×ž×©×§×™×¢×™× ×ת הזמן בבדיקות הסופיות וה×ינטגרטיביות‬
                                 ‫(המטר×” העיקרית שלה×)‬



                               ‫31‬
‫למה מתכוון המתכנת ×›×©×”×•× ×ומר...‬
                                                         ‫בלתי ×פשר×™ בעליל – ×ין לי מושג ×יך ×¢×•×©×™× ×ת ×–×”.‬
                                                                    ‫בלתי ×פשר×™ - ×ין לי כוח לעשות ×ת ×–×”.‬
                                                                                ‫קשה – ×צטרך לקר×•× ×ª×™×¢×•×“.‬
                              ‫ב×ופן כללי, ×פשר×™ – ר×§ ×תמול הורדתי מ×ינטרנט ספר×™×” שפותרת ×ת הבעיה ×”×–×ת.‬
                                                                                           ‫עובד – מתקמפל.‬
                                                                             ‫×× ×™ מלטש ×ת ×–×” – ×œ× ×ž×ª×§×ž×¤×œ.‬
                                                ‫בודק על בעיות ×œ×“×•×’×ž× â€“ מחפש ×ž×¦×‘×™× ×©×‘×”× ×”×ª×•×›× ×™×ª ×œ× ×¢×¤×”.‬

                                                                                  ‫סביר - בהסתברות של %5.1‬
                                                   ‫×נו ×ž× ×¡×™× ×›×ž×” גישות שונות – עדיין ×ין לנו מושג מה לעשות.‬
                   ‫×נו ×ž×›×™× ×™× ×“×•"×— ×ž×¡×›× ×¢×œ הגישה החדשה שלנו לפתרון הבעיה- כר×’×¢ גייסנו 3 ×¡×˜×•×“× ×˜×™× ×©× ×” ×'.‬
  ‫×נו ער×‘×™× ×©×”×œ×§×•×— ×™×”×™×” מרוצה – ×נחנו כל כך ×œ× ×¢×•×ž×“×™× ×‘ ‪ ,Deadline‬שהלקוח ×™×”×™×” מ×ושר כשיקבל לפחות משהו.‬
                                                              ‫בדיקות קבלה עברו בסדר – ×œ× ×¦×™×¤×™× ×• שזה יעבוד.‬
                              ‫צריך לשנות ×ת כל הגישה – הבן ××“× ×”×™×—×™×“ שהבין בזה לפחות משהו, כר×’×¢ התפטר.‬
                                      ‫כן, כן, נבדוק מה קור×” ×¢× ×–×” – שכחו מזה יש לנו ×’× ×›×›×” מספיק על ×” ר×ש.‬

                                                      ‫תחתמו בבקשה על ×”×פיון – בו×ו נחלק ×חריות לכישלון.‬
â€«×‘× ×•× ×©×ž×¢ ×ת ×“×¢×ª×›× â€“ ×נו ×™×›×•×œ×™× ×œ×©×ž×•×¢ ×ת דעתכ×, כמובן, כל עוד מה ש××ª× ×ומר×™× ×œ× ×ž×©×¤×™×¢ על מה שכבר עשינו.‬
                                                          â€«×©× ×™× ×©×œ פיתוח - תוכנית ×חת בסוף התחילה לעבוד.‬
                                                   ‫×נו ×¢×•×©×™× ×ת ×–×” לפי סטנדרטי×! – ×נחנו תמיד ×¢×•×©×™× ×›×›×”!‬

                                            ‫יש הרבה גור×ž×™× ×©×ž×©×¤×™×¢×™× ×¢×œ ×–×” – תשכח מלקבל תשובה נורמ×לית.‬
                                                   ‫×נו על סף פריצת דרך – ×‘×¤×¢× ×”×חרונה התוכנית כמעט עבדה!‬

                                ‫יש לתוכנה תמיכה מל××” – ×נו ×ž×‘×˜×™×—×™× ×œ×©×œ×•×— עוד גרסה, ×× ×”×§×•×“×ž×ª ×œ× ×ª×¢×‘×•×“.‬
                                         ‫יש לתוכנה תמיכה חלקית – ×× ×ž×©×”×• יקרוס, ×œ× ×™×”×™×” ×œ×›× ×¢× ×ž×™ לדבר.‬
      ‫הפרויקט צועד לקר×ת סיומו בצעדי ×¢× ×§ – ×נו ×ž×§×•×•×™× ×©×¤×¨ויקט של 62 שבועות ×™×¡×ª×™×™× ×œ×§×¨×ת סוף השבוע ×” 84.‬
                                                       ‫התוכנה עומדת בתקני ×יכות – התוכנה התקמפלה בסדר.‬

                                                ‫41‬
‫שינוי בגישה של ×”×ž×¤×ª×—×™× ×›×œ×¤×™ הבדיקות‬


      ‫•הפתרון : הבנה של המפתח שהחלק‬
‫החשוב של ×יכות הקוד × ×ž×¦× ×צלו. המטרה‬
 ‫××™× × ×” ×œ×¡×™×™× ×ת הקוד בזמן ××œ× ×œ×¡×™×™× ×ת‬
  ‫קוד ×יכותי בזמן ... וזה הרבה יותר קשה‬




                           ‫51‬
‫ה×מונה ביכולת שלנו מייצרת ×ת ×”×פקטיביות וה×יכות‬
‫מה ×תה יכול לעשות למען המדינה והמוצר , מפתח יקר שלי ...‬

                                         ‫• בתהליך הפיתוח‬

                                           ‫• ×‘×¡×™×•× ×”×¤×™×ª×•×—â€¬

                                             ‫• בתיקון הב×ג‬




                              ‫71‬
‫בתהליך הפיתוח‬




        ‫81‬
‫על ×רבעה ×‘× ×™× ×“×™×‘×¨×” התורה‬

             ‫• ×—×›× - לעשות ×ת הדבר הנכון , בדרך הנכונה‬
           ‫• ×ª× - לעשות ×ת הדבר הנכון , בדרך ×”×œ× × ×›×•× ×”â€¬
  ‫• ×–×” ש×יננו יודע לש×ול - לעשות ×ת הדבר ×”×œ× × ×›×•×Ÿ בדרך‬
                                                ‫נכונה‬
     ‫• רשע - לעשות ×ת הדבר ×”×œ× × ×›×•×Ÿ , בדרך ×”×œ× × ×›×•× ×”â€¬

‫ש×לה מעניינת : מי הטיפוס הפופל×ר×™ בקרב ×”×ž×¤×ª×—×™× ?‬
                  ‫והמסקנה ?‬




                            ‫91‬
‫הכוונות הטובות ×œ× ×ž×¡×¤×™×§×•×ª .....‬
‫בתהליך הפיתוח של ‪Class‬‬

   ‫• הבנת הדרישות ×•×”×ž×ž×©×§×™× (כולל עקרון העקיבות והשלמות)‬
                     ‫• בניית תרחישי הבדיקה לפני ביצוע הקוד‬
       ‫• תכנון ועיצוב הקוד מונחה בדיקות : ‪test driven - TDD‬‬
           ‫‪ (development‬חייב להיות חלק משיקולי הפיתוח)‬
‫• כתיבה נקיה והתמקדות בחשיבה בנקודות הרגישות של הקוד (‬
                                          ‫כולל תעוד הקוד)‬
                 ‫• כתיבת ה- ‪ J UNIT/N-UNIT‬לכל ה- ‪Class‬‬




                                ‫12‬
â€«×‘×¡×™×•× ×”×¤×™×ª×•×—â€¬




        ‫22‬
‫המפתח ×‘×¡×™×•× ×”×¤×™×ª×•×—â€¬
â€«×‘×¡×™×•× ×”×¤×™×ª×•×— של ‪Class‬‬

‫• ביצוע מבדקי היחידה של הקוד ×•×ª×¢×•×“× (×§×•×¤×¡× ×©×§×•×¤×” וקופס×‬
                                                     ‫שחורה)‬
 ‫• ביצוע ‪( CODE REVIEW‬עצמ×ית , על ידי בן זוג ×ו ×›×œ×™× )‬
‫• בדיקות רמת הכיסוי של הבדיקה ( בעזרת ×›×œ×™× â€“ כמובן עדיף)‬
                                  ‫• תעוד הנקודות הרגישות ....‬
                ‫• העברת הידע הנדרש והתמיכה לגוף הבדיקות‬
‫• ביצוע בדיקות ×ינטגרציה (עדיף בסביבה נפרדת) טר× ×”×¢×‘×¨ת‬
           ‫הגרסה לבדיקות (כולל בדיקות ‪ sanity‬×וטומטיות)‬
 ‫• להכניס לתהליכי בדיקות ×©×•×˜×¤×™× â€ªContinuous integration‬‬
  ‫(חשוב מ×וד לתהליכי הפיתוח שהביצוע של הבדיקות יתבצע‬
                          ‫בצור×” הדרגתית שוטפת ו×וטומטית)‬

                                 ‫42‬
‫בתיקון הב×ג‬




       ‫52‬
‫בתיקון הב×ג‬

                    ‫• שחזור הופעת הב××’ במסגרת ×”- ‪J-UNIT‬‬
             ‫• ביצוע חוזר של הבדיקות ( ×•×œ× ×¨×§ של מה שתיקנו)‬
          ‫• תעוד במערכת הב××’×™× ×©×œ מהות הב××’ ובעיקר תעוד‬
    ‫ההשפעה של התיקון על הקוד ותעוד הבדיקות שנעשו (××‬
                                 ‫צריך מעדכן ומוסיף ‪)J-UNIT‬‬
       ‫• העברת הידע לבודק כולל מפת ההשפעה ×”×פשרית של‬
       ‫התיקון ( ו×פשר לתת לו ×’× ×ž×©×•×‘ חיובי על גילוי הב××’ )‬
‫• ניסיון להבין מדוע נוצר הב××’ , ×יך ×”×™×” ×פשר למנוע ×ותו ו×יך‬
                              ‫×פשר למנוע ×ת הב××’×™× ×”×‘××™×‬



                                ‫62‬
â€«×•×œ×¡×™×•× ×›×œ ×חד יכול ....‬
‫×פקט 84 שעות‬
‫"×תה יכול להוביל סוס מת ×ל הנהר, ×בל ×תה ×œ× ×™×›×•×œ להכר×™×— ×ותו לשתות“‬
                ‫-- ר×ש העיר טורונטו, ×לן למפרט‬
?‫ש×לותâ¶Ä¬



      www.matrix-global.net




 29             www.matrix-global.net
Ad

Recommended

מצגת מגמות בבדיקות תוכנה כנס בדיקות 2011 ר× ×™×•× ×™×© ט×קט בדיקות
מצגת מגמות בבדיקות תוכנה כנס בדיקות 2011 ר× ×™×•× ×™×© ט×קט בדיקות
Ram Yonish
Ìý
Experitest Brochure
Experitest Brochure
Ram Yonish
Ìý
Qa 2010 Stki
Qa 2010 Stki
Ram Yonish
Ìý
Recruiting UX professionals (and other lessons) - Barak Danin
Recruiting UX professionals (and other lessons) - Barak Danin
Uniq UI
Ìý
×”×× ×ž×¢×¦×‘×™× ×¦×¨×™×›×™× ×œ×“×¢×ª תכנות - ×¢× ×”×¢×¨ות
×”×× ×ž×¢×¦×‘×™× ×¦×¨×™×›×™× ×œ×“×¢×ª תכנות - ×¢× ×”×¢×¨ות
sagishrieber
Ìý
Qa extreme2011 from classic lc to agile and the testers types of the future_b...
Qa extreme2011 from classic lc to agile and the testers types of the future_b...
Eran Kinsbrunner
Ìý
Introduction to Scrum - Hebrew
Introduction to Scrum - Hebrew
Dan-Eyal Gazit
Ìý
×בות טיפוס - ר×§×¢ ומתודולוגיה, לי×ור ×™×יר / נטקר×פט
×בות טיפוס - ר×§×¢ ומתודולוגיה, לי×ור ×™×יר / נטקר×פט
Uniq UI: Usability, UX, and UI design, consulting and training
Ìý
פייתון: הרצ××” 1
פייתון: הרצ××” 1
Igor Kleiner
Ìý
Scrum and XP from the Trenches in Hebrew
Scrum and XP from the Trenches in Hebrew
AgileSparks
Ìý
Scrum - The devil is in the details - Hebrew
Scrum - The devil is in the details - Hebrew
Dan-Eyal Gazit
Ìý
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי: פייתון: הרצ××” 2: 2017
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי: פייתון: הרצ××” 2: 2017
Igor Kleiner
Ìý
התוכניות שלי כל כך מושקעות - ××– למה ×× ×™ שוב מופתע?
התוכניות שלי כל כך מושקעות - ××– למה ×× ×™ שוב מופתע?
Ilan Kirschenbaum
Ìý
סדנת פרסונות ×¢×“×•× ×©×‘×™×˜ Uxi live 2011
סדנת פרסונות ×¢×“×•× ×©×‘×™×˜ Uxi live 2011
Ido Shavit
Ìý
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי: פייתון: הרצ××” 4: 2017
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי: פייתון: הרצ××” 4: 2017
Igor Kleiner
Ìý
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי: פייתון: הרצ××” 3: לול×ות
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי: פייתון: הרצ××” 3: לול×ות
Igor Kleiner
Ìý
C# .net lecture 5 win forms (2)
C# .net lecture 5 win forms (2)
Doron Raifman
Ìý
Agile sparks 2012 ux-vision - agile an ux - emenies or friends
Agile sparks 2012 ux-vision - agile an ux - emenies or friends
TAL FLORENTIN
Ìý
המועמד ש×בד: תכנון ×תר×™ קרייר×” מצליחי×, בר×§ דנין
המועמד ש×בד: תכנון ×תר×™ קרייר×” מצליחי×, בר×§ דנין
Uniq UI
Ìý
ר×יון הייטק פגישה 4 - programming interview lesson 4
ר×יון הייטק פגישה 4 - programming interview lesson 4
Igor Kleiner
Ìý
Managing Changes in Digital Products, Uniq UI, at UXI Live 2013 (Hebrew)
Managing Changes in Digital Products, Uniq UI, at UXI Live 2013 (Hebrew)
Uniq UI
Ìý
מדע × ×ª×•× ×™× - למידה מכונות
מדע × ×ª×•× ×™× - למידה מכונות
Igor Kleiner
Ìý
C# .net lecture 4 win forms
C# .net lecture 4 win forms
Doron Raifman
Ìý
Agile For Website Managers
Agile For Website Managers
Udi Salant
Ìý
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי פייתון הרצ××” 1 חלק 2 Python
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי פייתון הרצ××” 1 חלק 2 Python
Igor Kleiner
Ìý
פיתוח מוצר
פיתוח מוצר
Ady Bertschneider
Ìý
שיעור 9 ניהול השינוי תודות לטכנולוגיה זמינה
שיעור 9 ניהול השינוי תודות לטכנולוגיה זמינה
Amnon Elbee ×מנון ×לבי
Ìý
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי פייתון הרצ××” 2 חלק 2 Python
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי פייתון הרצ××” 2 חלק 2 Python
Igor Kleiner
Ìý
Visionbi Quality Gates
Visionbi Quality Gates
Ram Yonish
Ìý
201009 Regulation As Lever
201009 Regulation As Lever
Ram Yonish
Ìý

More Related Content

Similar to QA testing developer by Ziv (20)

פייתון: הרצ××” 1
פייתון: הרצ××” 1
Igor Kleiner
Ìý
Scrum and XP from the Trenches in Hebrew
Scrum and XP from the Trenches in Hebrew
AgileSparks
Ìý
Scrum - The devil is in the details - Hebrew
Scrum - The devil is in the details - Hebrew
Dan-Eyal Gazit
Ìý
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי: פייתון: הרצ××” 2: 2017
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי: פייתון: הרצ××” 2: 2017
Igor Kleiner
Ìý
התוכניות שלי כל כך מושקעות - ××– למה ×× ×™ שוב מופתע?
התוכניות שלי כל כך מושקעות - ××– למה ×× ×™ שוב מופתע?
Ilan Kirschenbaum
Ìý
סדנת פרסונות ×¢×“×•× ×©×‘×™×˜ Uxi live 2011
סדנת פרסונות ×¢×“×•× ×©×‘×™×˜ Uxi live 2011
Ido Shavit
Ìý
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי: פייתון: הרצ××” 4: 2017
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי: פייתון: הרצ××” 4: 2017
Igor Kleiner
Ìý
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי: פייתון: הרצ××” 3: לול×ות
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי: פייתון: הרצ××” 3: לול×ות
Igor Kleiner
Ìý
C# .net lecture 5 win forms (2)
C# .net lecture 5 win forms (2)
Doron Raifman
Ìý
Agile sparks 2012 ux-vision - agile an ux - emenies or friends
Agile sparks 2012 ux-vision - agile an ux - emenies or friends
TAL FLORENTIN
Ìý
המועמד ש×בד: תכנון ×תר×™ קרייר×” מצליחי×, בר×§ דנין
המועמד ש×בד: תכנון ×תר×™ קרייר×” מצליחי×, בר×§ דנין
Uniq UI
Ìý
ר×יון הייטק פגישה 4 - programming interview lesson 4
ר×יון הייטק פגישה 4 - programming interview lesson 4
Igor Kleiner
Ìý
Managing Changes in Digital Products, Uniq UI, at UXI Live 2013 (Hebrew)
Managing Changes in Digital Products, Uniq UI, at UXI Live 2013 (Hebrew)
Uniq UI
Ìý
מדע × ×ª×•× ×™× - למידה מכונות
מדע × ×ª×•× ×™× - למידה מכונות
Igor Kleiner
Ìý
C# .net lecture 4 win forms
C# .net lecture 4 win forms
Doron Raifman
Ìý
Agile For Website Managers
Agile For Website Managers
Udi Salant
Ìý
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי פייתון הרצ××” 1 חלק 2 Python
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי פייתון הרצ××” 1 חלק 2 Python
Igor Kleiner
Ìý
פיתוח מוצר
פיתוח מוצר
Ady Bertschneider
Ìý
שיעור 9 ניהול השינוי תודות לטכנולוגיה זמינה
שיעור 9 ניהול השינוי תודות לטכנולוגיה זמינה
Amnon Elbee ×מנון ×לבי
Ìý
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי פייתון הרצ××” 2 חלק 2 Python
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי פייתון הרצ××” 2 חלק 2 Python
Igor Kleiner
Ìý
פייתון: הרצ××” 1
פייתון: הרצ××” 1
Igor Kleiner
Ìý
Scrum and XP from the Trenches in Hebrew
Scrum and XP from the Trenches in Hebrew
AgileSparks
Ìý
Scrum - The devil is in the details - Hebrew
Scrum - The devil is in the details - Hebrew
Dan-Eyal Gazit
Ìý
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי: פייתון: הרצ××” 2: 2017
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי: פייתון: הרצ××” 2: 2017
Igor Kleiner
Ìý
התוכניות שלי כל כך מושקעות - ××– למה ×× ×™ שוב מופתע?
התוכניות שלי כל כך מושקעות - ××– למה ×× ×™ שוב מופתע?
Ilan Kirschenbaum
Ìý
סדנת פרסונות ×¢×“×•× ×©×‘×™×˜ Uxi live 2011
סדנת פרסונות ×¢×“×•× ×©×‘×™×˜ Uxi live 2011
Ido Shavit
Ìý
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי: פייתון: הרצ××” 4: 2017
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי: פייתון: הרצ××” 4: 2017
Igor Kleiner
Ìý
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי: פייתון: הרצ××” 3: לול×ות
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי: פייתון: הרצ××” 3: לול×ות
Igor Kleiner
Ìý
C# .net lecture 5 win forms (2)
C# .net lecture 5 win forms (2)
Doron Raifman
Ìý
Agile sparks 2012 ux-vision - agile an ux - emenies or friends
Agile sparks 2012 ux-vision - agile an ux - emenies or friends
TAL FLORENTIN
Ìý
המועמד ש×בד: תכנון ×תר×™ קרייר×” מצליחי×, בר×§ דנין
המועמד ש×בד: תכנון ×תר×™ קרייר×” מצליחי×, בר×§ דנין
Uniq UI
Ìý
ר×יון הייטק פגישה 4 - programming interview lesson 4
ר×יון הייטק פגישה 4 - programming interview lesson 4
Igor Kleiner
Ìý
Managing Changes in Digital Products, Uniq UI, at UXI Live 2013 (Hebrew)
Managing Changes in Digital Products, Uniq UI, at UXI Live 2013 (Hebrew)
Uniq UI
Ìý
מדע × ×ª×•× ×™× - למידה מכונות
מדע × ×ª×•× ×™× - למידה מכונות
Igor Kleiner
Ìý
C# .net lecture 4 win forms
C# .net lecture 4 win forms
Doron Raifman
Ìý
Agile For Website Managers
Agile For Website Managers
Udi Salant
Ìý
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי פייתון הרצ××” 1 חלק 2 Python
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי פייתון הרצ××” 1 חלק 2 Python
Igor Kleiner
Ìý
פיתוח מוצר
פיתוח מוצר
Ady Bertschneider
Ìý
שיעור 9 ניהול השינוי תודות לטכנולוגיה זמינה
שיעור 9 ניהול השינוי תודות לטכנולוגיה זמינה
Amnon Elbee ×מנון ×לבי
Ìý
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי פייתון הרצ××” 2 חלק 2 Python
×ž×‘×•× ×œ×ª×›× ×•×ª מדעי פייתון הרצ××” 2 חלק 2 Python
Igor Kleiner
Ìý

More from Ram Yonish (17)

Visionbi Quality Gates
Visionbi Quality Gates
Ram Yonish
Ìý
201009 Regulation As Lever
201009 Regulation As Lever
Ram Yonish
Ìý
The Effect Of Globalization On Israel Testing Market
The Effect Of Globalization On Israel Testing Market
Ram Yonish
Ìý
How to manage your testing automation project ttm methodology
How to manage your testing automation project ttm methodology
Ram Yonish
Ìý
Vgile Development Lc By Ram Yonish
Vgile Development Lc By Ram Yonish
Ram Yonish
Ìý
ROI for testing
ROI for testing
Ram Yonish
Ìý
Qc10 Whats New
Qc10 Whats New
Ram Yonish
Ìý
A Successful Improvement Process With Measurable Results
A Successful Improvement Process With Measurable Results
Ram Yonish
Ìý
A successful improvement process with measurable results
A successful improvement process with measurable results
Ram Yonish
Ìý
R&d maturity
R&d maturity
Ram Yonish
Ìý
R&D Maturity
R&D Maturity
Ram Yonish
Ìý
Trends2010
Trends2010
Ram Yonish
Ìý
Qa Measurements 2009 Comverse Upload
Qa Measurements 2009 Comverse Upload
Ram Yonish
Ìý
Roi And Testing Metrics Tact Testing
Ram Yonish
Ìý
Near Shore Testing - Israel
Near Shore Testing - Israel
Ram Yonish
Ìý
trends and buzzwords for SW tetsing
trends and buzzwords for SW tetsing
Ram Yonish
Ìý
ROI for testing
ROI for testing
Ram Yonish
Ìý
Visionbi Quality Gates
Visionbi Quality Gates
Ram Yonish
Ìý
201009 Regulation As Lever
201009 Regulation As Lever
Ram Yonish
Ìý
The Effect Of Globalization On Israel Testing Market
The Effect Of Globalization On Israel Testing Market
Ram Yonish
Ìý
How to manage your testing automation project ttm methodology
How to manage your testing automation project ttm methodology
Ram Yonish
Ìý
Vgile Development Lc By Ram Yonish
Vgile Development Lc By Ram Yonish
Ram Yonish
Ìý
ROI for testing
ROI for testing
Ram Yonish
Ìý
Qc10 Whats New
Qc10 Whats New
Ram Yonish
Ìý
A Successful Improvement Process With Measurable Results
A Successful Improvement Process With Measurable Results
Ram Yonish
Ìý
A successful improvement process with measurable results
A successful improvement process with measurable results
Ram Yonish
Ìý
R&d maturity
R&d maturity
Ram Yonish
Ìý
R&D Maturity
R&D Maturity
Ram Yonish
Ìý
Trends2010
Trends2010
Ram Yonish
Ìý
Qa Measurements 2009 Comverse Upload
Qa Measurements 2009 Comverse Upload
Ram Yonish
Ìý
Roi And Testing Metrics Tact Testing
Ram Yonish
Ìý
Near Shore Testing - Israel
Near Shore Testing - Israel
Ram Yonish
Ìý
trends and buzzwords for SW tetsing
trends and buzzwords for SW tetsing
Ram Yonish
Ìý
ROI for testing
ROI for testing
Ram Yonish
Ìý
Ad

QA testing developer by Ziv

  • 1. ‫×יכות , בדיקות ,הצלחה והגיגי×‬ ‫...‬ ‫מה ×× ×™ צריך לעשות למען ×”×יכות של‬ ‫הקוד שלי ?‬ ‫‪ziv@johnbryce.co.il‬‬ ‫ט×קט - 0006419-80‬ ‫‪www.tact.co.il‬‬ ‫1‬
  • 2. ‫ר×•×¦×™× ×œ×”×’×™×¢ רחוק‬ ‫×בל צר×™×›×™× ×œ×”×–×”×¨ ....‬
  • 3. ‫מטרות ההרצ×ה‬ ‫• לעלות ×ת המודעות לחשיבות של ×יכות הקוד ובעיקר‬ ‫לעלות ×ת המודעות לחשיבות של תפקיד המפתח‬ ‫ביצירת קוד ×יכותי‬ ‫• הצגת מספר ×”×’×™×’×™× ×¢×œ תפיסת ×”×¢×•×œ× ×•×”×’×™×©×” של‬ ‫המפתח בפיתוח הקוד והצגת מספר טכניקות ודרכי‬ ‫פעולה לייצר קוד ×יכותי יותר‬ ‫3‬
  • 4. ‫מה קור×” למוצר ×©×œ× ×“×•×‘××’ מספיק‬
  • 5. ‫די דיינו די דיינו‬ ‫×ילו היו ר×§ ×ž×‘×§×©×™× ×ž×תנו לכתוב יותר קוד – דיינו‬ ‫•‬ ‫×ילו היו ר×§ ×ž×‘×§×©×™× ×ž×תנו לכתוב בטכנולוגיות חדשות – דיינו‬ ‫•‬ ‫×ילו היו ר×§ ×ž×‘×§×©×™× ×ž×תנו לכתוב מערכות גדולות יותר – דיינו‬ ‫•‬ ‫×ילו היו ר×§ ×ž×‘×§×©×™× ×ž×תנו לכתוב מערכות מורכבות יותר -דיינו‬ ‫•‬ ‫×ילו היו ר×§ ×ž×‘×§×©×™× ×ž×תנו לתקן ולעשות ×©×™× ×•×™×™× ×›×œ הזמן – דיינו‬ ‫•‬ ‫×ילו היו ר×§ ×ž×‘×§×©×™× ×ž×תנו לכתוב מערכות בשלל טכנולוגיות – דיינו‬ ‫•‬ ‫×ילו היו ר×§ ×ž×‘×§×©×™× ×ž×תנו לתעד ×ת המערכות – דיינו‬ ‫•‬ ‫×ילו היו ר×§ ×ž×‘×§×©×™× ×ž×תנו לבדוק ×ת הקוד ש×נחנו ×›×•×ª×‘×™× â€“ דיינו‬ ‫•‬ ‫×ילו היו ר×§ ×ž×‘×§×©×™× ×ž×תנו ×©×œ× ×™×”×™×• במערכות ב××’×™× â€“ דיינו‬ ‫•‬ ‫×ילו היו ר×§ ×ž×‘×§×©×™× ×ž×תנו שהמערכות יעבדו ×‘×‘×™×¦×•×¢×™× ×ופיטמ××œ×™× â€“ דיינו‬ ‫•‬ ‫×ילו ר×§ היו ×ž×‘×§×©×™× ×ž×תנו שהמערכות יהיו ידידותיות למשתמש – דיינו‬ ‫•‬ ‫×ילו ר×§ היו ×ž×‘×§×©×™× ×ž×תנו שהמערכות ×œ× ×™×¤×œ×• וש×× ×”× ×™×¤×œ×• ××– שית×וששו מהר –‬ ‫•‬ ‫דיינו‬ ‫די דייינו , די דיינו , דיינו דיינו ......‬ ‫•‬ ‫5‬
  • 6. ‫שלושת חוקי הב××’×™×‬ ‫• בכל תוכנית יש ב×ג‬ ‫• בין כל ב××’ לב××’ יש עוד ב×ג‬ ‫• ב××’ ×ž×‘×™× ×—×‘×¨‬ ‫• והחוק ×”×›×™ חשוב (הדיבר הרביעי) : היציר×” של הב××’×™× ×יננה‬ ‫×קר×ית, ××™× × ×” מקרית ו××™× ×” "מכת מדינה משמיי×". מדובר‬ ‫בתופעה ש×פשר ×œ×”×œ×—× ×‘×” ×’× ×‘×¨מת המניעה ×•×’× ×‘×¨מת‬ ‫הגילוי והורדת עלות הנזק‬ ‫6‬
  • 7. ‫הכל ×ž×©×ž×™×™× - ומה שצריך לקרות יקרה‬
  • 8. ‫מספר ×”×’×™×’×™× ×¢×œ החוק הרביעי‬ ‫• ל×ורך ×”×©× ×™× × ×›× ×¡×• מתודולוגיות ושיטות עבודה במקביל לעליה בסיבוכיות‬ ‫, בגודל ובמורכבות של המערכות והטכנולוגיות‬ ‫• מי ×©×œ× ×”×•×œ×š קדימה ... הולך ×חור×” ....‬ ‫• ולמרות העליה של כל הפרמטר×™× ... ×נחנו רו××™× ×©×™×¤×•×¨ במגמת של‬ ‫×יכות הקוד והתוכנה ( ×œ× ×ž×¡×¤×™×§ עדיין , ×בל יש מגמת שיפור ברור×”)‬ ‫• במחקר על המקומות ×‘×”× × ×ž×¦××™× ×”×‘××’×™× ×”×¡×ª×‘×¨ שלמרות שיצירת‬ ‫הב××’ נתפסת "כטעות ×נוש" יש תבניות פעולה דומות בין כל הב××’×™× (‬ ‫ש×לה למחשבה : ×יכן נמצ××™× ×¨ב הב××’×™× ×‘×ª×•×›× ×” ?)‬ ‫• המסקנה ניתן ×œ×”×œ×—× ×‘×›×ž×•×ª וב×יכות של הב××’×™× ×•× ×™×ª×Ÿ להוריד ×ת‬ ‫העלות של יצירת הב××’×™× ×‘×ª×•×›× ×” .....‬ ‫8‬
  • 9. ‫כלכלת ×”×יכות והבדיקות‬ ‫• ניתן להוריד ×ת עלות הכשל הנובעת מהב××’×™× ×©×נחנו‬ ‫מייצר×™×‬ ‫• עלות המניעה – זולה בסדר גודל מעלות התיקון‬ ‫• עלות הגילוי ×”×ž×•×§×“× â€“ המפתח לשיפור בעלות התיקון‬ ‫9‬
  • 10. ‫עלות התקלה ו××™ החשיבה מר×ש‬
  • 11. ‫זיהוי ותיקון תקלות בשלב ×ž×•×§×“× ×‘×ª×”×œ×™×š הפיתוח‬ ‫‪back‬‬ ‫11‬
  • 12. ‫הצד השני של גר×£ בוה×‬ ‫• עלות התיקון ×œ× ×¨×§ עולה ××œ× ×’× ×יכות התיקון יורדת ככל‬ ‫שנגלה מ×וחר יותר ×ת הטעות .....‬ ‫• הפרדוקס של גר×£ ×‘×•×”× ×›×©×”×•× ×ž×’×™×¢ לשולחנו של המפתח :‬ ‫• ההשקעה בגילוי ובבדיקות נעשית בעיקר בסוף ( מתי שיש‬ ‫לנו ×ת העלות היקר×” ביותר ו×ת ×”×יכות הגרועה ביותר‬ ‫לתיקון)‬ ‫• התובנה : צריך לעשות יותר בדיקות ויותר בקר×” בשלבי×‬ â€«×ž×•×§×“×ž×™× ×©×œ הפיתוח ( קר×™ ב×חריות המפתח)‬ ‫21‬
  • 13. ‫תפיסת גוף הבדיקות על ידי הפיתוח – הטעות הקל×סית‬ ‫• בשביל מה יש גוף בדיקות מר×›×–×™ ובודק תוכנה בפרויקט שלי ?‬ ‫• ×©×”× ×™×’×œ×• ×ת הב××’×™× ... ×× ×™ עסוק ביצירת הקוד ×”×‘× ×©×œ×™â€¬ ‫(והב××’×™× ×”×—×“×©×™× ×©×œ×™)‬ ‫• ×–×” ×œ× ×‘××’ ×–×” פיצ'ר‬ ‫• ×”× ×ž×˜×¨×™×“×™× ×ותי כל הזמן בש×לות .... בשביל מה ×”×‬ â€«×ž×§×‘×œ×™× ×›×¡×£ ... בשביל להפר×™×¢ לי‬ ‫• התוצ××” – גופי הבדיקות ×ž×§×‘×œ×™× ×”×¨בה יותר ב××’×™× ×•×œ×‬ â€«×ž×©×§×™×¢×™× ×ת הזמן בבדיקות הסופיות וה×ינטגרטיביות‬ ‫(המטר×” העיקרית שלה×)‬ ‫31‬
  • 14. ‫למה מתכוון המתכנת ×›×©×”×•× ×ומר...‬ ‫בלתי ×פשר×™ בעליל – ×ין לי מושג ×יך ×¢×•×©×™× ×ת ×–×”.‬ ‫בלתי ×פשר×™ - ×ין לי כוח לעשות ×ת ×–×”.‬ ‫קשה – ×צטרך לקר×•× ×ª×™×¢×•×“.‬ ‫ב×ופן כללי, ×פשר×™ – ר×§ ×תמול הורדתי מ×ינטרנט ספר×™×” שפותרת ×ת הבעיה ×”×–×ת.‬ ‫עובד – מתקמפל.‬ ‫×× ×™ מלטש ×ת ×–×” – ×œ× ×ž×ª×§×ž×¤×œ.‬ ‫בודק על בעיות ×œ×“×•×’×ž× â€“ מחפש ×ž×¦×‘×™× ×©×‘×”× ×”×ª×•×›× ×™×ª ×œ× ×¢×¤×”.‬ ‫סביר - בהסתברות של %5.1‬ ‫×נו ×ž× ×¡×™× ×›×ž×” גישות שונות – עדיין ×ין לנו מושג מה לעשות.‬ ‫×נו ×ž×›×™× ×™× ×“×•"×— ×ž×¡×›× ×¢×œ הגישה החדשה שלנו לפתרון הבעיה- כר×’×¢ גייסנו 3 ×¡×˜×•×“× ×˜×™× ×©× ×” ×'.‬ ‫×נו ער×‘×™× ×©×”×œ×§×•×— ×™×”×™×” מרוצה – ×נחנו כל כך ×œ× ×¢×•×ž×“×™× ×‘ ‪ ,Deadline‬שהלקוח ×™×”×™×” מ×ושר כשיקבל לפחות משהו.‬ ‫בדיקות קבלה עברו בסדר – ×œ× ×¦×™×¤×™× ×• שזה יעבוד.‬ ‫צריך לשנות ×ת כל הגישה – הבן ××“× ×”×™×—×™×“ שהבין בזה לפחות משהו, כר×’×¢ התפטר.‬ ‫כן, כן, נבדוק מה קור×” ×¢× ×–×” – שכחו מזה יש לנו ×’× ×›×›×” מספיק על ×” ר×ש.‬ ‫תחתמו בבקשה על ×”×פיון – בו×ו נחלק ×חריות לכישלון.‬ â€«×‘× ×•× ×©×ž×¢ ×ת ×“×¢×ª×›× â€“ ×נו ×™×›×•×œ×™× ×œ×©×ž×•×¢ ×ת דעתכ×, כמובן, כל עוד מה ש××ª× ×ומר×™× ×œ× ×ž×©×¤×™×¢ על מה שכבר עשינו.‬ â€«×©× ×™× ×©×œ פיתוח - תוכנית ×חת בסוף התחילה לעבוד.‬ ‫×נו ×¢×•×©×™× ×ת ×–×” לפי סטנדרטי×! – ×נחנו תמיד ×¢×•×©×™× ×›×›×”!‬ ‫יש הרבה גור×ž×™× ×©×ž×©×¤×™×¢×™× ×¢×œ ×–×” – תשכח מלקבל תשובה נורמ×לית.‬ ‫×נו על סף פריצת דרך – ×‘×¤×¢× ×”×חרונה התוכנית כמעט עבדה!‬ ‫יש לתוכנה תמיכה מל××” – ×נו ×ž×‘×˜×™×—×™× ×œ×©×œ×•×— עוד גרסה, ×× ×”×§×•×“×ž×ª ×œ× ×ª×¢×‘×•×“.‬ ‫יש לתוכנה תמיכה חלקית – ×× ×ž×©×”×• יקרוס, ×œ× ×™×”×™×” ×œ×›× ×¢× ×ž×™ לדבר.‬ ‫הפרויקט צועד לקר×ת סיומו בצעדי ×¢× ×§ – ×נו ×ž×§×•×•×™× ×©×¤×¨ויקט של 62 שבועות ×™×¡×ª×™×™× ×œ×§×¨×ת סוף השבוע ×” 84.‬ ‫התוכנה עומדת בתקני ×יכות – התוכנה התקמפלה בסדר.‬ ‫41‬
  • 15. ‫שינוי בגישה של ×”×ž×¤×ª×—×™× ×›×œ×¤×™ הבדיקות‬ ‫•הפתרון : הבנה של המפתח שהחלק‬ ‫החשוב של ×יכות הקוד × ×ž×¦× ×צלו. המטרה‬ ‫××™× × ×” ×œ×¡×™×™× ×ת הקוד בזמן ××œ× ×œ×¡×™×™× ×ת‬ ‫קוד ×יכותי בזמן ... וזה הרבה יותר קשה‬ ‫51‬
  • 16. ‫ה×מונה ביכולת שלנו מייצרת ×ת ×”×פקטיביות וה×יכות‬
  • 17. ‫מה ×תה יכול לעשות למען המדינה והמוצר , מפתח יקר שלי ...‬ ‫• בתהליך הפיתוח‬ ‫• ×‘×¡×™×•× ×”×¤×™×ª×•×—â€¬ ‫• בתיקון הב×ג‬ ‫71‬
  • 19. ‫על ×רבעה ×‘× ×™× ×“×™×‘×¨×” התורה‬ ‫• ×—×›× - לעשות ×ת הדבר הנכון , בדרך הנכונה‬ ‫• ×ª× - לעשות ×ת הדבר הנכון , בדרך ×”×œ× × ×›×•× ×”â€¬ ‫• ×–×” ש×יננו יודע לש×ול - לעשות ×ת הדבר ×”×œ× × ×›×•×Ÿ בדרך‬ ‫נכונה‬ ‫• רשע - לעשות ×ת הדבר ×”×œ× × ×›×•×Ÿ , בדרך ×”×œ× × ×›×•× ×”â€¬ ‫ש×לה מעניינת : מי הטיפוס הפופל×ר×™ בקרב ×”×ž×¤×ª×—×™× ?‬ ‫והמסקנה ?‬ ‫91‬
  • 21. ‫בתהליך הפיתוח של ‪Class‬‬ ‫• הבנת הדרישות ×•×”×ž×ž×©×§×™× (כולל עקרון העקיבות והשלמות)‬ ‫• בניית תרחישי הבדיקה לפני ביצוע הקוד‬ ‫• תכנון ועיצוב הקוד מונחה בדיקות : ‪test driven - TDD‬‬ ‫‪ (development‬חייב להיות חלק משיקולי הפיתוח)‬ ‫• כתיבה × ×§×™×” והתמקדות בחשיבה בנקודות הרגישות של הקוד (‬ ‫כולל תעוד הקוד)‬ ‫• כתיבת ×”- ‪ J UNIT/N-UNIT‬לכל ×”- ‪Class‬‬ ‫12‬
  • 24. â€«×‘×¡×™×•× ×”×¤×™×ª×•×— של ‪Class‬‬ ‫• ביצוע מבדקי היחידה של הקוד ×•×ª×¢×•×“× (×§×•×¤×¡× ×©×§×•×¤×” וקופס×‬ ‫שחור×”)‬ ‫• ביצוע ‪( CODE REVIEW‬עצמ×ית , על ידי בן זוג ×ו ×›×œ×™× )‬ ‫• בדיקות רמת הכיסוי של הבדיקה ( בעזרת ×›×œ×™× â€“ כמובן עדיף)‬ ‫• תעוד הנקודות הרגישות ....‬ ‫• העברת הידע הנדרש והתמיכה לגוף הבדיקות‬ ‫• ביצוע בדיקות ×ינטגרציה (עדיף בסביבה נפרדת) טר× ×”×¢×‘×¨ת‬ ‫הגרסה לבדיקות (כולל בדיקות ‪ sanity‬×וטומטיות)‬ ‫• להכניס לתהליכי בדיקות ×©×•×˜×¤×™× â€ªContinuous integration‬‬ ‫(חשוב מ×וד לתהליכי הפיתוח שהביצוע של הבדיקות יתבצע‬ ‫בצור×” הדרגתית שוטפת ו×וטומטית)‬ ‫42‬
  • 26. ‫בתיקון הב×ג‬ ‫• שחזור הופעת הב××’ במסגרת ×”- ‪J-UNIT‬‬ ‫• ביצוע חוזר של הבדיקות ( ×•×œ× ×¨×§ של מה שתיקנו)‬ ‫• תעוד במערכת הב××’×™× ×©×œ מהות הב××’ ובעיקר תעוד‬ ‫ההשפעה של התיקון על הקוד ותעוד הבדיקות שנעשו (××‬ ‫צריך מעדכן ומוסיף ‪)J-UNIT‬‬ ‫• העברת הידע לבודק כולל מפת ההשפעה ×”×פשרית של‬ ‫התיקון ( ו×פשר לתת לו ×’× ×ž×©×•×‘ חיובי על גילוי הב××’ )‬ ‫• ניסיון להבין מדוע נוצר הב××’ , ×יך ×”×™×” ×פשר למנוע ×ותו ו×יך‬ ‫×פשר למנוע ×ת הב××’×™× ×”×‘××™×‬ ‫62‬
  • 28. ‫×פקט 84 שעות‬ ‫"×תה יכול להוביל סוס מת ×ל הנהר, ×בל ×תה ×œ× ×™×›×•×œ להכר×™×— ×ותו לשתות“‬ ‫-- ר×ש העיר טורונטו, ×לן למפרט‬
  • 29. ?‫ש×לותâ¶Ä¬ www.matrix-global.net 29 www.matrix-global.net