बग्स को कैसे संभालें जो मुझे लगता है कि मैंने तय किया है, लेकिन मुझे पूरी तरह से यकीन नहीं है


13

कुछ प्रकार के कीड़े होते हैं जो प्रजनन के लिए बहुत कठिन होते हैं, बहुत कम ही होते हैं और यादृच्छिक रूप से प्रतीत होते हैं। ऐसा हो सकता है, कि मुझे एक संभावित कारण मिल जाए, इसे ठीक कर लें, कार्यक्रम का परीक्षण करें, और बग को पुन: उत्पन्न नहीं कर सकते। हालांकि, चूंकि बग को मज़बूती से पुन: उत्पन्न करना असंभव था और ऐसा शायद ही कभी हुआ, मैं इसे बगट्रैकर में कैसे इंगित कर सकता हूं? इसे करने का सामान्य तरीका क्या है?

अगर मैं तय करने के statusलिए सेट , और solutionतय करने के लिए, यह पूरी तरह से तय कुछ मतलब होगा, है ना?

क्या परीक्षकों को इंगित करने के लिए, statusनिर्धारित करने और solutionखोलने के लिए निर्धारित करने के लिए यह सामान्य अभ्यास है , कि "यह शायद तय हो गया है, लेकिन यह सुनिश्चित करने के लिए अधिक ध्यान देने की आवश्यकता है"?

संपादित करें: अधिकांश (यदि सभी नहीं हैं) बगट्रैक में बग की स्थिति के लिए दो गुण हैं, शायद नाम समान नहीं हैं। तक statusमेरा मतलब है नया, सौंपा, स्थिर, बंद कर दिया, आदि , और से solutionमेरा मतलब है खुला (नया), फिक्स्ड, न सुलझा हुआ, प्रतिलिपि प्रस्तुत करने योग्य नहीं,, डुप्लिकेट एक बग नहीं , आदि


3
यह आपके बग ट्रैकर के लिए कुछ विशिष्ट है। आप किन अन्य मूल्यों को स्थिति और समाधान के लिए असाइन कर सकते हैं ?
स्कारफ्रिज

कुछ बग ट्रैकर्स में, हल की स्थिति और बंद की एक और स्थिति है। केवल क्यूए लोगों को बंद करने की स्थिति निर्धारित करने की अनुमति है, लेकिन डेवलपर्स हल करने के लिए स्थिति सेट कर सकते हैं।
ब्रायन

जवाबों:


8

क्या परीक्षकों को इंगित करने के लिए स्थिति को निर्धारित करने और खोलने के समाधान को निर्धारित करना सामान्य अभ्यास है, कि "यह शायद तय हो गया है, लेकिन यह सुनिश्चित करने के लिए अधिक ध्यान देने की आवश्यकता है"?

आम या नहीं, यह वैसे भी करने के लिए सही बात है, और आपने खुद को क्यों रखा: कोई फर्क नहीं पड़ता, यह एक अच्छा तरीका है

परीक्षकों को इंगित करें, कि "यह शायद तय हो गया है, लेकिन यह सुनिश्चित करने के लिए अधिक ध्यान देने की आवश्यकता है"


साइड नोट भले ही विशेष बग ट्रैकर के पास आपके द्वारा वर्णित क्षेत्र की तरह नहीं है solution, डेवलपर कम से कम ऊपर बताए गए एक फ्री-फॉर्म टिप्पणी जोड़ सकता है।

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


6

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


+1 - यह सबसे सरल उत्तर है। यदि आपने अपना सबसे कठिन प्रयास किया है, और टेस्ट टीमों का परीक्षण सूट काफी मजबूत है, तो आप और क्या कर सकते हैं?
ओज

3

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

वास्तव में, अगर मेरे पास कोई प्रतिलिपि प्रस्तुत करने योग्य परीक्षण परिदृश्य नहीं है, तो मैं इस तरह के बग को पहले से ठीक करने की कोशिश भी नहीं करूंगा। यदि आप चाहते हैं कि परीक्षक इस पर अधिक ध्यान दें, तो उन्हें एक प्रतिलिपि प्रस्तुत करने योग्य परिदृश्य बनाने का मौका दें।

उदाहरण के लिए, मान लें कि आप प्रोग्राम को बदलते हैं, और एक परीक्षक बग को पुन: पेश करने की कोशिश करने पर 1 घंटे का निवेश करता है, और बग पॉप नहीं करता है - एक घंटा पर्याप्त था? या आगे परीक्षण बेकार है क्योंकि बग पहले से तय था?

दूसरी ओर, जब आप प्रोग्राम को नहीं बदलते हैं, और बग 1 घंटे में पॉप नहीं होता है, तो सबसे ज्यादा संभव है कि परीक्षक को अलग-अलग चीजों की कोशिश में एक और घंटे का निवेश करना चाहिए। और जब परीक्षक एक दिन निवेश करता है और बग को और अधिक पुन: पेश नहीं कर सकता है - तो क्या इसे ठीक करने की कोशिश करना वास्तव में लायक है?

कहा कि, आप सोच सकते हैं कि आप अपने बग ट्रैकिंग सिस्टम में उस प्रक्रिया को कैसे मॉडल करते हैं: इसे ठीक करने की कोशिश नहीं कर रहे हैं और इसे परीक्षकों को सौंप रहे हैं जो "ओपन" की तरह एक बग स्थिति हो सकती है। यदि परीक्षक इसे पुन: पेश नहीं कर सकते हैं, तो यह स्पष्ट रूप से "प्रतिलिपि प्रस्तुत करने योग्य नहीं" है। उम्मीद है, ऐसा नहीं होता है, वे एक प्रतिलिपि प्रस्तुत करने योग्य परिदृश्य पाते हैं, आप अपने बग का मूल कारण पा सकते हैं, इसे ठीक कर सकते हैं और "निर्धारित" स्थिति सेट कर सकते हैं। "अगर यह तय हो गया है तो पता नहीं है" जैसी किसी चीज़ से बचने की कोशिश करें।


4
कुछ बग प्रकार के लिए एक प्रतिलिपि प्रस्तुत करने योग्य परीक्षण परिदृश्य बस मौजूद नहीं है। उदाहरण के लिए, एक टाइमिंग से संबंधित बग औसतन एक मिलियन में 1 बार हो सकता है - लेकिन यह अनुमान लगाना असंभव है कि यह 3 या 532454 वें रन पर होगा। फिर भी, ऐसे कीड़े कीड़े हैं और उन्हें ठीक किया जाना चाहिए।
जूनस पुलकका

3
@ जून पुलकका: मैं सहमत हूं। और ऐसे कीड़े बाहरी परिस्थितियों पर निर्भर कर सकते हैं। एम्बेडेड के मामले में, वे आपके नियंत्रण से बाहर किसी चीज के कारण होने वाले बिजली के उछाल पर निर्भर कर सकते हैं। इसे ठीक करने की कोशिश नहीं करना हमेशा सबसे अच्छा समाधान नहीं होता है, खासकर अगर मुझे एक कोड गंध मिल जाता है जो मुझे संदेह है कि यह उस बग का कारण हो सकता है। इस मामले में, मुझे इसे ठीक क्यों नहीं करना चाहिए?
vsz

2
@JoonasPulakka: प्रतिलिपि प्रस्तुत करने योग्य परिदृश्यों के बारे में मेरा अनुभव, ज्यादातर मामलों में जहां लोग कहते हैं कि "यह संभव नहीं है", वे बस चीजों को संभव बनाने के लिए सही विचार को याद कर रहे हैं। आपके उदाहरण में, एक "10 मिलियन रन" लूप के साथ एक परिदृश्य सेट कर सकता है, जिससे उचित समय में बग को दिखाने के लिए कम से कम बहुत संभव है।
डॉक ब्राउन

2
@vsz: आपको इसे ठीक करना चाहिए, लेकिन निश्चित रूप से, मैं जो सुझाव दे रहा हूं, वह यह है कि पहले एक परीक्षण बनाना चाहिए (या परीक्षकों को संकेत देना चाहिए कि क्या परीक्षण करना है), और फिर इसे ठीक करें, इसके विपरीत नहीं।
डॉक ब्राउन

2
@DocBrown सही है, इसके बारे में सोचने का एक और तरीका यह है कि कभी-कभी कीड़े को "पुन: पेश" करने के लिए एक सांख्यिकीय दृष्टिकोण की आवश्यकता होती है। यह बहुत अच्छी तरह से हो सकता है कि बग का पुनरुत्पादन करने वाले इनपुट / परिस्थितियों का एक बहुत विशिष्ट सेट है, लेकिन आपको यह पता नहीं चल सकता है कि ये इनपुट क्या हैं और संभव इनपुट का सेट इसके माध्यम से पुनरावृति करने के लिए बहुत बड़ा हो सकता है। इन मामलों में, एक दृष्टिकोण यह है कि जब भी आप इसे संबोधित करने का प्रयास करें, हर बार बग की घटना के बारे में आंकड़े एकत्र करें। इसमें लंबा समय लग सकता है, और परिणाम आपको सांख्यिकीय अर्थ में 100% "आत्मविश्वास" नहीं दे सकते हैं, लेकिन कभी-कभी आपके पास यह सब होता है।
एंजेलो

0

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

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

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