29
1 איכות, בדיקות, הצלחה והגיגים... מה אני צריך לעשות למען האיכות של הקוד שלי? [email protected] טאקט- 08-9146000 www.tact.co.il

QA testing developer by Ziv

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: QA testing developer by Ziv

1

... הצלחה והגיגים ,בדיקות , איכות

מה אני צריך לעשות למען האיכות של

? הקוד שלי [email protected]

08-9146000 -טאקט

www.tact.co.il

Page 2: QA testing developer by Ziv

רוצים להגיע רחוק .... אבל צריכים להזהר

Page 3: QA testing developer by Ziv

מטרות ההרצאה

לעלות את המודעות לחשיבות של איכות הקוד ובעיקר •

לעלות את המודעות לחשיבות של תפקיד המפתח

ביצירת קוד איכותי

הצגת מספר הגיגים על תפיסת העולם והגישה של •

המפתח בפיתוח הקוד והצגת מספר טכניקות ודרכי

פעולה לייצר קוד איכותי יותר

3

Page 4: QA testing developer by Ziv

מה קורה למוצר שלא דובאג מספיק

Page 5: QA testing developer by Ziv

די דיינו די דיינו

דיינו –אילו היו רק מבקשים מאתנו לכתוב יותר קוד •

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

דיינו –אילו היו רק מבקשים מאתנו לכתוב מערכות גדולות יותר •

דיינו -אילו היו רק מבקשים מאתנו לכתוב מערכות מורכבות יותר •

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

דיינו –אילו היו רק מבקשים מאתנו לכתוב מערכות בשלל טכנולוגיות •

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

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

דיינו –אילו היו רק מבקשים מאתנו שלא יהיו במערכות באגים •

דיינו –אילו היו רק מבקשים מאתנו שהמערכות יעבדו בביצועים אופיטמאלים •

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

–אילו רק היו מבקשים מאתנו שהמערכות לא יפלו ושאם הם יפלו אז שיתאוששו מהר •

דיינו

...... דיינו דיינו , די דיינו , די דייינו •

5

Page 6: QA testing developer by Ziv

שלושת חוקי הבאגים

בכל תוכנית יש באג •

בין כל באג לבאג יש עוד באג •

באג מביא חבר •

היצירה של הבאגים איננה ( : הדיבר הרביעי)והחוק הכי חשוב •

מדובר ". מכת מדינה משמיים"איננה מקרית ואינה , אקראית

בתופעה שאפשר להלחם בה גם ברמת המניעה וגם ברמת

הגילוי והורדת עלות הנזק

6

Page 7: QA testing developer by Ziv

ומה שצריך לקרות יקרה -הכל משמיים

Page 8: QA testing developer by Ziv

מספר הגיגים על החוק הרביעי

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

בגודל ובמורכבות של המערכות והטכנולוגיות ,

.... הולך אחורה ... מי שלא הולך קדימה •

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

( אבל יש מגמת שיפור ברורה, לא מספיק עדיין ) איכות הקוד והתוכנה

במחקר על המקומות בהם נמצאים הבאגים הסתבר שלמרות שיצירת •

) יש תבניות פעולה דומות בין כל הבאגים " כטעות אנוש"הבאג נתפסת

( ?איכן נמצאים רב הבאגים בתוכנה : שאלה למחשבה

המסקנה ניתן להלחם בכמות ובאיכות של הבאגים וניתן להוריד את •

..... העלות של יצירת הבאגים בתוכנה

8

Page 9: QA testing developer by Ziv

כלכלת האיכות והבדיקות

ניתן להוריד את עלות הכשל הנובעת מהבאגים שאנחנו •

מייצרים

זולה בסדר גודל מעלות התיקון –עלות המניעה •

המפתח לשיפור בעלות התיקון –עלות הגילוי המוקדם •

9

Page 10: QA testing developer by Ziv

עלות התקלה ואי החשיבה מראש

Page 11: QA testing developer by Ziv

זיהוי ותיקון תקלות בשלב מוקדם בתהליך הפיתוח

11

back

Page 12: QA testing developer by Ziv

הצד השני של גרף בוהם

עלות התיקון לא רק עולה אלא גם איכות התיקון יורדת ככל •

..... שנגלה מאוחר יותר את הטעות

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

מתי שיש ) ההשקעה בגילוי ובבדיקות נעשית בעיקר בסוף •

לנו את העלות היקרה ביותר ואת האיכות הגרועה ביותר

( לתיקון

צריך לעשות יותר בדיקות ויותר בקרה בשלבים : התובנה •

( קרי באחריות המפתח) מוקדמים של הפיתוח

12

Page 13: QA testing developer by Ziv

הטעות הקלאסית –תפיסת גוף הבדיקות על ידי הפיתוח

? בשביל מה יש גוף בדיקות מרכזי ובודק תוכנה בפרויקט שלי •

אני עסוק ביצירת הקוד הבא שלי ... שהם יגלו את הבאגים •

( והבאגים החדשים שלי)

ר 'זה לא באג זה פיצ•

בשביל מה הם .... הם מטרידים אותי כל הזמן בשאלות •

בשביל להפריע לי ... מקבלים כסף

גופי הבדיקות מקבלים הרבה יותר באגים ולא –התוצאה •

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

( המטרה העיקרית שלהם)

13

Page 14: QA testing developer by Ziv

14

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

.אין לי כוח לעשות את זה - אפשרי בלתי

. אצטרך לקרוא תיעוד –קשה

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

.מתקמפל –עובד

.לא מתקמפל –אני מלטש את זה

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

1.5%בהסתברות של -סביר

.עדיין אין לנו מושג מה לעשות –אנו מנסים כמה גישות שונות

.'סטודנטים שנה א 3כרגע גייסנו -ח מסכם על הגישה החדשה שלנו לפתרון הבעיה"אנו מכינים דו

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

.לא ציפינו שזה יעבוד –בדיקות קבלה עברו בסדר

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

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

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

.כל עוד מה שאתם אומרים לא משפיע על מה שכבר עשינו, כמובן, אנו יכולים לשמוע את דעתכם –בא ונשמע את דעתכם

.תוכנית אחת בסוף התחילה לעבוד -שנים של פיתוח

! אנחנו תמיד עושים ככה –! אנו עושים את זה לפי סטנדרטים

.תשכח מלקבל תשובה נורמאלית –יש הרבה גורמים שמשפיעים על זה

! בפעם האחרונה התוכנית כמעט עבדה –אנו על סף פריצת דרך

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

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

.48שבועות יסתיים לקראת סוף השבוע ה 26אנו מקווים שפרויקט של –הפרויקט צועד לקראת סיומו בצעדי ענק

.התוכנה התקמפלה בסדר –התוכנה עומדת בתקני איכות

Page 15: QA testing developer by Ziv

שינוי בגישה של המפתחים כלפי הבדיקות

הבנה של המפתח שהחלק : הפתרון •

המטרה . החשוב של איכות הקוד נמצא אצלו

איננה לסיים את הקוד בזמן אלא לסיים את

וזה הרבה יותר קשה ... קוד איכותי בזמן

15

Page 16: QA testing developer by Ziv

האמונה ביכולת שלנו מייצרת את האפקטיביות והאיכות

Page 17: QA testing developer by Ziv

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

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

בסיום הפיתוח •

בתיקון הבאג •

17

Page 18: QA testing developer by Ziv

18

בתהליך הפיתוח

Page 19: QA testing developer by Ziv

על ארבעה בנים דיברה התורה

בדרך הנכונה , לעשות את הדבר הנכון -חכם •

בדרך הלא נכונה , לעשות את הדבר הנכון -תם •

לעשות את הדבר הלא נכון בדרך -זה שאיננו יודע לשאול •

נכונה

בדרך הלא נכונה, לעשות את הדבר הלא נכון -רשע •

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

? והמסקנה

19

Page 20: QA testing developer by Ziv

..... הכוונות הטובות לא מספיקות

Page 21: QA testing developer by Ziv

Classבתהליך הפיתוח של

( כולל עקרון העקיבות והשלמות)הבנת הדרישות והממשקים •

בניית תרחישי הבדיקה לפני ביצוע הקוד •

TDD-test driven :תכנון ועיצוב הקוד מונחה בדיקות•

development (חייב להיות חלק משיקולי הפיתוח )

) כתיבה נקיה והתמקדות בחשיבה בנקודות הרגישות של הקוד •

( כולל תעוד הקוד

Class -לכל ה J UNIT/N-UNIT -כתיבת ה•

21

Page 22: QA testing developer by Ziv

22

בסיום הפיתוח

Page 23: QA testing developer by Ziv

המפתח בסיום הפיתוח

Page 24: QA testing developer by Ziv

Classשל בסיום הפיתוח

קופסא שקופה וקופסא )ביצוע מבדקי היחידה של הקוד ותעודם •

(שחורה

( או כלים על ידי בן זוג , עצמאית ) CODE REVIEWביצוע •

(כמובן עדיף –בעזרת כלים ) בדיקות רמת הכיסוי של הבדיקה •

.... תעוד הנקודות הרגישות •

העברת הידע הנדרש והתמיכה לגוף הבדיקות•

טרם העברת ( עדיף בסביבה נפרדת)ביצוע בדיקות אינטגרציה •

(אוטומטיות sanityכולל בדיקות )הגרסה לבדיקות

Continuous integrationלהכניס לתהליכי בדיקות שוטפים •

חשוב מאוד לתהליכי הפיתוח שהביצוע של הבדיקות יתבצע )

(בצורה הדרגתית שוטפת ואוטומטית

24

Page 25: QA testing developer by Ziv

25

בתיקון הבאג

Page 26: QA testing developer by Ziv

בתיקון הבאג

J-UNIT -שחזור הופעת הבאג במסגרת ה•

(ולא רק של מה שתיקנו) ביצוע חוזר של הבדיקות •

תעוד במערכת הבאגים של מהות הבאג ובעיקר תעוד •

אם )ההשפעה של התיקון על הקוד ותעוד הבדיקות שנעשו

(J-UNITצריך מעדכן ומוסיף

העברת הידע לבודק כולל מפת ההשפעה האפשרית של •

( ואפשר לתת לו גם משוב חיובי על גילוי הבאג ) התיקון

איך היה אפשר למנוע אותו ואיך , ניסיון להבין מדוע נוצר הבאג •

אפשר למנוע את הבאגים הבאים

26

Page 27: QA testing developer by Ziv

.... ולסיום כל אחד יכול

Page 28: QA testing developer by Ziv

שעות 48אפקט

“אבל אתה לא יכול להכריח אותו לשתות, אתה יכול להוביל סוס מת אל הנהר"

אלן למפרט, ראש העיר טורונטו --

Page 29: QA testing developer by Ziv

www.matrix-global.net 29

www.matrix-global.net

?שאלות