दोष और बग में क्या अंतर है?
दोष और बग में क्या अंतर है?
जवाबों:
बग एक कोडिंग त्रुटि का परिणाम है
एक दोष आवश्यकताओं से विचलन है
यह है: एक दोष जरूरी नहीं है कि कोड में एक बग है , यह एक ऐसा कार्य हो सकता है जिसे लागू नहीं किया गया था लेकिन सॉफ्टवेयर की आवश्यकताओं में परिभाषित किया गया था।
सॉफ्टवेयर परीक्षण पर विकिपीडिया पृष्ठ से :
सभी सॉफ्टवेयर दोष कोडिंग त्रुटियों के कारण नहीं होते हैं। महंगे दोषों का एक सामान्य स्रोत आवश्यकता अंतराल के कारण होता है, उदाहरण के लिए, अपरिचित आवश्यकताएं, जिसके परिणामस्वरूप प्रोग्राम डिजाइनर द्वारा चूक की त्रुटियां होती हैं। [१४] आवश्यकताओं के अंतराल का एक सामान्य स्रोत गैर-कार्यात्मक आवश्यकताएं हैं जैसे परीक्षण क्षमता, मापनीयता, स्थिरता, प्रयोज्य, प्रदर्शन और सुरक्षा।
प्रैक्टिकल सॉफ्टवेयर टेस्टिंग (अनुशंसित) पुस्तक से आईलीन बर्नस्टीन का हवाला देते हुए "सॉफ्टवेयर इंजीनियरिंग के लिए IEEE मानक संग्रह" (1994) और "IEEE मानक शब्दावली ऑफ़ सॉफ्टवेयर इंजीनियरिंग शब्दावली" (मानक 610.12, 1990):
सॉफ़्टवेयर डेवलपर की ओर से एक त्रुटि एक गलत धारणा या गलतफहमी है
डेवलपर की श्रेणी में हम सॉफ्टवेयर इंजीनियर, प्रोग्रामर, विश्लेषक और परीक्षक शामिल हैं। उदाहरण के लिए, एक डेवलपर एक डिज़ाइन नोटेशन को गलत समझ सकता है, या एक प्रोग्रामर गलत तरीके से एक चर नाम लिख सकता है।
एक त्रुटि (दोष) सॉफ्टवेयर में एक त्रुटि के परिणामस्वरूप पेश की जाती है। यह सॉफ्टवेयर में एक विसंगति है जिसके कारण यह गलत व्यवहार कर सकता है, और इसके विनिर्देश के अनुसार नहीं।
दोष या दोष कभी-कभी "बग" कहलाते हैं। बाद के शब्द का उपयोग सॉफ्टवेयर की गुणवत्ता पर पड़ने वाले प्रभाव के दोष को बताता है। "दोष" शब्द का उपयोग सॉफ्टवेयर कलाकृतियों जैसे आवश्यकताओं और डिजाइन दस्तावेजों के साथ भी जुड़ा हुआ है। इन कलाकृतियों में होने वाले दोष भी त्रुटियों के कारण होते हैं और आमतौर पर समीक्षा प्रक्रिया में पाए जाते हैं।
एक सॉफ़्टवेयर सिस्टम या घटक की अक्षमता निर्दिष्ट प्रदर्शन आवश्यकताओं के भीतर अपने आवश्यक कार्यों को करने में असमर्थता है।
सॉफ़्टवेयर घटक या सिस्टम के निष्पादन के दौरान, एक परीक्षक, डेवलपर या उपयोगकर्ता यह देखते हैं कि यह अपेक्षित परिणाम नहीं देता है। कुछ मामलों में एक विशेष प्रकार का दुर्व्यवहार इंगित करता है कि एक निश्चित प्रकार की गलती मौजूद है। हम कह सकते हैं कि दुर्व्यवहार का प्रकार गलती का एक लक्षण है। एक अनुभवी डेवलपर / परीक्षक के पास स्मृति में संग्रहीत दोष / लक्षण / विफलता के मामलों (अध्याय 3 में वर्णित दोष मॉडल) का ज्ञान आधार होगा। गलत व्यवहार में आउटपुट चर के लिए गलत मान उत्पन्न करना, डिवाइस के हिस्से पर गलत प्रतिक्रिया या स्क्रीन पर गलत छवि शामिल हो सकती है। विकास के दौरान विफलताएं आमतौर पर परीक्षकों द्वारा देखी जाती हैं, और दोष डेवलपर्स द्वारा स्थित और मरम्मत किए जाते हैं।
आप Google पुस्तक में पूरा अध्याय यहाँ पढ़ सकते हैं ।
सॉफ्टवेयर बग से संबंधित कुछ अलग शब्द हैं। मेरे द्वारा लिए गए एक पाठ्यक्रम का अंश:
त्रुटि : मानव क्रिया या चूक जिसके परिणामस्वरूप गलती होती है।
दोष : दोष एक सॉफ्टवेयर दोष (गलत कदम, प्रक्रिया या डेटा परिभाषा) है जो विफलता का कारण बनता है।
बग : फॉल्ट के रूप में भी।
विफलता : निर्दिष्ट प्रदर्शन आवश्यकताओं के भीतर अपने आवश्यक कार्यों को करने के लिए एक सॉफ्टवेयर की अक्षमता।
इसके अनुसार, एक दोष और बग के बीच कोई अंतर नहीं है। हालांकि, कुछ लोगों का तर्क है कि बग एक त्रुटि है जो सॉफ्टवेयर जारी करने से पहले पाई जाती है, जबकि दोष ग्राहक द्वारा पाया जाता है।
मैं "पाया जा रहा बग का पहला वास्तविक मामला" पोस्ट करने का विरोध नहीं कर सका।
बाप रे।
पुराने दिनों में वापस - कंप्यूटर का दोषपूर्ण संचालन सभी प्रकार की चीजों के कारण होता था - जिसमें चूहे तारों को चबाते थे और असली कीड़े (क्रिटर्स) कामों में लग जाते थे।
BUG शब्द एक ऐसे शब्द के रूप में अटक गया है जिसका अर्थ है कि कुछ अपेक्षित रूप से काम नहीं कर रहा है।
BUG को एक शब्द के रूप में माना जाना चाहिए जिसका अर्थ है एक दोष।
एक दोष तकनीकी रूप से सही शब्द है जिसका अर्थ यह है कि वह वैसा नहीं करता जैसा उसे करना चाहिए।
जहां भी संभव हो, बग की बजाय डीईएफईटी का उपयोग करना वास्तव में यह एक धारणा है कि हम अपनी असफलताओं को स्वीकार करते हैं (हमारे दोष, उपयोगकर्ता की आवश्यकताओं की समझ की कमी या कार्यान्वयन में अनदेखी की गई चीजें) इसे ड्रेसिंग के बजाय अधिक तुच्छ लगने वाला "बग" "।
DEFECT का प्रयोग करें।
कोशिश करें कि BUG शब्द का उपयोग न करें। अपनी मूर्खतापूर्ण, अप्रासंगिक, ऐतिहासिक और तुच्छ।
सॉफ्टवेयर इंजीनियरिंग शब्दावली के IEEE मानक शब्दावली से, जिसे सॉफ्टवेयर परीक्षण और सॉफ्टवेयर गुणवत्ता के लिए ज्ञान केए के सॉफ्टवेयर इंजीनियरिंग निकाय में उद्धृत किया गया है:
बग। देखें: त्रुटि; गलती।
त्रुटि। (1) एक गणना, मनाया या मापा मूल्य या स्थिति और सही, निर्दिष्ट या सैद्धांतिक रूप से सही मूल्य या स्थिति के बीच का अंतर। उदाहरण के लिए, एक गणना परिणाम और सही परिणाम के बीच 30 मीटर का अंतर। (2) एक गलत कदम, प्रक्रिया या डेटा परिभाषा। उदाहरण के लिए, एक कंप्यूटर प्रोग्राम में एक गलत निर्देश। (३) एक गलत परिणाम। उदाहरण के लिए, सही परिणाम आने पर 12 का गणना परिणाम 10. (4) एक मानवीय क्रिया जो गलत परिणाम उत्पन्न करती है। उदाहरण के लिए, एक प्रोग्रामर या ऑपरेटर की ओर से एक गलत कार्रवाई। नोट: जबकि सभी चार परिभाषाओं का आमतौर पर उपयोग किया जाता है, एक भेद शब्द "त्रुटि" की परिभाषा 1 को प्रदान करता है, शब्द "दोष" के लिए परिभाषा 2, शब्द "विफलता" के लिए 3 परिभाषा और शब्द "गलती" के लिए 4 परिभाषा। A2so देखें: गतिशील त्रुटि; घातक गलती; स्वदेशी त्रुटि; अर्थ संबंधी त्रुटि; वाक्यविन्यास त्रुटि; स्थिर त्रुटि; क्षणिक त्रुटि।
विफलता। एक प्रणाली या घटक की अक्षमता निर्दिष्ट प्रदर्शन आवश्यकताओं के भीतर अपने आवश्यक कार्यों को करने के लिए। नोट: दोष सहिष्णुता अनुशासन एक मानवीय कार्रवाई (एक गलती), इसकी अभिव्यक्ति (एक हार्डवेयर या सॉफ़्टवेयर दोष), गलती का परिणाम (एक विफलता) और जिसके परिणामस्वरूप परिणाम गलत है (त्रुटि) के बीच अंतर करता है। यह भी देखें: दुर्घटना; निर्भर विफलता; अपवाद; विफल मोड; विफलता दर; कठिन विफलता; प्रारंभिक विफलता; स्वतंत्र विफलता; यादृच्छिक विफलता; नरम विफलता; फँस गया।
गलती। (1) एक हार्डवेयर डिवाइस या घटक में एक दोष; उदाहरण के लिए, एक शॉर्ट सर्किट या टूटे तार। (2) कंप्यूटर प्रोग्राम में एक गलत कदम, प्रक्रिया या डेटा परिभाषा। नोट: इस परिभाषा का उपयोग मुख्य रूप से दोष सहिष्णुता अनुशासन द्वारा किया जाता है। सामान्य उपयोग में, इस अर्थ को व्यक्त करने के लिए "त्रुटि" और "बग" शब्दों का उपयोग किया जाता है। यह भी देखें: डेटा-संवेदनशील गलती; कार्यक्रम संवेदनशील गलती; समान दोष; गलती मास्किंग; आंतरायिक दोष।
मुझे लगता है कि असफलता की परिभाषा सबसे अधिक प्रासंगिक है। सब कुछ एक गलती से शुरू होता है, चाहे वह आवश्यकताओं, डिजाइन, कार्यान्वयन, या परीक्षण मामले / प्रक्रिया में हो। यदि यह गलती सॉफ्टवेयर में प्रकट होती है, तो यह एक गलती है। एक विफलता सॉफ्टवेयर में एक या अधिक दोषों के अस्तित्व के कारण होती है।
मैं त्रुटि की औपचारिक परिभाषा के लिए उत्सुक नहीं हूँ, हालाँकि। मैं उसके उत्तर में ड्यूकफैगमिंग द्वारा प्रदान की गई परिभाषा को बहुत पसंद करता हूं , हालांकि, इस उत्तर में त्रुटि की IEEE मानक परिभाषा है।
डैन मैकग्राथ के जवाब ने इसे सही ठहराया।
शायद एक उदाहरण यह स्पष्ट कर देगा।
उदाहरण: क्लाइंट चाहता था कि वेब फ़ॉर्म विंडो को सहेजने और बंद करने में सक्षम हो।
परिदृश्य # 1: वेब फॉर्म में एक सेव बटन, और दूसरा क्लोज बटन होता है। परिणाम: दोष, क्योंकि ग्राहक विंडो को बचाने और बंद करने के लिए 1 बटन चाहता था। डेवलपर ने गलत समझा और अलग से बनाया। क्योंकि दोनों बटन ने अपनी आवश्यकताओं का प्रदर्शन किया, यह एक बग नहीं है, लेकिन एक दोष है क्योंकि यह क्लाइंट की आवश्यकता को पूरा नहीं करता है।
परिदृश्य # 2: वेब फ़ॉर्म में एक सहेजें और पास बटन है, लेकिन केवल सहेजता है लेकिन बंद नहीं करता है। परिणाम: बग। क्योंकि बटन आवश्यकतानुसार / अपेक्षित प्रदर्शन नहीं करता है। डेवलपर जानता है कि यह उस परिणाम का उत्पादन करने के लिए माना जाता है, लेकिन अंततः ऐसा नहीं हुआ। (शायद कोडिंग त्रुटि)
यकीन नहीं है कि अगर यह स्पष्ट करता है।
p / s: डेवलपर स्टैंड पॉइंट (मैं एक बार था) से, दोष और बग दोनों ही महत्वपूर्ण हैं। हम अभी भी इसे ठीक कर देंगे।
हमें अजीब विसंगतियों का भी सामना करना पड़ा, जिन्हें हमने बग के तहत वर्गीकृत किया और हम लगातार यह जानने की कोशिश करते हैं कि इसका कारण क्या है और इसे कैसे ठीक किया जाए। दोषों की तुलना में इसे बग को समाप्त करना तुच्छ नहीं है।
अंतर यह है कि शब्द "बग" ध्वनि जादुई है। जैसे कि प्रोग्रामिंग करने के बाद किसी प्रोग्राम में बेतरतीब ढंग से बग हो सकते हैं। यदि इसमें यादृच्छिक बग हैं तो इसका मतलब है कि आपने विशिष्टताओं के अनुरूप नहीं है और आपका प्रोग्राम त्रुटि में है।
एक दोष का मतलब है एक त्रुटि जहां कार्यक्रम विनिर्देशों के अनुरूप नहीं है। यह अधिक गंभीर है और मूल रूप से कहते हैं, किसी भी त्रुटि कार्यक्रम के साथ एक बड़ी समस्या है और इसका मतलब है कि कार्यक्रम जारी करने के लिए फिट नहीं है।
अंतर उन प्रोग्रामर्स के दृष्टिकोण में है जो शर्तों का उपयोग करते हैं। बग के साथ जारी किए गए लाखों कार्यक्रम हैं और लोग इसके साथ ठीक हैं क्योंकि वे किसी कारण से स्वीकार करते हैं कि एक बग जादुई और यादृच्छिक है और हर कार्यक्रम में कम से कम एक बग शामिल है। हालांकि, एक प्रोग्रामर जो "दोष" शब्द का उपयोग करता है, एक प्रोग्राम को एक दोष के साथ जारी करने के साथ असहज हो सकता है क्योंकि यह शब्द एक बड़ी गंभीरता का अर्थ है।
एक शब्द को दूसरे पर पसंद करने के निहितार्थ हमें प्रतिदिन प्रभावित करते हैं।
निर्भरता के अनुसार : बुनियादी अवधारणाएं और शब्दावली :
एक सिस्टम विफलता तब होती है जब वितरित सेवा सिस्टम फ़ंक्शन को पूरा करने से विचलित हो जाती है, बाद वाले को सिस्टम के लिए क्या करना है। एक त्रुटि सिस्टम स्थिति का वह हिस्सा है जो बाद की विफलता के लिए उत्तरदायी है: सेवा को प्रभावित करने वाली एक त्रुटि एक संकेत है कि विफलता होती है या हुई है। किसी त्रुटि का स्थगित या परिकल्पित कारण एक दोष है ।
मैं दोष को दोष के लिए सिर्फ दूसरे नाम के रूप में समझता हूं ।
बग भ्रामक है और संदर्भ के आधार पर गलती या विफलता का प्रतिनिधित्व कर सकता है।
ध्यान दें कि विनिर्देश का कोई उल्लेख नहीं है: यहां तक कि एक कल्पना भी दोषपूर्ण हो सकती है।
यहाँ एक है जो मैंने पहले अपने नियोक्ता Q-LEAP के लिए ISTQB शब्दावली के आधार पर किया था और मैंने IEEE शब्दावली भी जाँची थी। का आनंद लें।
बग और दोष? भले ही इस बारे में अंतहीन चर्चा हो सकती है। हमारे पास वास्तव में चिंता करने के लिए अन्य चीजें हैं, जीवन पहले से ही काफी जटिल है, आदि।
"हाउ गूगल टेस्टस सॉफ्टवेयर" से जंगली में शब्द का उपयोग कैसे किया जाता है, इसका एक उदाहरण । 113. "आईईईई सॉफ्टवेयर" का एक लेख खोलें और यह उसी तरह उपयोग किया जाता है। वास्तव में, एक वास्तविक जीवन में "दोष" शब्द का सामना शायद ही कभी करता है।
एक बग का जीवन
कीड़े और बग रिपोर्ट एक कलाकृति है जिसे हर परीक्षक समझता है। बग्स को ढूंढना, बग्स को ठीक करना, बग्स को ठीक करना और बग्स को फिर से पाना सॉफ्टवेयर की गुणवत्ता के लिए दिल की धड़कन और वर्कफ़्लो हैं। यह परीक्षण का हिस्सा है जो Google में सबसे पारंपरिक है, लेकिन अभी भी आदर्श से कुछ दिलचस्प विचलन हैं। इस खंड के लिए, हम उन कीड़ों को अनदेखा करते हैं जो काम की वस्तुओं को ट्रैक करने के लिए दायर किए गए हैं और वास्तविक टूटे हुए कोड की पहचान करने के लिए इस शब्द का उपयोग करते हैं। जैसे, बग अक्सर इंजीनियरिंग टीमों के लिए घंटे-दर-घंटे और दिन-प्रतिदिन के वर्कफ़्लो का प्रतिनिधित्व करते हैं।
एक बग पैदा होता है। कीड़े Google पर सभी द्वारा पाए जाते हैं और दायर किए जाते हैं। उत्पाद प्रबंधक फ़ाइल को बग बनाते हैं जब वे प्रारंभिक बिल्ड में समस्याएँ पकड़ते हैं जो उनके विनिर्देशों / विचारों को बनाते हैं। जब वे गलती से किसी मुद्दे की जाँच करते हैं, या कोडबेस में कहीं और एक मुद्दा पाते हैं, या Google उत्पादों को डॉगफूड करते समय, डेवलपर्स को पता चलता है कि वे किस तरह से गलती करते हैं। भीड़-खट्टा परीक्षकों, बाहरी विक्रेता परीक्षण से क्षेत्र में कीड़े भी आते हैं, और समुदाय प्रबंधकों द्वारा उत्पाद-विशिष्ट Google समूहों की निगरानी के लिए दायर किए जाते हैं। ऐप्स के कई आंतरिक संस्करणों में बग को दर्ज करने के त्वरित तरीके भी हैं, जैसे Google मानचित्र। और, कभी-कभी, सॉफ़्टवेयर प्रोग्राम एक एपीआई के माध्यम से बग बनाते हैं।
विशिष्ट बग / कार्य / टिकट / दोष / मुद्दे / जो भी ट्रैकिंग प्रणाली उदाहरण हैं, इन शब्दों का कोई सटीक अर्थ नहीं है और इसलिए उनके बीच अंतर पर चर्चा करना व्यर्थ है। जब आप अपने वर्कफ़्लो को निपटा रहे हैं तो आपको शब्दावली का निपटान करना चाहिए और विवरण प्रदान करना चाहिए।
मेरे वर्तमान परिवेश में "दोष" जीरा की कोई भी वस्तु है। लगता है कि जीरा खुद "इश्यू" शब्द का इस्तेमाल करता है। हो सकता है कि हमें यह पहले की किसी प्रणाली से विरासत में मिला हो। "बग" एक प्रकार का मुद्दा है जब कुछ अपेक्षित के रूप में काम नहीं कर रहा है और प्रलेखन में वर्णित है। "फ़ीचर रिक्वेस्ट" जब कोई चीज़ उम्मीद के मुताबिक काम कर रही हो, लेकिन इम्पावॉवमेंट वांछित है (यह स्पष्ट और महत्वपूर्ण हो सकता है, लेकिन अगर वर्तमान व्यवहार का वर्णन किया जाए तो यह अभी भी एक फीचर अनुरोध है)। अधिक प्रकार हैं लेकिन उन 2 का उपयोग विकास टीम के बाहर के लोगों द्वारा इसका उपयोग करने के लिए किया जाता है।
यदि आप मुद्दे प्रकार के लिए नाम चुन रहे हैं, तो "बग" और "दोष" ध्वनि मेरे समान है। उनके बीच अंतर शैलीगत है। जैसा कि अंग्रेजी मेरी मूल भाषा नहीं है, मैं वास्तव में इसके बारे में बहुत कुछ नहीं देख सकता और यह सुनिश्चित नहीं कर सकता कि जो मैं देख रहा हूं वह सही है।