क्या मुझे एक बग रिकॉर्ड करना चाहिए जिसे मैंने खोजा और पैच किया?


68

मुझे लगता है कि यह एक सामान्य स्थिति है: मैं कुछ कोड का परीक्षण करता हूं, एक बग की खोज करता हूं, इसे ठीक करता हूं और रिपॉजिटरी को बग फिक्स करता हूं। यह मानते हुए कि बहुत से लोग इस परियोजना पर काम करते हैं, क्या मुझे पहले एक बग रिपोर्ट तैयार करनी चाहिए, इसे खुद को सौंपना चाहिए, और इसे प्रतिबद्ध संदेश में संदर्भित करना चाहिए (जैसे "फिक्स बग # XYZ। बग एक्स और वाई के कारण था। क्यू और आर ")? वैकल्पिक रूप से, मैं बग रिपोर्ट को छोड़ सकता हूं और "फिक्स्ड ए बग जिसके कारण बी। एक्स और वाई द्वारा निर्धारित किया गया था, क्यू और आर द्वारा तय किया गया" जैसे संदेश के साथ प्रतिबद्ध हो सकता है।

बेहतर अभ्यास क्या माना जाता है?


4
आपकी कंपनी और टीम के आकार और बग की विशेषताओं पर निर्भर करता है। छोटी और तेज टीमों पर, यह सिर्फ आवश्यक नहीं है, क्योंकि आप अपने साथी डेवलपर्स के साथ सिर्फ चिल्लाकर संवाद कर सकते हैं। बड़ी टीमों पर, बड़े संगठनों ने, विकास के वातावरण को वितरित किया, यह आपके काम को लॉग इन करने के लिए अच्छा है, लेकिन एक ओवरहेड भी है जो आपके उत्पादन स्तर को नीचे खींच देगा यदि आप कई छोटे बगों पर काम करते हैं। जब तक यह एक गंभीर बग नहीं है, जो प्रतिगमन और बंद से बचने के लिए प्रलेखित, यूनिट-परीक्षण किया गया हमेशा अच्छा होता है।
मचाडो

15
यह मत भूलो कि कुछ कीड़े स्थिर नहीं रहते हैं - यदि आप उन्हें थोड़ी देर के लिए अनदेखा करते हैं तो वे अचानक पुनर्जन्म लेते हैं। यह जानने के बाद कि किसी ने पिछली बार इसे ठीक करने का प्रयास किया, वह मूल्यवान हो सकता है। बहुत कम से कम, यह कहने के लिए कुछ दस्तावेज़ीकरण होना चाहिए कि आपने कोड का क्या किया और क्यों, भले ही वह कोड में टिप्पणियों में ही क्यों न हो।
एलेफ़ेज़ेरो

5
पिछली टिप्पणियों के अलावा, यह इस बात पर भी निर्भर करता है कि बग ने इसे जंगली में बनाया है, लेकिन आप भाग्यशाली थे कि किसी भी ग्राहक से इसका सामना नहीं करना पड़ा, या यदि इसे जारी किया गया था और एक रिलीज चक्र के भीतर तय किया गया था।
whatsisname

3
जब संदेह हो, तो उसे चिल्लाओ। मेरे लिए यह बग रिपोर्ट खोलने और बंद करने के लिए कभी चोट नहीं पहुंचाता है। कुछ परिस्थितियों में, ऐसी चीजों का दस्तावेजीकरण और आधिकारिक होना अच्छा है।
phresnel

1
@ Alephzero की टिप्पणी से संबंधित, कुछ ऐसा जो मेरे साथ हाल ही में हुआ था: कोड के एक हिस्से में एक बग को ठीक करने से कहीं और बग का पता चला। मैंने अनजाने में एक-दूसरे को रद्द कर दिया था जिस हिस्से को मैंने नहीं छुआ था, और अनुचर की पहली वृत्ति मेरे सुधार को पूर्ववत करना थी।
इजाकाता

जवाबों:


71

यह इस बात पर निर्भर करता है कि बग रिपोर्ट के दर्शक कौन हैं।

यदि यह केवल डेवलपर्स द्वारा आंतरिक रूप से देखा जाता है, यह जानने के लिए कि क्या तय करने की आवश्यकता है, तो परेशान न हों। यह सिर्फ उस बिंदु पर शोर है।

वैसे भी लॉग न करने के कारणों की गैर-विस्तृत सूची:

  • रिलीज़-नोट्स में फिक्स्ड बग्स के बारे में जानकारी शामिल है (कुछ थ्रेशोल्ड जो इस बग को पूरा करता है) - खासकर अगर इस बग से कोई भेद्यता उजागर होती है
  • प्रबंधन "समय बिताए बगिंगफिक्सिंग" / "डिटेक्टेड बग काउंट", आदि की धारणा चाहता है।
  • ग्राहक बगट्रेटर की वर्तमान स्थिति देख सकते हैं (यह देखने के लिए कि क्या उनके मुद्दे के बारे में पता है, आदि)
  • परीक्षकों को एक बदलाव के बारे में जानकारी मिलती है जिसे उन्हें परीक्षण करना चाहिए।

56
बग होने के लिए सबसे संभावित स्थान वह स्थान है जो पहले बग हुआ था। मैं लगभग हर परिदृश्य में इसे रिकॉर्ड करने की सलाह दूंगा।
corsiKa

18
# 4: परीक्षक अपने परीक्षण का मार्गदर्शन करने के लिए बग ट्रैकर का उपयोग करते हैं। वे परीक्षण करेंगे कि फिक्स काम करता है और यह नए बग या प्रतिगमन का कारण नहीं था।
jpmc26

2
@corsiKa जब दवा बीमारी से भी बदतर है? ;-)
hBy2Py

1
@ hBy2Py एक नया डॉक्टर खोजें, फिर उसे रिकॉर्ड करें।
corsiKa

2
@BradThomas को आपके द्वारा उद्धृत किए जाने वाले शब्दों को फिर से लिखने के लिए: "बगट्रॉकर का उपयोग TODO सूची के रूप में किया जाता है, और कुछ और नहीं" + "फिक्स्ड बग" -> "नो TODO"। मैं लगभग सभी अन्य स्थितियों में सहमत हूं, आप एक रिकॉर्ड चाहते हैं
Caleth

52

मैं कहता हूँ, यह निर्भर करता है कि आपका उत्पाद बग के साथ जारी किया गया था या नहीं।

यदि यह बग के साथ जारी किया गया है जो आपको मिला है, तो हां, बग-रिपोर्ट बनाएं। रिलीज़ साइकिल अक्सर लंबी हो सकती है और आप नहीं चाहते कि आपका बग एक नए मुद्दे के रूप में रिपोर्ट किया जाए जबकि आपने इसे पहले ही तय कर लिया है।

यदि आपका बग अभी तक शिप नहीं किया गया है, तो मैं उसी रास्ते का अनुसरण नहीं करूंगा। अब आपके पास अपने बग को फिर से बनाने की कोशिश करने वाले लोग होंगे जो वे नहीं कर सकते क्योंकि यह अभी तक रिलीज में नहीं है, अनिवार्य रूप से अपना समय बर्बाद कर रहा है।


2
इसके अलावा, यदि आप कार्य आइटम के विरुद्ध कोड में जाँच कर रहे हैं, तो बग्स को ठीक करते समय मूल कार्य आइटम के खिलाफ चेक-इन बग-फिक्स पर विचार करें, जिसने इसे उत्पाद रिलीज़ के लिए नहीं बनाया है।
वलाब

24

आपको यह करना चाहिए अगर यह एक बग है जो एक ग्राहक द्वारा रिपोर्ट किया जा सकता था। सबसे खराब स्थिति: आप बग को ठीक कर देते हैं, लेकिन कोई नहीं जानता। ग्राहक बग की सूचना देता है। आपका सहकर्मी बग को ठीक करने का प्रयास करता है, लेकिन जो भी (क्योंकि आपने इसे पहले से ही ठीक कर लिया है) पुन: पेश नहीं कर सकता। इसलिए आप बग का रिकॉर्ड चाहते हैं।

यदि आप कोड की समीक्षा करते हैं, तो यह उपयोगी है, जहां आमतौर पर कोड किसी कार्य के लिए लिखा जाएगा और फिर समीक्षा की जाएगी। उस मामले में यह बेहतर है कि बग को अलग-थलग कर दिया जाए, जिसे आपकी कार्य सूची में कुछ डालने और फिर सभी काम करने की आवश्यकता हो सकती है।


9

यह कई कारकों पर निर्भर करता है।

Pieter B और Caleth दोनों ने अपने उत्तर में कुछ सूची दी है:

  • क्या बग किसी आधिकारिक रिलीज़ का हिस्सा है?
  • क्या विशेष रूप से ट्रैक किए गए बग्स / समय की संख्या है?

एक प्रमाणीकरण की आवश्यकताओं के द्वारा समर्थित अक्सर पालन करने के लिए आंतरिक प्रक्रियाएं भी हो सकती हैं। कुछ प्रमाणपत्रों के लिए, कोड में हर परिवर्तन के लिए यह अनिवार्य है कि किसी इश्यू ट्रैकर में रिकॉर्ड के लिए पता लगाया जा सके।

इसके अतिरिक्त, कभी-कभी तुच्छ दिखने वाले बगफिक्स भी उतने तुच्छ और निर्दोष नहीं होते जितने वे पहले दिखते हैं। यदि आप चुपचाप एक असंबंधित मुद्दे की डिलीवरी के लिए इस तरह के बगफिक्स को बंडल करते हैं, और बगफिक्स बाद में समस्याग्रस्त हो जाता है, तो इससे नीचे ट्रैक करने, अकेले अलग या पीछे जाने में बहुत मुश्किल हो जाएगी।


2
निश्चित रूप से आपको प्रतिबद्ध संदेश में बगफिक्स का उल्लेख करना चाहिए, और निश्चित रूप से बग को ठीक करने वाले परिवर्तन के लिए एक अलग प्रतिबद्ध बनाना चाहिए। (और शायद एक अलग पुल-अनुरोध या पैच-सीरीज़, अगर यह एक बदलाव है जो अपने आप खड़ा है)। इसका एकमात्र अपवाद यह होगा कि यदि बग को किसी भिन्न कारण से किसी चीज़ को बदलने के साइड-इफ़ेक्ट के रूप में तय किया गया हो (लेकिन फिर भी इसका उल्लेख कमिट मैसेज में करें)। एकमात्र सवाल यह है कि बग-ट्रैकर के साथ परेशान करना है या नहीं, एक एकल प्रतिबद्ध में अन्य सामान के साथ बदलाव को बंडल करना है या नहीं!
पीटर कॉर्ड्स

3

इस प्रश्न का उत्तर केवल आपके प्रोजेक्ट लीड से दिया जा सकता है, या जो भी "टिकट प्रक्रिया" का प्रभारी हो।

लेकिन मुझे दूसरे तरीके से पूछना चाहिए: आप बग को पैच करने का रिकॉर्ड क्यों नहीं करेंगे ?

मेरे द्वारा देखे जाने का एकमात्र कारण यह है कि बग रिपोर्ट को दर्ज करने, उसके खिलाफ काम करने और इसे बंद करने का प्रयास, बग को ठीक करने के लिए समय से बड़ा परिमाण का आदेश है।

इस मामले में, समस्या यह नहीं है कि बग को ठीक करना इतना आसान है, लेकिन कागजी कार्रवाई में बहुत लंबा समय लगता है। यह वास्तव में नहीं होना चाहिए। मेरे लिए, जीरा टिकट बनाने के लिए ओवरहेड दबा रहा है c, फिर एक छोटी 1-पंक्ति सारांश में प्रवेश कर रहा है, और दबा रहा है Enter। विवरण भी ओवरहेड नहीं है, क्योंकि मैं कट और पेस्ट कर सकता हूं कि कमिट मैसेज में, अंक संख्या के साथ। अंत में, . c <Enter>और मुद्दा बंद हो गया है। यह 5 प्रमुख प्रेस के ऊपर फोड़ा जाता है।

मैं आपके बारे में नहीं जानता, लेकिन यह इस तरह से हर बगफिक्स को रिकॉर्ड करने के लिए छोटी परियोजनाओं में भी एक नीति बनाने के लिए काफी कम है ।

लाभ स्पष्ट है - काफी लोग हैं जो आसानी से जीरा जैसी टिकट प्रणाली के साथ काम कर सकते हैं, लेकिन स्रोत कोड के साथ नहीं; टिकट प्रणाली से उत्पन्न रिपोर्टें भी हैं, लेकिन स्रोत से नहीं। आप निश्चित रूप से चाहते हैं कि आपकी बग ठीक हो जाए, संभावित विकास के बारे में जानने के लिए, जैसे कि छोटी 1-लाइन बगफिक्स की लगातार बढ़ती हुई बाढ़, जो आपको प्रक्रिया समस्याओं या कुछ भी में कुछ अंतर्दृष्टि प्रदान कर सकती है। उदाहरण के लिए, आपको अक्सर ऐसे छोटे बग फिक्स क्यों करने पड़ते हैं (यह अक्सर होता है)? क्या ऐसा हो सकता है कि आपके परीक्षण पर्याप्त अच्छे नहीं हैं? क्या बगफिक्स एक डोमेन परिवर्तन, या एक कोड त्रुटि थी? आदि।


2

मेरे द्वारा पालन किया जाने वाला नियम यह है कि यदि आप जिस अनुभाग पर काम कर रहे हैं वह कभी जारी नहीं किया गया है और यह अभी तक भी नहीं चला है और किसी भी उपयोगकर्ता ने कभी इसे नहीं देखा है, तो आप जिस भी छोटे बग को देखते हैं उसे ठीक करें और आगे बढ़ें। एक बार सॉफ्टवेयर रिलीज हो गया है और उत्पादन में है और कुछ उपयोगकर्ता ने इसे देखा है, प्रत्येक बग जिसे आप देखते हैं वह बग रिपोर्ट करता है और समीक्षा करता है।

मैंने पाया है कि मुझे लगता है कि बग किसी और के लिए एक विशेषता है। उन बगों की समीक्षा किए बिना बग को ठीक करके, मैं इसे ठीक करने के बजाय एक बग बना सकता हूं। बग रिपोर्ट में डालें कि बग को ठीक करने के लिए आप किन लाइनों को बदलेंगे और यह कैसे तय किया जाना चाहिए।

संक्षेप में: यदि यह मॉड्यूल कभी उत्पादन में नहीं रहा है, तो आप जिस भी बग को देखते हैं उसे ठीक करें और कल्पना का पालन करें। यदि मॉड्यूल पहले से ही उत्पादन में है, तो फिक्सिंग से पहले समीक्षा की जाने वाली बग रिपोर्ट के रूप में प्रत्येक बग की रिपोर्ट करें।


1

जी हां


कुछ जवाब पहले से ही हैं जो उन स्थितियों को उजागर करते हैं जिनमें यह बग रिपोर्ट बनाने के लायक है। कुछ जवाब। और वे अलग हैं।

इसका एक ही जवाब है कि किसी को पता न चले। अलग-अलग लोगों, अलग-अलग समय पर , इस मामले पर अलग-अलग राय होगी।

तो अब, बग का सामना करते समय, आपके पास दो उपाय हैं:

  • विचार करें कि क्या यह बग रिपोर्ट खोलने के लायक है, या नहीं, शायद किसी सहकर्मी की राय पूछें ... और फिर बाद में, कुछ मामलों में, अफसोस है कि आपने ऐसा नहीं किया क्योंकि कोई इसके बारे में पूछ रहा है और यदि आपके पास रिपोर्ट पहले से थी बस उन्हें उस ओर इशारा करते हैं
  • बस रिपोर्ट बनाएँ

रिपोर्ट बनाना तेज़ है, और यदि यह नहीं है ... इसे स्वचालित करें।


इसे स्वचालित कैसे करें? यह मानते हुए कि आपका ट्रैकर स्क्रिप्टिंग का समर्थन करता है, बस एक स्क्रिप्ट बनाएं जिसे आप कॉल कर सकते हैं और जो एक बग रिपोर्ट प्रस्तुत करने के लिए प्रतिबद्ध संदेश (शीर्षक और निकाय) का उपयोग करेगा और ट्रैकिंग के लिए संबंधित संशोधन के साथ इसे तुरंत "कार्यान्वित" के रूप में बंद कर देगा।


0

मैं अन्य उत्तरों से सहमत होने जा रहा हूं, सभी अंगूठे के अच्छे नियम प्रदान करते हैं और कई इस बिंदु पर भी स्पर्श करते हैं, हालांकि मुझे लगता है कि यहां केवल निश्चित रूप से आग का जवाब है।

बस अपने प्रबंधक से पूछें । ठीक है कि आपके प्रबंधक या वैकल्पिक रूप से प्रोजेक्ट लीड या स्क्रैम मास्टर आदि पर निर्भर करता है कि आपका समूह कैसे संरचित है।

अच्छी और ख़राब प्रैक्टिस के कई अलग-अलग सिस्टम हैं, लेकिन आपके जानने का एकमात्र तरीका आपकी टीम के लिए सही काम करना है।

एक मिनट की गलियारे की बातचीत के साथ कुछ करना होगा: "अरे (बॉस), अगर मैं एक मामूली बग को ठीक करता हूं जो केवल कुछ मिनट लगते हैं तो क्या इसके लिए टिकट बनाने लायक है या मुझे सिर्फ अपने प्रतिबद्ध संदेश में इसका उल्लेख करना चाहिए?" " और आपको पक्का पता चल जाएगा। दुनिया में सभी अच्छा अभ्यास बेकार है अगर वह तरीका आपकी टीम और आपके प्रबंधक को परेशान करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.