How to create a good bug report/he

From Gramps


Tango-Dialog-information.png
לפני יצירת דוח תקל...

ניסוח דוח תקל עשוי לדרוש עבודת מחקר ומאמץ כתיבה לא מבוטל. כדי לחסוך עבודה מיותרת:

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


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

דוחות תקל ניתן להגיש במערכת ניהול התקלים אליו ניתן להגיע בקישור הבא: https://gramps-project.org/bugs/

יצירת מסד־נתונים לבדיקה

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

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

צעדים לייצירת מסד־נתונים לבדיקה:

  1. (ריק) פתיחת מנהל אילנות־היוחסין ויצירת מסד־נתונים חדש.
  2. לייבא את ערכת נתוני־הדוגמה אל מסד־הנתונים החדש והריק. נתוני־הדוגמה נמצאים בקובץ בשם example/gramps/data.gramps. המיקום המדויק של מחיתה זו תלוי במקום שבו תוכנת גרמפס הותקנה במערכת; הקישור הקודם כולל פרטים אלו.

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

שחזור התקל

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

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

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

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

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

תיעוד הצעדים במהלך שחזור התקל

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

יש לציין אילו אנשים, משפחות ועוד משמשים בתהליך, באמצעות ציון ה־Gramps ID שלהם.

ניתן להשתמש ביכולת "צילום מסך" של מערכת ההפעלה כדי לצלם חלונות שעשויות לסייע בהסבר והמחשת הבעיה.

להלן דוגמת דוח תקל שכולל תיעוד כל הצעדים שננקטו כדי לשחזר תקל:

  1. ליצור מסד־נתונים חדש ולייבא את ערכת נתוני־הדוגמה "example"
  2. ללחוץ על לשונית מצג אנשים
  3. לבחור ב־Martin Smith (Gramps ID I39)
  4. ללחוץ על לשונית מצג קשרי־קרבה
  5. ללחוץ על לחצן העריכה עבור Hanna Smith (Gramps ID I11)
  6. בעורך האדם של Hanna Smith, להקיש הקשת עכבר כפולה על אירוע הלידה
  7. בעורך האירוע, לשנות את שנת הלידה מ־1821 ל־1820
  8. ללחוץ על 'בסדר' בעורך האירוע
  9. ללחוץ על 'בסדר' בעורך האדם
  10. גרמפס קורס ועל המסך מוצגת השגיאה הבאה:
 Traceback (most recent call last):
 File "/home/gramps2/trunk/src/DisplayTabs/_EmbeddedList.py", line 440, in rebuild
   self.model = self.build_model(self.get_data(), self.dbstate.db)
 File "/home/gramps2/trunk/src/DisplayTabs/_ChildModel.py", line 61, in __init__
   child.get_gramps_id(),
 AttributeError: 'NoneType' object has no attribute 'get_gramps_id'

למידע נוסף